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 te vereisen voor zowel x86/x64- als Arm64-architecturen. Daarnaast zijn de ReadyToRun -compilatiedoelen (R2R) 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 wordt de basislijn bijgewerkt, waarbij de LSE instructieset wordt voorgeschreven. Dit is vereist voor Windows 11 en door alle Arm64 CPU's officieel ondersteund door Windows 10. Daarnaast is het in lijn met de Arm SBSA vereisten (Server Base System Architecture). 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.
| 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 | armv8.0-a + LSE | 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 | Nieuw JIT/AOT-minimum | Vorige R2R-target | 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 oudere hardware en kan er een bericht worden afgedrukt dat er ongeveer als volgt uitziet. (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 naar de minimale basislijn 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.
Aanbevolen actie
Als u 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.
Betreffende API's
Deze wijziging is van invloed op alle .NET-bestanden.