Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De minimale hardwarevereisten voor .NET 11 zijn bijgewerkt om modernere instructiesets voor x86/x64-architecturen te vereisen. Daarnaast zijn de ReadyToRun -compilatiedoelen (R2R) voor x86/x64 en Arm64 bijgewerkt om te profiteren van nieuwere hardwaremogelijkheden.
Arm64
Voor Apple is er geen wijziging in de minimale hardware of het ReadyToRun doel. De Apple M1 chips zijn ongeveer gelijk aan armv8.5-a en bieden dus ondersteuning voor ten minste de AdvSimd (NEON), CRC, DOTPRODLSE, , RCPC, , en RCPC2RDMAinstructiesets.
Voor Linux is er geen wijziging in de minimale hardware. .NET blijft ondersteuning bieden voor apparaten zoals Raspberry Pi die mogelijk alleen ondersteuning bieden voor de AdvSimd instructieset. Het ReadyToRun doel is bijgewerkt om de LSE instructieset op te nemen, wat kan leiden tot extra jitting-overhead als u een toepassing start.
Voor Windows is er geen wijziging in de minimale hardware. .NET blijft apparaten ondersteunenarmv8.0-a, waaronder Windows 10 IoT-apparaten die de LSE instructieset niet leveren. Het ReadyToRun doel is bijgewerkt (armv8.2-a + RCPCdit biedt ondersteuning voor ten minste AdvSimd, CRCLSE, , RCPCen RDMA), die betrekking heeft op het merendeel van de hardware die officieel wordt ondersteund. Apparaten die niet aan deze doelwaarde voldoen, kunnen .NET nog steeds uitvoeren, maar de betreffende ReadyToRun-installatiekopieën vallen terug op JIT-compilatie.
| OS | Vorige JIT/AOT-minimum | Nieuwe minimum JIT/AOT | Vorige R2R-doel | Nieuw R2R-doel |
|---|---|---|---|---|
| Appel | Apple M1 | (Geen wijziging) | Apple M1 | (Geen wijziging) |
| Linux | armv8.0-a | (Geen wijziging) | armv8.0-a | armv8.0-a + LSE |
| Windows | armv8.0-a | (Geen wijziging) | armv8.0-a | armv8.2-a + RCPC |
x86/x64
Voor alle drie de besturingssystemen (Apple, Linux en Windows) wordt de basislijn bijgewerkt van x86-64-v1 naar x86-64-v2. Hierdoor garandeert de hardware niet alleen CMOV, CX8, SSE, en SSE2, maar ook CX16, POPCNT, SSE3, SSSE3, SSE4.1, en SSE4.2. Deze garantie is vereist voor Windows 11 en door alle x86/x64 CPU's officieel ondersteund in Windows 10. Het omvat alle chips die nog steeds officieel worden ondersteund door Intel/AMD, met de laatste oudere chips die rond 2013 uit de ondersteuning zijn gegaan.
Het ReadyToRun doel is bijgewerkt naar x86-64-v3 voor Windows en Linux, terwijl het ongewijzigd blijft voor Apple, waaronder ook de AVX, AVX2, BMI1, BMI2, F16C, FMA, LZCNT en MOVBE instructiesets.
| OS | Vorige JIT/AOT-minimum | Nieuwe minimum JIT/AOT | Vorige R2R-doel | Nieuw R2R-doel |
|---|---|---|---|---|
| Appel | x86-64-v1 | x86-64-v2 | x86-64-v2 | (Geen wijziging) |
| Linux | x86-64-v1 | x86-64-v2 | x86-64-v2 | x86-64-v3 |
| Windows | x86-64-v1 | x86-64-v2 | x86-64-v2 | x86-64-v3 |
Geïntroduceerde versie
.NET 11 preview 1
Vorig gedrag
.NET is standaard gestart en uitgevoerd op oudere hardware. Afzonderlijke toepassingen hebben zich mogelijk aangemeld voor hogere basislijnen of expliciet gebruikte hardwareintrinsieke kenmerken die de basislijn voor hun scenario hebben verhoogd.
Nieuw gedrag
Vanaf .NET 11 kan .NET niet worden uitgevoerd op x86/x64-hardware die de x86-64-v2 instructieset niet ondersteunt en een bericht kan afdrukken dat lijkt op het volgende. (In sommige scenario's kan een meer beschrijvend bericht worden opgegeven waarin de concrete hardwarevereisten voor een bepaald besturingssysteem en een bepaalde architectuur worden vermeld.)
De huidige CPU ontbreekt een of meer van de basislijninstructiesets.
Voor ReadyToRun-compatibele assemblages kan er extra opstartoverhead zijn bij sommige ondersteunde hardware die niet helemaal aan de verwachte ondersteuning voor een typisch apparaat voldoet.
Type van brekende verandering
Deze wijziging is een gedragswijziging.
Reden voor wijziging
.NET ondersteunt een breed scala aan hardware, vaak boven en buiten de minimale hardwarevereisten die worden ingevoerd door het onderliggende besturingssysteem (OS). .NET biedt ook ingebouwde ondersteuning voor het profiteren van de hardware waarop deze actief wordt uitgevoerd voor JIT-scenario's. Deze ondersteuning voegt echter een aanzienlijke complexiteit toe aan de codebasis, met name voor veel oudere hardware die waarschijnlijk niet meer in gebruik is. Daarnaast definieert het een 'laagste algemene noemer' die AOT-doelen standaard moeten gebruiken, wat in sommige domeinspecifieke scenario's kan leiden tot verminderde prestaties voor toepassingen.
De update van de minimumbasislijn x86/x64 is gemaakt om de onderhoudscomplexiteit van de codebasis te verminderen en om beter af te stemmen op de gedocumenteerde (en vaak afgedwongen) hardwarevereisten van het onderliggende besturingssysteem. De minimale arm64-basislijn blijft ongewijzigd, zodat .NET ondersteuning blijft bieden voor hardware die wordt ondersteund door Windows 10 IoT.
Aanbevolen actie
Als u x86/x64-hardware gebruikt die niet meer wordt ondersteund, kunt u overwegen bij te werken. Dergelijke hardware wordt officieel niet ondersteund en kan niet worden opgestart op besturingssysteemversies die worden ondersteund door .NET.
Er is geen actie vereist voor ondersteunde Arm64-hardware die niet voldoet aan het nieuwe ReadyToRun doel, maar toepassingen hebben mogelijk extra opstartoverhead wanneer de betrokken ReadyToRun installatiekopieën terugvallen op JIT-compilatie.
Betreffende API's
Deze wijziging is van invloed op alle .NET-bestanden.