De belangrijkste componenten van de Windows NT-besturingssystemen. Korte beschrijving van het Windows NT-besturingssysteem. Hardwarevereisten

Eind 1988 benoemde Microsoft David Cutler tot leider nieuw project in software: creëer het nieuwe besturingssysteem van Microsoft voor de jaren negentig. Hij stelde een team van ingenieurs samen om het systeem te ontwikkelen nieuwe technologie(Nieuwe technologie - NT).

Het oorspronkelijke plan was om NT te ontwikkelen met gebruikersinterfaces in OS/2-stijl en API-interfaces (application programming), maar OS/2 verkocht slecht en Windows 3.0 was een groot en aanhoudend succes op de markt. Na het zien van de marktdruk en de uitdagingen die gepaard gaan met het ontwikkelen en ondersteunen van twee incompatibele systemen, besloot Microsoft van koers te veranderen en zijn ingenieurs te richten op één enkele, samenhangende besturingssysteemstrategie. Deze strategie bestond erin een familie van op Windows gebaseerde besturingssystemen te ontwikkelen die vele soorten computers zouden kunnen omvatten, van de kleinste laptops tot de grootste werkstations met meerdere processors. Daarom werd de volgende generatie Windows-systemen Windows NT genoemd.

Windows NT ondersteunt de grafische gebruikersinterface (GUI) van Windows en is ook de eerste die daarop is gebaseerd Windows-besturingssysteem een Microsoft-systeem dat Win32 API ondersteunt, een 32-bit programmeerinterface voor het ontwikkelen van nieuwe applicaties. De Win32 API maakt geavanceerde besturingssysteemfuncties beschikbaar voor toepassingen, zoals multi-threaded processen, synchronisatie, beveiliging, I/O en objectbeheer.

In juli 1993 verschenen de eerste besturingssystemen van de NT-familie: Windows NT 3.1 en Windows NT Advanced Server 3.1.

Versies

  • Windows NT 3.1 (27 juli 1993)
  • Windows NT 3.5 (21 september 1994)
  • Windows NT 3.51 (30 mei 1995)
  • Windows NT 4.0 (24 augustus 1996)
  • Windows 2000 (17 februari 2000)
  • Windows XP (25 oktober 2001)
  • Windows XP 64-bit editie (28 maart 2003)
  • Windows Server 2003 (25 april 2003)
  • Windows XP Media Center Editie 2003 (18 december 2003)
  • Windows XP Media Center Editie 2005 (12 oktober 2004)
  • Windows XP Professional x64 editie (25 april 2005)
  • Windows Fundamentals voor oudere pc's (8 juli 2006)
  • Windows Vista (30 november 2006)
  • Windows Home Server (7 november 2007)
  • Windows Server 2008 (27 februari 2008)

Windows NT-structuur

Structureel gezien kan Windows NT in twee delen worden weergegeven: een deel van het besturingssysteem dat in de gebruikersmodus draait, en een deel van het besturingssysteem dat in de kernelmodus draait.

Het deel van Windows NT dat in de kernelmodus draait, wordt het uitvoerende deel genoemd. Het bevat een aantal componenten die bepalend zijn virtueel geheugen, objecten (bronnen), invoer/uitvoer en bestandssysteem (inclusief netwerkstuurprogramma's), procesinteractie en deels het beveiligingssysteem. Deze componenten communiceren met elkaar via intermodulaire communicatie. Elke component roept de andere op met behulp van een reeks zorgvuldig gespecificeerde interne procedures.

Het tweede deel van Windows NT, dat in de gebruikersmodus werkt, bestaat uit servers - de zogenaamde beschermde subsystemen. Omdat subsystemen niet automatisch geheugen kunnen delen, communiceren ze met elkaar door berichten te verzenden. Berichten kunnen zowel tussen een client en een server als tussen twee servers worden verzonden. Alle berichten passeren de Windows NT-manager. Windows-kernel NT plant threads in beschermde subsystemen op dezelfde manier als threads in normale applicatieprocessen.

Ondersteuning voor beschermde subsystemen wordt geleverd door het uitvoerende deel. De componenten zijn:

  • Objectbeheerder. Creëert, verwijdert en beheert runtime-objecten: abstracte gegevenstypen die worden gebruikt om systeembronnen weer te geven.
  • Beveiligingsmonitor. Stelt beveiligingsregels in op de lokale computer. Beschermt bronnen van het besturingssysteem, beschermt en registreert uitvoerbare objecten.
  • Procesmanager. Creëert en beëindigt, onderbreekt en hervat processen en threads, en slaat ook informatie daarover op.

Virtueel geheugenbeheer.

  • I/O-subsysteem. Bevat de volgende componenten:
    • een I/O-manager die apparaatonafhankelijke I/O-faciliteiten biedt;
    • bestandssystemen - NT-stuurprogramma's die bestandsgeoriënteerde I/O-verzoeken uitvoeren en deze vertalen in oproepen naar gewone apparaten;
    • netwerkredirector en netwerkserver - bestandssysteemstuurprogramma's die worden overgedragen verzoeken op afstand voor invoer/uitvoer naar netwerkmachines en het ontvangen van verzoeken daarvan;
    • uitvoerende apparaatstuurprogramma's - stuurprogramma's op laag niveau die het apparaat rechtstreeks besturen;
    • een cachemanager die schijfcaching implementeert.

Het uitvoeringsgedeelte is op zijn beurt afhankelijk van services op een lager niveau die door de NT-kernel worden geleverd. Kernelfuncties omvatten:

  • procesplanning,
  • het afhandelen van interrupts en uitzonderingen,
  • processorsynchronisatie voor multiprocessorsystemen,
  • systeemherstel na storingen.

De kernel draait in geprivilegieerde modus en wordt nooit uit het geheugen verwijderd. De kernel is alleen toegankelijk via een interrupt.

Beschermd onder Windows-systemen NT-bestanden worden uitgevoerd in de gebruikersmodus en worden door Windows NT gemaakt wanneer het besturingssysteem opstart. Onmiddellijk na de schepping beginnen ze eindeloze lus de uitvoering ervan door te reageren op berichten die naar hen toekomen vanuit applicatieprocessen en andere subsystemen. Onder de beschermde subsystemen kan een subklasse worden onderscheiden die milieusubsystemen wordt genoemd. Omgevingssubsystemen implementeren applicatie-interfaces (API's) van het besturingssysteem. Andere typen subsystemen, integrale subsystemen genoemd, voeren taken uit die door het besturingssysteem worden vereist. Het grootste deel van het systeem bijvoorbeeld Windows-beveiliging NT is geïmplementeerd als een integraal subsysteem, netwerkservers worden ook geïmplementeerd als integrale subsystemen.

Het belangrijkste subsysteem van de omgeving is Win32, het subsysteem dat applicatietoegang biedt tot de 32-bit Windows API. Bovendien biedt dit systeem een ​​grafische interface en beheert het de invoer/uitvoer van gebruikers.

Elk beschermd subsysteem werkt in de gebruikersmodus en roept systeem service uitvoerend deel om bevoorrechte acties uit te voeren in de kernelmodus. Netwerkservers kunnen in gebruikersmodus of kernelmodus draaien, afhankelijk van hoe ze zijn ontworpen.

Subsystemen communiceren met elkaar door berichten door te geven. Wanneer bijvoorbeeld aangepaste toepassing een API-procedure aanroept, ontvangt het omgevingssubsysteem dat deze procedure levert het bericht en voert het uit door toegang te krijgen tot de kernel of door een bericht naar een ander subsysteem te sturen. Nadat de procedure is voltooid, verzendt het omgevingssubsysteem een ​​bericht naar de toepassing met de geretourneerde waarde. Het verzenden van berichten en andere activiteiten van beveiligde subsystemen is onzichtbaar voor de gebruiker.

Het belangrijkste hulpmiddel dat alle Windows NT-subsystemen bij elkaar houdt, is het Local Procedure Call (LPC)-mechanisme. LPC is een geoptimaliseerde versie van een algemenere tool, remote procedure call (RPC), die wordt gebruikt om te communiceren tussen clients en servers die zich op verschillende machines in een netwerk bevinden.

Wortels

Het begon allemaal in 1975, toen Digital Equipment Corporation de ontwikkeling van zijn 32-bit VAX-platform startte.

De leiding van dit project werd toevertrouwd aan Cutler, die al een reputatie had opgebouwd als een sterke systeemingenieur door de RSX-11M te creëren voor de beroemde PDP-11-minicomputers. In 1977 werden de VAX-11/780-machine en het besturingssysteem ervoor, VMS 1.0, aangekondigd. Vier jaar later werd Cutler het beu om cijfers toe te schrijven aan het constante voorvoegsel van drie letters, en besloot hij Digital te verlaten. De functionarissen van het bedrijf bleken echter sluwer: omdat ze een getalenteerde ontwikkelaar niet in de boezem van de organisatie konden houden, besloten ze de sfeer van een startup en vrije creativiteit na te bootsen. In Seattle werd een autonome divisie opgericht en Cutler mocht het benodigde aantal personeelsleden (ongeveer 200 mensen) rechtstreeks bij Digital-medewerkers rekruteren. Nieuwe structuur begon met het ontwerpen van een processorarchitectuur en besturingssysteem met de codenaam Prism.

Diagram van de ontwikkeling van besturingssystemen van de Windows NT-familie

Het ‘moment van geluk’ duurde niet lang; de grote bazen waren niet in staat het werk waarmee ze waren begonnen tot een logische conclusie te brengen, en in 1988 was Cutler, samen met zijn 200 ingenieurs en programmeurs, vrij. Maar de beroemde ontwikkelaar bleef niet zonder werk: in die tijd was de beslissing rijp in het hoofd van Bill Gates over de noodzaak om een ​​server-besturingssysteem te creëren dat zou concurreren met Unix-klonen. Om David Cutler te pakken te krijgen, stemde de toekomstige hoofdarchitect van Microsoft ermee in om twintig voormalige digitale ingenieurs van zijn keuze in dienst te nemen. In november 1988 ging een team bestaande uit vijf mensen van Digital en één Microsoft-programmeur aan de slag.

De taak was om een ​​besturingssysteem te schrijven voor de nieuwe Intel i860 RISC-processor, met de codenaam N-Ten. Dit is trouwens waar de afkorting NT vandaan kwam, later door Microsoft-marketeers geïnterpreteerd als Nieuwe Technologie. Al in december 1988 waren de eerste fragmenten van het systeem gereed. Het addertje onder het gras was dat de i860 alleen op papier bestond, dus de code moest worden getest op een software-emulator. De ontwikkeling vond plaats op "speelgoed"-modellen, volgens de huidige normen, Intel-machines 386 25 MHz met 13 MB RAM en harde schijven 110MB.

De microkernelarchitectuur, die oorspronkelijk de basis vormde voor NT, werd cruciaal toen in 1989 werd ontdekt dat de hardware i860 niet in staat was geschreven code efficiënt genoeg uit te voeren. We moesten overstappen naar MIPS R3000 en vervolgens naar de standaard Intel 386-processor, wat in minder dan een jaar tijd werd gedaan door een team dat uitgroeide tot 28 ingenieurs.

In 1990 vond de belangrijkste gebeurtenis plaats, die de sleutel werd in het lot van NT: de release en het duizelingwekkende succes van Windows 3.0. In feite was het het eerste multitasking-besturingssysteem van Microsoft met een fatsoenlijke grafische interface waarin echt werk kon worden gedaan. Het was het lenen van deze interface en API die de toekomst van NT vooraf bepaalde. Aanvankelijk was het de bedoeling dat het server-besturingssysteem een ​​remake zou zijn van het OS/2-project in samenwerking met IBM en dienovereenkomstig zou functioneren met bestaande applicaties Besturingssysteem/2. De derde versie van Windows verscheen echter net op tijd: Redmond liet zijn bondgenoten in de steek en heroriënteerde het NT-ontwikkelteam om de Win32 API te ontwerpen, gemaakt naar het “beeld en de gelijkenis” van de Win16-interface. Dit zorgde voor de broodnodige continuïteit, waardoor het eenvoudiger werd om applicaties van de desktop naar het serverplatform te porten.

De NT-ontwikkelgroep, die tegen die tijd Windows NT was geworden, begon snel te groeien en had al snel ongeveer 300 mensen in dienst. Het niet focussen op OS/2 leidde tot ernstige problemen in de relatie tussen Microsoft en IBM. Officiële verklaringen er werd niets gerapporteerd, het was alleen dat IBM-werknemers tijdens een van de inter-corporate presentaties in verwarring ontdekten dat het gecreëerde besturingssysteem niets te maken had met het geesteskind van hun bedrijf. Niettemin bood Windows NT 3.1 (de nummering was “aangepast” aan de huidige versie van 16-bit Windows die toen bestond) ondersteuning voor onder meer DOS, Win16, POSIX en OS/2 API’s. In juli 1993 kwam het nieuwe serversysteem van Microsoft uit en begon zijn reis.

Daarna verliep alles vlot: in september 1994 werd Windows NT 3.5 uitgebracht. De vorige versie werd in een koortsachtige haast voorbereid, alles moest helemaal opnieuw worden gecodeerd en veel functies bleven niet geïmplementeerd. Nu is het tijd om na te denken over efficiëntie, snelheid en... het organiseren van een soort interactie met netwerken gebouwd op NetWare - de absolute leider van die tijd, die de markt domineerde lokale netwerken. Als ze in die jaren net zo aandachtig waren geweest voor de kwesties van het reguleren van monopolies als nu, zou het misschien voldoende zijn geweest om een ​​overeenkomstige laster aan de bevoegde autoriteit te schrijven. Helaas moest Microsoft de situatie zelf uitzoeken. Novell aarzelde over het al dan niet bieden van clientondersteuning voor Windows NT. Redmond kon niet langer wachten: ze schreven hun eigen versie NetWare-client, en het was zo goed dat het werd gebruikt nadat de originele Novell-software was uitgebracht. In mei 1995 verscheen dankzij een architectuur gebaseerd op een microkernel een speciale "PowerPC-editie" van het besturingssysteem - Windows NT 3.51. Volgens sommige rapporten werd de release ervan op een gegeven moment uitgesteld omdat IBM zich niet kon houden aan het plan om deze processor op de markt te brengen. Daarom ging de evolutie van de PowerPC-versie iets verder dan Windows NT 3.5, waardoor het de basis kon worden voor de volgende versie van het besturingssysteem.

Als het tot nu toe nog steeds mogelijk was om te praten over enige gelijkenis tussen de architecturen van Windows NT en zelfs Unix (in sommige opzichten oneindig ver weg, en in andere opzichten zeer vergelijkbaar met het VMS-besturingssysteem), dan met de release van NT 4.0, die de grafisch subsysteem in de kern, is de laatste reden voor een dergelijke redenering verdwenen. In theorie was een dergelijke beslissing een absoluut logische conclusie uit de trieste ervaring van het proberen de populaire vensteromgeving Windows 95 in NT te integreren. Waarschijnlijk ontstond het idee om het architecturale model van X Window - Unix - juist te repliceren van de initiële “serveroriëntatie” van NT. Als er echter geen problemen waren met de feitelijke “transplantatie” van de grafische schil, dan zouden de prestaties ervan in de gebruikersmodus (dat wil zeggen in de vorm reguliere toepassing) liet veel te wensen over, wat volkomen natuurlijk is - het grafische subsysteem van Windows dat een geabstraheerd uitvoerapparaat ondersteunt (of het nu een rasterdisplay, een printer of wat dan ook is) is onvergelijkbaar complexer en, dienovereenkomstig, veeleisender dan X Venster, dat uitsluitend rasterweergaven “begrijpt”. Zo verscheen er een andere module als onderdeel van de Windows NT 4.0-kernel, uitgebracht in juli 1996. De herziening heette Shell Update Release (SUR).

De volgende fase was Windows NT 5.0, in 2000 op de markt gebracht onder de naam Windows 2000. De verandering van “titels” vond plaats onder invloed van marketeers en bleek over het algemeen de juiste beslissing te zijn, die het mogelijk maakte om dit besturingssysteem te herpositioneren. Het werk gaat tot op de dag van vandaag door, zoals blijkt uit de uitgang Windows-server 2003.

Strijd om Windows Design en Windows-implementatie Server rapporteert aan Mark Lucovsky, een van de aanhangers van de server OS-divisie van het bedrijf. Hij leidt een leger van vijfduizend ontwikkelaars, toegewezen aan zeven laboratoria. Nog eens vijfduizend programmeurs werken op hun werkplekken bij partnerbedrijven en dragen elke dag bij aan 50 miljoen regels definitieve code in Windows Server 2003.

Dagelijks wordt een volledige compilatie en assemblage van het systeem uitgevoerd om de functionaliteit te controleren en fouten te identificeren. Lijsten met gedetecteerde fouten worden naar ontwikkelingsteams gestuurd. Aangebrachte correcties moeten op het mededelingenbord worden gemeld, waarna ze in de wachtrij worden geplaatst voor opname in de hoofdbuild. De serverfarm die het systeem samenstelt, wordt echter voortdurend gemoderniseerd, net als vele jaren geleden. volledige montage kost 12 uur computertijd. En dit ondanks de verdeling van een kolossale reeks codes in afzonderlijke, onafhankelijke groepen broncodes, georganiseerd in boomachtige hiërarchieën.

De essentie van het ontwikkelingsproces zijn bijeenkomsten van een uur in de zogenaamde ‘oorlogskamer’, die twee of drie keer per dag worden gehouden (om 9.30, 14.00 en 17.00 uur). Ze worden voorafgegaan door soortgelijke evenementen in lokale ‘oorlogskamers’ van werkgroepen om 8.00 uur. Tijdens de hoofdvergadering worden oplossingen voor eerder ontdekte fouten besproken en wordt de algemene status van het project bepaald. De afgelopen dagen hebben mensen hier vooral gezocht naar manieren om een ​​belangrijk probleem op te lossen: het hernoemen van Windows.NET Server 2003 naar Windows Server 2003. Duizenden namen in diverse modulen, en dit was op het laatste moment voordat het systeem werd uitgebracht, wat de ontwikkelaars ernstige hoofdpijn bezorgde.

Tijdens de bijeenkomst moet elk team verslag uitbrengen over de voortgang van zijn werk, het proces voor het corrigeren van eventuele gevonden fouten en de mogelijke gevolgen van het al dan niet aanbrengen van deze wijzigingen. Als het probleem niet kan worden opgelost of als het niet belangrijk genoeg wordt geacht, wordt de bug, volgens de oorspronkelijke terminologie, “weggefilterd” in de uiteindelijke release. Het missen van de ochtendvergadering staat gelijk aan desertie.

De bouw begint elke dag om 16.30 uur en kan worden uitgesteld tot 18.00 uur, zodat de nieuwste oplossingen na de derde war room-vergadering in het systeem kunnen worden opgenomen. Zonder kan het team niet naar een vergadering komen kant-en-klare oplossing bestaande problemen, anders kunnen ze daar beter helemaal niet verschijnen. Elk van de zeven laboratoria beschikt over een volledige kopie van de broncode van het systeem, waarop zij wijzigingen aanbrengen, compileren en testen op functionaliteit. Als alles soepel is verlopen, wordt de nieuwe code samengevoegd met de code die door andere groepen is gemaakt in de hoofdassemblage. Het probleem kan de interactie zijn van nieuwe code die door verschillende groepen is geschreven. De hoofdmontage verloopt niet altijd goed; soms blijkt het systeem niet levensvatbaar. In dit geval worden degenen die de module hebben geschreven, zodra de dadermodule wordt ontdekt (meestal rond drie of vier uur 's ochtends), dringend naar de werkplek geroepen en gaan niet weg voordat de fout is verholpen. Daarom moeten programmeurs 24 uur per dag, 6 dagen per week kunnen werken (zes dagen worden geïntroduceerd naarmate de releasedatum van het product nadert).

Het belangrijkste principe waarop de laatste testfasen zijn gebaseerd, is het gebruik van onze eigen producten in het projectproces. Zodra een systeem stabiliteit op niveau één heeft bereikt, wordt het het primaire besturingssysteem in werkgroepen. Het "tweede niveau" wordt als bereikt beschouwd wanneer het besturingssysteem kan functioneren. Pas daarna mag het gebruikt worden op de Microsoft-campus. Dit was het geval met de bestandsserver onder NT, het eerste gebruik ervan was om Windows NT-broncodes op te slaan, dit werd gedaan met de eerste en met alle daaropvolgende. Actieve versies Directory.

Het product wordt vervolgens via het JDP-programma (Joint Development Partners) ter test voorgelegd aan geselecteerde partners. Als er fouten worden ontdekt, wordt er een “vrijwillige beslissing” genomen: laat ze in het systeem en bewaar de startdatum van de verkoop, of stel de releasedatum uit en begin met het doorvoeren van verbeteringen. In het laatste geval worden alle resultaten geannuleerd en begint het testen helemaal opnieuw.

Het is veel moeilijker om after-salesondersteuning te bieden. Als er defecten of beveiligingslekken worden vastgesteld of als er nieuwe functies aan het product moeten worden toegevoegd, moet u een lokale patch of een volwaardige patch maken. Servicepakket. Omdat er al andere bestonden vóór deze patch of Service Pack, wordt de nieuwe code op veel varianten van het systeem getest, waarbij alle mogelijke combinaties van patches en Service Packs worden uitgeprobeerd. Om een ​​volledige functionaliteitscontrole uit te voeren, ondersteunt het bedrijf bovendien afzonderlijke fragmenten van zijn netwerk die werken op oudere versies van producten (bijvoorbeeld Windows Server 2000), waar u het systeem in het veld kunt 'testen'.

Hoe VMS WNT werd

Sommigen grapten ooit dat als je een ophoogbewerking uitvoert (verhoog met één) op elke letter van de naam van het Cutler-besturingssysteem VMS, je WNT of Windows NT krijgt. Volgens professionals is dit de absolute waarheid. Geen bevooroordeelde mening gebaseerd op het feit dat de belangrijkste architecten van NT ooit VMS-ontwikkelaars waren, maar een objectieve realiteit.

In feite is NT de belichaming van radicaal opnieuw ontworpen architecturale ideeën van de VMS-assemblagekern, geïmplementeerd in de C-taal om betere draagbaarheid te bereiken, aangevuld met overeenkomstige interface-API's en nieuwe bestands- en grafische subsystemen. De gemeenschappelijkheid van de architectonische oplossingen van de twee systemen is zeer groot. Ze hebben dus dezelfde concepten van processen, prioriteiten (32 niveaus), beheer van veranderingen in prioriteiten en controle over de verdeling van processortijd tussen hen. Maar ondanks de significante overeenkomsten, ongetwijfeld als gevolg van de eerdere ervaringen van het team van de hoofdarchitect - Cutler, werd NT oorspronkelijk gemaakt als een besturingssysteem met meerdere threads - maakt dit ene "kleine" verschil het mogelijk om te begrijpen in hoeverre NT is verwijderd uit de "basis" VMS-architectuur.

De stuurprogramma's in beide besturingssystemen werken binnen een stapelmodel, waarvan elke laag geïsoleerd is van de andere, waardoor u een meerfasig apparaatbeheerschema kunt organiseren. Systemen maken het mogelijk om zowel gebruikersprocessen als systeemprocessen, inclusief stuurprogramma's, uit te wisselen. De manieren om bronnen weer te geven zijn ook vergelijkbaar; beide systemen behandelen ze als objecten en beheren ze met behulp van Object Manager. NT-beveiliging gaat, net als de onderliggende Discretionary Access Control Lists of DACL's, terug op VMS 4.0.

In 1993 beoordeelden digitale ingenieurs de specificaties van Windows NT en ontdekten dat het opvallend veel leek op het experimentele Mica OS dat was gemaakt als onderdeel van het Prism-project. Waarom zoveel aandacht voor Redmond-producten? Het was niet vanwege een goed leven dat digitale medewerkers de binnenkant van het systeem van iemand anders begonnen te bestuderen. In 1992 viel het bedrijf in een langdurige duik, het geld glipte door de vingers en de verkoop van de nieuwe Alpha-processor kwam tot stilstand. Nu, op zoek naar verlossing, probeerden de bazen van het bedrijf zich tot de bittere rivaal Intel te wenden voor hulp, wat de president, Andrew Grove, weigerde. Uiteindelijk moest ik buigen voor Gates III en het vragen Windows-poort NT onder Alpha in ruil voor een belofte om NT, ten koste van VMS, zijn belangrijkste besturingssysteem te maken. Nadat ze echter een voorlopige versie van NT hadden ontvangen, realiseerden digitale ingenieurs zich geleidelijk dat dit besturingssysteem aanzienlijk meer RAM nodig had dan hun typische "Alfa-pc van vijfduizend dollar" zou bevatten. NT was duidelijk niet geschikt voor de massamarkt van RISC-stations; een poging om zich aan te sluiten bij de Microsoft-vlag voor Digital (zoals inderdaad voor de meeste andere bedrijven) bleek tijd- en geldverspilling.

Het spel 'vind 10 verschillen' tussen WNT en VMS heeft Digital aanzienlijke voordelen opgeleverd. Volgens een versie die destijds in Business Week werd gepubliceerd, besloot de president van Digital, in plaats van openlijk een rechtszaak aan te spannen, met onweerlegbaar bewijs van schending van intellectuele eigendomsrechten in handen, meer te verdienen door minder uit te geven. Hij wendde zich tot Microsoft voor opheldering, wat resulteerde in de ondertekening van een grootschalig contract waarbij Digital de belangrijkste netwerkintegrator van NT werd. Bovendien stopte Redmond in oktober van hetzelfde jaar met de ondersteuning voor beide processors die concurreerden met Alpha in Windows NT: PowerPC en MIPS. Helaas voor Digitaal beheer werd de alliantie al snel vernietigd en werd de status van "NT-netwerkinstallatiediensten" verbroken voor Microsoft" ging naar Hewlett-Packard, dat echter een paar jaar later nog een zware last van het bedrijf kreeg: het VMS-besturingssysteem.

Ondanks het feit dat NT en VMS uiteen liepen, bleven deze besturingssystemen een reeks eigenaardige leningen voortzetten. In het bijzonder kreeg Windows NT pas in 1997 clusterondersteuning, terwijl VMS dit al sinds 1984 had, en de 64-bits versie van Windows verscheen zelfs nog later (VMS migreerde in 1996 naar een hogere bitcapaciteit). Aan de andere kant introduceerde VMS 7.0 in 1995 threading op kernelniveau, en VMS 7.2 bevatte een registerachtige database en een globaal gebeurtenislogboek vergelijkbaar met de overeenkomstige NT-tools. Windows Server 2003 komt uit, laten we eens kijken wat er daarna gebeurt...

5.1. Korte beschrijving Windows NT-besturingssysteem.

Op dit moment ontwikkelt de mondiale computerindustrie zich zeer snel. De systeemprestaties nemen toe en daarom neemt het vermogen om grote hoeveelheden gegevens te verwerken toe.

Besturingssystemen uit de MS-DOS-klasse kunnen een dergelijke gegevensstroom niet langer aan en kunnen de bronnen van moderne computers niet volledig benutten. Daarom heeft er onlangs een overgang plaatsgevonden naar krachtigere en geavanceerdere besturingssystemen van de UNIX-klasse, waarvan Windows NT een voorbeeld is, uitgegeven door Microsoft Corporation.

Wanneer de gebruiker het Microsoft-besturingssysteem voor de eerste keer ziet

Windows NT valt hem op door een duidelijke uiterlijke gelijkenis met de geliefde interface van het Windows 3.+ systeem. Deze zichtbare gelijkenis is echter slechts een klein onderdeel van Windows NT.

Windows NT is een 32-bits besturingssysteem met prioriteitsmultitasking. De fundamentele componenten van een besturingssysteem omvatten beveiliging en

ontwikkeld netwerkdienst.

Windows NT biedt ook compatibiliteit met vele andere besturingssystemen, bestandssystemen en netwerken.

Zoals u in de volgende afbeelding kunt zien, is Windows NT dat wel

een modulair (geavanceerd dan een monolithisch) besturingssysteem, dat bestaat uit afzonderlijke, relatief met elkaar verbonden eenvoudige modulen.

Voornaamst Windows-modules NT zijn (opgesomd in volgorde van het laagste niveau van de architectuur naar het hoogste): de HAL (Hardware Abstraction Layer), de Kernel, de Executive, beschermde subsystemen en omgevingssubsystemen.

Modulaire structuur van Windows NT

5.2. Windows NT-bestandssysteem.

Toen Windows NT voor het eerst werd uitgebracht, bevatte het ondersteuning voor drie bestandssystemen. Dit is een bestandstoewijzingstabel (FAT) die compatibiliteit biedt met MS-DOS, een bestandssysteem verhoogde productiviteit(HPFS), dat compatibiliteit bood met LAN Manager, en een nieuw bestandssysteem genaamd New Technologies File System (NTFS).

NTFS had een aantal voordelen ten opzichte van de bestandssystemen die destijds voor de meeste bestandsservers werden gebruikt.

Om de gegevensintegriteit te garanderen, beschikt NTFS over een transactielogboek. Deze aanpak sluit de mogelijkheid van informatieverlies niet uit, maar vergroot de kans aanzienlijk dat toegang tot het bestandssysteem mogelijk is, zelfs als de integriteit van het serversysteem in gevaar komt. Dit is mogelijk door het transactielogboek te gebruiken om openstaande schijfschrijfpogingen bij te houden wanneer Windows NT vervolgens wordt opgestart. Het transactielogboek wordt ook gebruikt om de schijf op fouten te controleren in plaats van elk bestand te controleren bij gebruik van een bestandstoewijzingstabel.

Een van de belangrijkste voordelen van NTFS is beveiliging. NTFS biedt de mogelijkheid om Access Control Entries (ACE's) toe te voegen aan een Access Control List (ACL). De ACE bevat een groeps- of gebruikersidentificatienaam en een toegangstoken dat kan worden gebruikt om de toegang tot een specifieke map of bestand te beperken. Deze toegang omvat mogelijk de mogelijkheid om bestanden te lezen, schrijven, verwijderen, uitvoeren en zelfs bezitten.

Aan de andere kant is een ACL een container die een of meer ACE-vermeldingen bevat. Hiermee kunt u de toegang beperken individuele gebruikers of groepen gebruikers naar specifieke mappen of bestanden op het netwerk.

Bovendien ondersteunt NTFS het werken met lange namen die maximaal 255 tekens lang zijn en hoofdletters en kleine letters in willekeurige volgorde bevatten. Een van de belangrijkste kenmerken van NTFS is automatische creatie gelijkwaardige namen die compatibel zijn met MS-DOS.

NTFS heeft ook een compressiefunctie die voor het eerst verscheen in NT versie 3.51. Het biedt de mogelijkheid om elk bestand, map of NTFS-schijf. In tegenstelling tot MS-DOS-compressieprogramma's, die een virtuele schijf creëren die er zo uitziet verborgen bestand en alle gegevens op die schijf comprimeert, gebruikt Windows NT een extra laag van het bestandssubsysteem om de vereiste bestanden te comprimeren en decomprimeren zonder virtuele schijf. Dit is handig bij het comprimeren van een specifiek deel van de schijf (bijvoorbeeld gebruikersmap), of bestanden van een specifiek type (bijvoorbeeld grafische bestanden). Het enige nadeel van NTFS-compressie is het lage compressieniveau vergeleken met MS-DOS-compressieschema's. Maar NTFS heeft een hogere betrouwbaarheid en prestaties.

Uit al het bovenstaande kunnen we dus concluderen:

Om compatibel te zijn met verschillende besturingssystemen, bevat Windows NT het FAT 32-bestandssysteem. Bovendien bevat Windows NT een eigen bestandssysteem NTFS-systeem, dat niet compatibel is met FAT 16. Dit bestandssysteem heeft een aantal voordelen ten opzichte van FAT en heeft ook een hogere betrouwbaarheid en prestaties.

Conclusie.

MS-DOS is een 16-bits besturingssysteem dat in echte processormodus draait. In Windows 3.1-versies is een deel van de code 16-bits en een deel 32-bits. Windows 3.0 ondersteund echte modus processorprestaties, tijdens de ontwikkeling van versie 3.1 werd besloten de ondersteuning ervan stop te zetten.

Windows 95 is een 32-bits besturingssysteem dat alleen in de CPU-beschermde modus werkt. De kernel, die geheugenbeheer en procesverzending omvat, bevat alleen 32-bits code. Dit verlaagt de kosten en versnelt het werk. Slechts enkele modules hebben 16-bits code voor compatibiliteit met de MS-DOS-modus. Windows 95 maakt waar mogelijk gebruik van 32-bits code, wat resulteert in een grotere systeembetrouwbaarheid en veerkracht. Bovendien, voor compatibiliteit met oudere toepassingen en de stuurprogramma's gebruiken ook 16-bits code.

Windows NT is geen verdere ontwikkeling van eerder bestaande producten. De architectuur is helemaal opnieuw gemaakt, rekening houdend met de vereisten voor een modern besturingssysteem. In een poging om de compatibiliteit van het nieuwe besturingssysteem te garanderen, behielden de Windows NT-ontwikkelaars de vertrouwde Windows-interface en implementeerden ze ondersteuning voor bestaande bestandssystemen (zoals FAT) en verschillende applicaties (geschreven voor MS - Dos, Windows 3.x). De ontwikkelaars hebben ook tools in Windows NT opgenomen om met verschillende te werken netwerk betekent.

Betrouwbaarheid en robuustheid zorgen ervoor architectonische kenmerken, die applicatieprogramma's beschermen tegen schade door elkaar en het besturingssysteem. Windows NT maakt gebruik van fouttolerante gestructureerde afhandeling van uitzonderingen op alle architectuurniveaus, inclusief een herstelbaar NTFS-bestandssysteem en biedt bescherming via ingebouwde beveiliging en geavanceerde technieken voor geheugenbeheer.


Eind 1988 gaf Microsoft David Cutler de opdracht een nieuw softwareproject te leiden: het creëren van het nieuwe besturingssysteem van Microsoft voor de jaren negentig. Hij verzamelde een team van ingenieurs om een ​​New Technology (NT)-systeem te ontwikkelen.

Het oorspronkelijke plan was om NT te ontwikkelen met gebruikersinterfaces in OS/2-stijl en API-interfaces (application programming), maar OS/2 verkocht slecht en Windows 3.0 was een groot en aanhoudend succes op de markt. Na het zien van de marktdruk en de uitdagingen die gepaard gaan met het ontwikkelen en ondersteunen van twee incompatibele systemen, besloot Microsoft van koers te veranderen en zijn ingenieurs te richten op één enkele, samenhangende besturingssysteemstrategie. Deze strategie bestond erin een familie van op Windows gebaseerde besturingssystemen te ontwikkelen die vele soorten computers zouden kunnen omvatten, van de kleinste laptops tot de grootste werkstations met meerdere processors. Daarom werd de volgende generatie Windows-systemen Windows NT genoemd.

Windows NT ondersteunt de grafische gebruikersinterface (GUI) van Windows en is ook het eerste Windows-gebaseerde Microsoft-besturingssysteem dat de Win32 API ondersteunt, een 32-bits programmeerinterface voor het ontwikkelen van nieuwe applicaties. De Win32 API maakt geavanceerde besturingssysteemfuncties beschikbaar voor toepassingen, zoals multi-threaded processen, synchronisatie, beveiliging, I/O en objectbeheer.

In juli 1993 verschenen de eerste besturingssystemen van de NT-familie: Windows NT 3.1 en Windows NT Advanced Server 3.1.

Versies

  • Windows NT 3.1 (27 juli 1993)
  • Windows NT 3.5 (21 september 1994)
  • Windows NT 3.51 (30 mei 1995)
  • Windows NT 4.0 (24 augustus 1996)
  • Windows 2000 (17 februari 2000)
  • Windows XP (25 oktober 2001)
  • Windows XP 64-bit editie (28 maart 2003)
  • Windows Server 2003 (25 april 2003)
  • Windows XP Media Center Editie 2003 (18 december 2003)
  • Windows XP Media Center Editie 2005 (12 oktober 2004)
  • Windows XP Professional x64 editie (25 april 2005)
  • Windows Fundamentals voor oudere pc's (8 juli 2006)
  • Windows Vista (30 november 2006)
  • Windows Home Server (7 november 2007)
  • Windows Server 2008 (27 februari 2008)

Windows NT-structuur

Structureel gezien kan Windows NT in twee delen worden weergegeven: een deel van het besturingssysteem dat in de gebruikersmodus draait, en een deel van het besturingssysteem dat in de kernelmodus draait.

Het deel van Windows NT dat in de kernelmodus draait, wordt het uitvoerende deel genoemd. Het omvat een aantal componenten die het virtuele geheugen, objecten (bronnen), invoer/uitvoer en het bestandssysteem (inclusief netwerkstuurprogramma's), procescommunicatie en gedeeltelijk het beveiligingssysteem beheren. Deze componenten communiceren met elkaar via intermodulaire communicatie. Elke component roept de andere op met behulp van een reeks zorgvuldig gespecificeerde interne procedures.

Het tweede deel van Windows NT, dat in de gebruikersmodus werkt, bestaat uit servers - de zogenaamde beschermde subsystemen. Omdat subsystemen niet automatisch geheugen kunnen delen, communiceren ze met elkaar door berichten te verzenden. Berichten kunnen zowel tussen een client en een server als tussen twee servers worden verzonden. Alle berichten passeren de Windows NT-manager. De Windows NT-kernel plant threads in beschermde subsystemen op dezelfde manier als threads in reguliere applicatieprocessen.

Ondersteuning voor beschermde subsystemen wordt geleverd door het uitvoerende deel. De componenten zijn:

  • Objectbeheerder. Creëert, verwijdert en beheert runtime-objecten: abstracte gegevenstypen die worden gebruikt om systeembronnen weer te geven.
  • Beveiligingsmonitor. Stelt beveiligingsregels in op de lokale computer. Beschermt bronnen van het besturingssysteem, beschermt en registreert uitvoerbare objecten.
  • Procesmanager. Creëert en beëindigt, onderbreekt en hervat processen en threads, en slaat ook informatie daarover op.

Virtueel geheugenbeheer.

  • I/O-subsysteem. Bevat de volgende componenten:
    • een I/O-manager die apparaatonafhankelijke I/O-faciliteiten biedt;
    • bestandssystemen - NT-stuurprogramma's die bestandsgeoriënteerde I/O-verzoeken uitvoeren en deze vertalen in oproepen naar gewone apparaten;
    • netwerkredirector en netwerkserver - bestandssysteemstuurprogramma's die externe I/O-verzoeken naar netwerkmachines verzenden en verzoeken van hen ontvangen;
    • uitvoerende apparaatstuurprogramma's - stuurprogramma's op laag niveau die het apparaat rechtstreeks besturen;
    • een cachemanager die schijfcaching implementeert.

Het uitvoeringsgedeelte is op zijn beurt afhankelijk van services op een lager niveau die door de NT-kernel worden geleverd. Kernelfuncties omvatten:

  • procesplanning,
  • het afhandelen van interrupts en uitzonderingen,
  • processorsynchronisatie voor multiprocessorsystemen,
  • systeemherstel na storingen.

De kernel draait in geprivilegieerde modus en wordt nooit uit het geheugen verwijderd. De kernel is alleen toegankelijk via een interrupt.

Door Windows NT beveiligde subsystemen worden uitgevoerd in de gebruikersmodus en worden door Windows NT gemaakt wanneer het besturingssysteem opstart. Onmiddellijk na hun creatie beginnen ze aan een eindeloze uitvoeringscyclus, waarbij ze reageren op berichten die naar hen toekomen vanuit applicatieprocessen en andere subsystemen. Onder de beschermde subsystemen kan een subklasse worden onderscheiden die milieusubsystemen wordt genoemd. Omgevingssubsystemen implementeren applicatie-interfaces (API's) van het besturingssysteem. Andere typen subsystemen, integrale subsystemen genoemd, voeren taken uit die door het besturingssysteem worden vereist. Het grootste deel van het Windows NT-beveiligingssysteem is bijvoorbeeld geïmplementeerd als een integraal subsysteem; netwerkservers worden ook geïmplementeerd als integrale subsystemen.

Het belangrijkste subsysteem van de omgeving is Win32, het subsysteem dat applicatietoegang biedt tot de 32-bit Windows API. Bovendien biedt dit systeem een ​​grafische interface en beheert het de invoer/uitvoer van gebruikers.

Elk beschermd subsysteem werkt in de gebruikersmodus en roept de uitvoeringssysteemservice aan om bevoorrechte acties uit te voeren in de kernelmodus. Netwerkservers kunnen zowel in de gebruikersmodus als in de kernelmodus werken, afhankelijk van hoe ze zijn ontworpen.

Subsystemen communiceren met elkaar door berichten door te geven. Wanneer bijvoorbeeld een gebruikerstoepassing een API-procedure aanroept, ontvangt het omgevingssubsysteem dat deze procedure levert het bericht en voert het uit door toegang te krijgen tot de kernel of door een bericht naar een ander subsysteem te sturen. Nadat de procedure is voltooid, verzendt het omgevingssubsysteem een ​​bericht naar de toepassing met de geretourneerde waarde. Het verzenden van berichten en andere activiteiten van beveiligde subsystemen is onzichtbaar voor de gebruiker.

Het belangrijkste hulpmiddel dat alle Windows NT-subsystemen bij elkaar houdt, is het Local Procedure Call (LPC)-mechanisme. LPC is een geoptimaliseerde versie van een algemenere tool, remote procedure call (RPC), die wordt gebruikt om te communiceren tussen clients en servers die zich op verschillende machines in een netwerk bevinden.

Ontwikkelingsgeschiedenis

De ontwikkeling van Windows NT, onder de werktitel "NT OS/2", begon in november 1988 door een groep specialisten onder leiding van David Cutler. Dave Cutler ), die vanuit DEC bij Microsoft kwamen werken, waar ze VAX en VMS ontwikkelden. Het werk verliep parallel met IBM's ontwikkeling van zijn eigen besturingssysteem, OS/2 2.0, dat uiteindelijk pas in april 1992 werd uitgebracht. Tegelijkertijd bleef Microsoft zijn besturingssystemen van de DOS- en Windows-families ontwikkelen, die worden gekenmerkt door lagere eisen aan computerbronnen dan IBM OS/2. Nadat Windows 3.0 in mei 1990 was uitgebracht, besloot Microsoft een Windows API-compatibele programmeerinterface (API) toe te voegen aan NT OS/2. Deze beslissing veroorzaakte ernstige wrijving tussen Microsoft en IBM, die eindigde in een pauze samenwerking. IBM ging zelf door met de ontwikkeling van OS/2 en Microsoft begon te werken aan het systeem dat uiteindelijk onder de naam Windows NT werd uitgebracht. Hoewel het niet meteen populair werd, zoals DOS, Windows 3.x of Windows 9.x, bleek Windows NT vanuit marketingoogpunt aanzienlijk succesvoller dan OS/2.

Opgemerkt moet worden dat als software-interfaces NT is oorspronkelijk ontworpen met OS/2 en vervolgens POSIX API's, waarbij Windows API-ondersteuning als laatste werd toegevoegd. Bovendien waren aanvankelijk de Intel i860 en vervolgens MIPS gepland als hardwareplatform voor NT, later werd ook ondersteuning voor Intel x86 toegevoegd. Toen het besturingssysteem evolueerde, verdween de ondersteuning voor zowel oorspronkelijk geplande software-interfaces als beide oorspronkelijk geplande hardwareplatforms. Er was niet eens één releaseversie van dit besturingssysteem voor de i860, hoewel het juist de codenaam van deze processor was die N10(N Ten), komt van de naam van het NT OS zelf. Microsoft ontcijfert nu de afkorting NT als Nieuwe technologie. En als alternatief voor het POSIX-subsysteem begon Microsoft het Microsoft Windows Services voor UNIX-pakket aan te bieden.

Om het NT-besturingssysteem te ontwikkelen, nodigde Microsoft een groep specialisten van DEC uit, onder leiding van David Cutler ( Engels), met ervaring in het creëren van multitasking besturingssystemen zoals VAX/VMS en RSX-11. Sommige overeenkomsten tussen de interne architecturen van Windows NT en de VMS-familie van besturingssystemen gaven aanleiding om de nieuw ingehuurde Microsoft-werknemers te beschuldigen van het stelen van intellectueel eigendom van DEC. Het conflict dat ontstond werd vreedzaam opgelost: DEC erkende Microsofts eigendom van de onderliggende technologieën Windows-gebaseerd NT en Microsoft hebben een versie van Windows NT gemaakt en ondersteund voor de DEC Alpha-architectuur.

Ondanks hun gemeenschappelijke oorsprong nam de compatibiliteit van Windows NT en OS/2 af met elke nieuwe release van dit besturingssysteem. OS/2 2.0 API-ondersteuning, hoewel gepland voor NT, werd nooit voltooid; Windows NT 4.0 verwijderde de ondersteuning voor het HPFS-bestandssysteem, en Windows XP verwijderde het pvoor OS/2 1.x.

Versies

Naam ( codenaam), opties versienummer eerste kwestie laatste nummer /
Windows NT 3.1 3.1.528 27 juli SP3 (10 november)
Werkstation, geavanceerde server
Windows NT 3.5 ( Daytona) 3.5.807 21 september SP3 (21 juni)
Werkstation, server
Windows NT 3.51 ( Tukwila) 3.51.1057 30 mei SP5 (19 september)
Werkstation, server
Windows NT 4.0 ( Indy) 4.0.1381 29 juli SP6a (30 november)
Werkstation, Server, Server Enterprise ( Graniet), Terminalserver ( Hydra), Ingebed ( Impala)
Windows 2000 ( Cairo) 5.0.2195 17 februari SP4 (26 juni)
Professioneel, Server, Geavanceerde Server, Datacenter Server
Windows XP ( Fluiter) 5.1.2600 25 oktober SP3 (6 mei)
Thuis, Professioneel, 64-bit, Mediacentrum (eHome), Tablet-pc, Starter, Geïntegreerd ( Bidsprinkhaan), N; Windows Fundamentals voor oudere pc's ( Eiger)
Windows Server 2003 ( Whistler-server, Windows .NET-server) 5.2.3790 24 april SP2 (13 mei)
Standaard, Enterprise, Datacenter, Web, Small Business Server ( Bobcat), Compute Cluster-server, Opslagserver; Windows XP Professional x64
Windows Vista ( Langhoorn) 6.0.6000 30 januari SP2 (25 mei)
Starter, Thuis Basis, Thuis premie, Zakelijk, Enterprise, Ultimate, N Home Basic, N Business; x64-varianten van alles behalve Starter
Windows Server 2008 ( Longhorn-server) 6.0.6001 27 februari SP2 (27 mei)
Standaard, Enterprise, Datacenter, HPC, Web, Opslag, Kleine Bedrijven ( Poema), Essentiële zaken ( Centrum), Itanium; x64-varianten van allemaal behalve HPC
Windows 7 ( Zwartcomb, Wenen) 6.1.7600 22 oktober SP1 (KB976932) (22 februari)
Starter, Home Basic, Home Premium, Professional, Enterprise, Ultimate, Windows 7 N, Windows 7 E; x64-varianten van alles behalve Initial
Windows Server 2008 R2 6.1.7600 22 oktober SP1 (KB976932) (22 februari)
Standaard, Enterprise, Datacenter, HPC, Web, Opslag, Kleine Bedrijven, Itanium; alle versies zijn alleen 64-bit
Windows 8 6.2.9200 26 oktober Pro (26 oktober)
Windows 8, Windows 8 RT, Professional, Professional N, Professional WMC, Enterprise, Enterprise N; x64-varianten van allemaal behalve Windows RT
WindowsServer 2012 6.2.9200 26 oktober RTM (1 augustus)
Standaard, Datacenter, Opslag; alle versies zijn alleen 64-bit

Interieurarchitectuur

Kernelcomponenten

Componenten van de gebruikersmodus

Het gebruikersinterfacesubsysteem in Windows NT implementeert een vensterinterface die vergelijkbaar is met die van eerdere versies van Windows. Twee soorten objecten in dit subsysteem die niet aanwezig waren in de 16-bits versies van Windows en in Windows 9x zijn raamstations En bureaubladen. Raamstation komt overeen met één sessie Windows-gebruiker NT - wanneer u bijvoorbeeld verbinding maakt via Remote Desktop Service, wordt er een nieuw vensterstation gemaakt. Elk lopende proces hoort bij een van de raamstations; Andere services dan degene die zijn gemarkeerd als interactief met de desktop, worden uitgevoerd in afzonderlijke, onzichtbare vensterstations.

Elk vensterstation heeft zijn eigen klembord, een set globale atomen (gebruikt voor DDE-bewerkingen) en een set desktops. Het bureaublad is de context van iedereen mondiale operaties UI-subsystemen zoals het installeren van hooks en het uitzenden van berichten. Elke actieve thread behoort tot een van de desktops - degene waarop de vensters die deze bedient zich bevinden; in het bijzonder kan één thread niet meerdere vensters maken die tot verschillende desktops behoren. Eén van de desktops kan actief zijn (zichtbaar voor de gebruiker en kan reageren op zijn acties), de overige desktops zijn verborgen. De mogelijkheid om voor één werksessie meerdere desktops te maken en daartussen te schakelen, bestond tot nu toe niet standaard middelen Windows-gebruikersinterface, hoewel die er is programma's van derden, die toegang geeft tot deze functionaliteit.

Vensterstations en desktops zijn de enige subsysteemobjecten van de Windows NT-gebruikersinterface waaraan toegangsrechten kunnen worden toegewezen. De overige objecttypen zijn ramen En menu- voorzien volledige toegang elk proces dat zich in hetzelfde vensterstation bevindt. Dat is waarom Windows-services NT draait standaard in afzonderlijke vensterstations: ze draaien met verhoogde rechten, en het toestaan ​​dat gebruikersprocessen servicevensters voor onbepaalde tijd kunnen manipuleren, kan leiden tot crashes en/of beveiligingsproblemen.

Software-interfaces

Native API

Windows NT biedt verschillende sets API's voor toepassingsprogramma's. De belangrijkste is de zogenaamde “native” API ( NT-native API), geïmplementeerd in de dynamic link-bibliotheek ntdll.dll en bestaande uit twee delen: NT-kernelsysteemaanroepen (functioneert met de voorvoegsels Nt en Zw, waarbij de uitvoering wordt overgedragen naar ntoskrnl.exe kernelfuncties met dezelfde namen) en functies geïmplementeerd in de gebruikersmodus ( met het voorvoegsel RTl). Sommige functies van de tweede groep maken intern gebruik van systeemoproepen; de rest bestaat volledig uit onbevoorrechte code en kan niet alleen worden aangeroepen vanuit de gebruikersmoduscode, maar ook vanuit stuurprogramma's. Naast de Native API-functies bevat ntdll ook functies van de C-standaardbibliotheek.

Officiële documentatie voor de Native API is zeer schaars, maar gemeenschappen van enthousiastelingen zijn erin geslaagd om met vallen en opstaan ​​behoorlijk wat informatie over deze interface te verzamelen. In het bijzonder verscheen in februari 2000 het boek van Gary Nebbett “ Gids voor basisfuncties Windows NT/2000-API"(ISBN 1-57870-199-6); in 2002 werd het in het Russisch vertaald (ISBN 5-8459-0238-X). Een bron van informatie over de Native API kan de Windows DDK zijn, die enkele van de kernelfuncties beschrijft die beschikbaar zijn via de Native API, en ook onderzoek doet naar Windows-code(reverse engineering) - door demontage, hetzij met behulp van Windows 2000-bronnen die beschikbaar zijn gekomen via een lek, of met behulp van Windows 2003-bronnen die beschikbaar zijn via Windows-programma's Onderzoek Kernel.

Programma's die worden uitgevoerd voordat de subsystemen die de rest van de Windows NT API's leveren, zijn geladen, zijn beperkt tot het gebruik van de Native API. Het autochk-programma, dat schijven controleert bij het laden van het besturingssysteem na een onjuiste afsluiting, gebruikt bijvoorbeeld alleen de Native API.

Win32-API

Meestal gebruiken toepassingsprogramma's voor Windows NT de Win32 API - een interface die is gemaakt op basis van de Windows 3.1 OS API, waarmee u bestaande programma's opnieuw kunt compileren voor 16-bits versies van Windows met minimale wijzigingen in de broncode. De compatibiliteit van de Win32 API en de 16-bit Windows API is zo groot dat 32-bit en 16-bit applicaties vrij berichten kunnen uitwisselen, met elkaars vensters kunnen werken, etc. Naast het ondersteunen van de functies van de bestaande Windows API, een aantal nieuwe functies, waaronder ondersteuning voor consoleprogramma's, multithreading en synchronisatieobjecten zoals mutexen en semaforen. Documentatie voor de Win32 API is opgenomen in de Microsoft Platform SDK en is beschikbaar op de website.

De Win32 API-ondersteuningsbibliotheken hebben in principe dezelfde naam als systeembibliotheken Windows 3.x, met toevoeging van het achtervoegsel 32: dit zijn de bibliotheken kernel32, advapi32, gdi32, user32, comctl32, comdlg32, shell32 en een aantal andere. Win32 API-functies kunnen de vereiste functionaliteit zelf implementeren in de gebruikersmodus, of de hierboven beschreven Native API-functies aanroepen, of toegang krijgen tot het csrss-subsysteem via het LPC-mechanisme ( Engels), of voer een systeemaanroep uit naar de win32k-bibliotheek, die het benodigde voor Win32 implementeert API-ondersteuning in kernelmodus. De vier genoemde opties kunnen ook in elke combinatie worden gecombineerd: de Win32 API WriteFile-functie roept bijvoorbeeld de Native API NtWriteFile-functie aan om naar te schrijven schijf bestand en roept de juiste csrss-functie aan om naar de console uit te voeren.

Win32 API-ondersteuning is opgenomen in de Windows 9x OS-familie; bovendien kan het aan Windows 3.1x worden toegevoegd door het Win32s-pakket te installeren. Om het gemakkelijker te maken om bestaande Windows-applicaties over te zetten die MBCS-coderingen gebruiken om tekenreeksen weer te geven, zijn alle Win32 API-functies die tekenreeksen als parameters accepteren in twee versies gemaakt: functies met het achtervoegsel A ( ANSI) accepteren MBCS-tekenreeksen en werken met het achtervoegsel W ( breed) accepteer UTF-16-gecodeerde tekenreeksen. In Win32s en Windows 9x worden alleen A-functies ondersteund, terwijl in Windows NT, waar alle strings binnen het besturingssysteem uitsluitend in UTF-16 worden opgeslagen, elke A-functie eenvoudigweg zijn stringparameters naar Unicode converteert en de W-versie van de functie aanroept. dezelfde functie. De meegeleverde H-bestanden van de bibliotheek definiëren ook functienamen zonder achtervoegsel, en het gebruik van de A- of W-versie van functies wordt bepaald door compilatieopties, en in Delphi-modules tot en met versie 2010 zijn ze bijvoorbeeld strikt gekoppeld aan opties met het achtervoegsel A. Het is belangrijk op te merken dat de meeste nieuwe functies die zijn geïntroduceerd in besturingssystemen uit de Windows 2000- of latere Windows NT-familie alleen in de Unicode-versie bestaan, omdat het de taak is om compatibiliteit met oudere programma's en met Windows te garanderen. 9x is niet meer zo dringend als voorheen.

POSIX en OS/2

De eerste release van Windows NT 4 ondersteunde vier platforms (x86, Alpha, MIPS en PowerPC), maar de ondersteuning voor minder gebruikelijke platforms werd verminderd naarmate servicepacks werden uitgebracht: MIPS-ondersteuning werd verwijderd uit SP1 en PowerPC-ondersteuning uit SP3. De nieuwste releases van Windows NT 4 ondersteunden alleen x86 en Alpha; hoewel Alpha-ondersteuning gepland was voor opname in Windows 2000, werd deze verwijderd uit de RC2-release. Als gevolg hiervan werd x86 het enige platform dat op Windows 2000 werd ondersteund.

Ondersteuning voor 64-bit processors werd voor het eerst geïmplementeerd in Windows XP voor de IA-64 - Intel Itanium processorarchitectuur. Gebaseerd op de 64-bits versie van Windows XP, zijn er ook 64-bits serverversies van Windows 2000 gemaakt; Later werd ondersteuning voor de Itanium-processor toegevoegd aan sommige versies van Windows Server 2003. De tweede 64-bits architectuur die wordt ondersteund in de Windows NT-besturingssystemen is gemaakt door AMD-architectuur x86-64, later geïmplementeerd in Intel-processors genaamd EM64T. Windows Server 2003 SP1 x64 en Windows XP Professional x64 zijn tegelijkertijd uitgebracht en vertegenwoordigen server- en desktopversies van dezelfde versie van Windows. In het bijzonder zijn dezelfde updates van toepassing op deze edities. Sinds 2005 heeft Microsoft besloten de ondersteuning van IA-64 stop te zetten.; De nieuwste versie van Windows NT die Itanium volledig ondersteunt, is Windows NT 5.2 (XP Professional 64-bit Edition en Server 2003). Voor duurdere (en dus moeilijker te upgraden) servers werden echter speciale versies van Windows Server 2008 en Windows Server 2008 R2 uitgebracht en kreeg Windows Server 2012 geen IA-64-ondersteuning meer.

Opmerkingen

Zie ook