mini|275px|Arhitektura Windows NT porodice operacijskih sustava se sastoj od dva sloja korisničkog načina rada i jezgrinog načina rada), s raznim modulima između ovih dvaju slojeva. Windows Vista, Windows Server 2003, Windows XP, Windows 2000 i Windows NT su svi dio Windows NT porodice Microsoftovih operacijskih sustava. Svi su preventivni, paralelno iskoristivi operacijski sustavi dizajnirani za rad s ili jednoprocesorski ili simetrično multiprocesorski (SMP) zasnovanim računalima. Za obradu ulazno/izlaznih (U/I) zahtjeva koristi paketno upravljan U/I koji rabi podatkovnu strukturu IRP koja predstavlja ulazno/izlazne pakete zahtjeva, i asinkroni U/I. Počinjući s Windowsima XP, Microsoft je započeo ugradnju 64-bitne podrške u svoje operacijske sustave — prije ovoga su operacijski sustavi bili zasnovani na 32-bitnom modelu. Programi i podsustavi u korisničkom načinu rada imaju ograničen pristup sustavskim sredstvima, dok jezgrin način rada ima neograničen pristup sustavskoj memoriji i vanjskim uređajima. Jezgra operacijskih sustava u ovoj liniji je poznata kao hibridna jezgra - iako valja napomenuti da je ovaj naziv osporavan, naglašujući da je jezgra u suštini monolitna jezgra strukturirana kao mikrojezgra. Arhitektura se sastoji od hibridne jezgre, sloja za apstrakciju sklopovlja (HAL), pogonskih programa i izvršnih komponenti (Executive), pri čemu su svi oni u jezgrinom načinu rada . Servisi više razine su ostvareni u izvršnim komponentama.
Jezgrin način rada u Windows NT liniji se sastoji od podsustava sposobnih prosljeđivati U/I zahtjeve odgovarajućem pogonskom programu koji se izvodi u jezgrinom načinu rada rabeći U/I upravitelj (I/O Manager). Dva podsustava čine korisnički način rada Windowsa 2000: podsustav okoline (Environment subsystem) (pokreće aplikacije napisane za različite vrste operacijskih sustava), i integralni podsustav (Integral subsystem) (funkcije specifične za operacijski sustav koje djeluju u ime podsustava okoline). Jezgrin način rada u Windowsima 2000 ima neograničen pristup sklopovlju i sustavskim sredstvima računala. Jezgrin način rada sprječava servise i aplikacije u korisničkom načinu rada da pristupe kritičnim područjima operacijskog sustava kojima ne bi smjeli imati pristup.
Izvršne komponente sučeljuju s podsustavima u korisničkom načinu rada. Barataju i s U/I, upravljanjem objekata, sigurnošću i upravljanjem procesa. Jezgra sjedi između sloja za apstrakciju sklopovlja i izvršnih komponenti kako bi omogućila multiprocesorsku sinkronizaciju, raspoređivanje i otpremanje prijekida i niti, te rukovanje i otpremanje zamki i iznimaka. Jezgra je također odgovorna za inicijalizaciju pogonskih programa uređaja prilikom pokretanja OS-a. Pogonski programi u jezgrinom načinu rada postoje na tri razine: pogonski programi najviše razine, pogonski programi srednje razine i pogonski programi niske razine. Windows Driver Model (WDM) postoji u međusloju i ponajprvo je dizajniran kako bi bio kompatibilan binarno i na razini izvornog koda između Windowsa 98 i Windowsa 2000. Pogonski programi najniže razine su ili naslijeđeni pogonski programi s Windowsa NT koji izravno upravljaju uređajem, ili pak mogu biti od PnP sklopovske sabirnice.
Korisnički način rada
Korisnički način rada je sačinjen pod podsustava koji mogu prosljeđivati U/I zahtjeve odgovarajućim pogonskim programima preko U/I upravitelja (koji djeluje u jezgrinom načinu rada). Dva podsustava čine sloj korisničkog načina rada Windowsa 2000: podsustav okoline i integralni podsustav.
Podsustav okoline je dizajniran kako bi omogućio pokretanje aplikacija napisanih za različite vrste operacijskih sustava. Podsustavi okoline ne mogu izravno pristupiti sklopovlju, i moraju zahtijevati pristup memorijskim sredstvima preko upravitelja virtualne memorije koji djeluje u jezgrinom načinu rada. Također, aplikacije se pokreću na nižem prioritetu od procesa u jezgrinom načinu rada. Trenutačno postoje tri glavna podsustava okoline: Win32 podsustav, OS/2 podsustav i POSIX podsustav.
Win32 podsustav okoline može pokretati 32-bitne Windows aplikacije. Sadrži podršku za konzolu i tekstualne prozore, te gašenje i rukovanje teškim grješkama svih drugih sustava okoline. Također podržava VDM-ove koji dopuštaju pokretanje MS-DOS i 16-bitnih Windows 3.x (Win16) aplikacija na Windowsima. Postoji specifični MS-DOS VDM koji je pokrenut u vlastitom adresnom prostoru i koji emulira Intel 80486 s pokrenutim MS-DOS-om 5.
Win16 programi su, međutim, pokrenuti u Win16 VDM. Svaki program pretpostavljeno se pokreće u istom procesu, na taj način rabeći isti adresni prostor, a Win16 VDM daje svakom programu vlastitu nit u kojoj je pokrenut. Međutim, Windows 2000 dopušta korisnicima pokretanje Win16 programa u odvojenim Win16 VDM-ovima, što im dopušta da budu preventivno povišezadaćeni s obzirom na to da će Windows 2000 preventirati cijeli VDM proces, a koji pak sadrži svega jednu pokrenutu aplikaciju. OS/2 podsustav okoline podržava 16-bitne znakovno zasnovane OS/2 aplikacije i emulira OS/2 1.x, ali ne i 32-bitne ili grafičke OS/2 aplikacije kao što se koristi na OS/2 2.x ili naprednijem. POSIX podsustav podržava aplikacije koje su strogo napisane po ili POSIX.1 standardu ili srodnim ISO/IEC standardima.
Integralni podsustav se brine o specifičnim funkcijama operacijskog sustava u ime podsustava okoline. Čine ga sigurnosni podsustav, servis radne stanice i poslužiteljski servis. Sigurnosni podsutav barata sigurnosnim žetonima, dozvolama i odbijenicama pristupima korisničkim računima zasnovanim na sredstvenim permisijama, rukovodi zahtjevima za prijavu i započinje autentikaciju prijave, te određuje koja sustavska sredstva Windows 2000 treba ispitati (audit). Također upravlja aktivnim direktorijem. Servis radne stanice je API na mrežni preusmjerivač, koji omogućuje računalni pristup mreži. Poslužiteljski servis je API koji omogućuje računalu pružanje mrežnih servisa.
Jezgrin način rada
Jezgrin način rada Windowsa 2000 ima neograničen pristup sklopovlju i sustavskim sredstvima računala i izvršuje kod u zaštićenom memorijskom području. Kontrolira pristup raspoređivanju, prioretizaciji niti, upravljanju memorijom i međudjelovanju sa sklopovljem. Jezgrin način rada sprječava servise u korisničkom načinu rada od pristupa kritičnim područjima operacijskog sustava kojima ne bi smjeli pristupiti, te stoga procesi u korisničkom načinu rada vrše zahtjeve jezgrinom načinu rada za obavljanje takvih operacija u svoje ime.
Jezrin se način rada sastoji od izvršnih servisa, koji se sastoje od mnogo modula koji obavljaju specifične zadaće, jezgrinih pogonskih programa, jezgre i sloja za apstakciju sklopovlja (HAL - Hardware Abstaction Layer).
Izvršne komponente
Izvršne komponente (Executive) sučeljuju sa svim podsustavima u korisničkom načinu rada. Barataju s U/I, upravljanjem objekata, te upravljanjem sigurnošću i procesima. Neformalno se dijeli na nekoliko podsustava, među kojima su upravitelj priručnom memorijom, upravitelj konfiguracijom, U/I upravitelj, lokalni poziv procedura (LPC), upravitelj memorije, upravitelj objekata, sturktura procesa i nadglednik sigurosnih referenci (SRM). Zajednički grupirani, komponente se mogu zvati izvršni servisi (interno ime Ex). Sustavski servisi (interno ime Nt), tj. sustavski pozivi, su također ostvareni na ovoj razini, osim tek nekolicine koji izravno pozivaju u jezgru radi poboljšanja performansi.
mini|Svaki objekt u Windowsima 2000 postoji u globalnom prostoru imena. Ovo je screenshot iz SysInternalsovog programa WinObj. Upravitelj objektima (Object Manager - interno ime Ob) je posebni izvršni podsustav kroz koji prolaze svi drugi izvršni podsustavi, napose sustavski pozivi, kako bi pristupili Windows 2000 sredstvima, na taj ga način čineći servisom za upravljanje infrastrukturom sredstava.
Upravitelj objektima se koristi u svrhu redukcije udvostručenja funkcionalnosti upravljanja sredstvima u drugim izvršnim podsustavima, što bi možebitno moglo voditi ka programskim grješkama i otežati razvoj Windowsa 2000. S gledišta upravitelja objekata, svako je sredstvo objekt, bez obzira na to radi li se o fizičkom sredstvu (poput datotečnog sustava ili vanjskog uređaja) ili logičkog resursa (poput datoteke). Svaki objekt ima strukturu ili tip objekta koji upravitelj objekata razumije.
Stvaranje je objekata dvofazni postupak, stvaranja i umetanja. Stvaranje uzrokuje alokaciju praznog objekata i rezerviranje bilo kakvih sredstava koje upravitelj objekata zahtijeva, kao što je (opcionalno) ime u prostoru imena. Ako stvaranje nije uspjelo, podsustav odgovoran za stvaranje popunjuje prazan objekt. U konačnici, ako podsustav označi inicijalizaciju uspješnom, instruira upravitelj objekata za umetanje objekta, što ga čini dostupnim preko njegova (opcionalnog) imena ili magičnog kolačića zvanog ručica (handle). Od tog trenutka, životom objekta upravlja upravitelj objekata a na podsustavu je da drži objekt u radnom stanju sve dok mu upravitelj objekata ne signalizira da ga se riješi.
Ručice su svrhom slične UNIX datotečnim opisnicima, na način da svaka predstavlja referencu na jezgrino sredstvo kroz neprozirnu vrijednost. Slično, otvaranje objekta po imenu potpada u sigurnosnu provjeru, ali djelovanje kroz već postojeću, otvorenu, ručicu je ograničeno tek na razinu pristupa zahtijevanu prilikom stvaranja ili otvaranja objekta.
Tipovi objekata definiraju procedure nad njima i bilo koje specifične podatke. Na taj način, upravitelj objekata dopušta Windowsima 2000 da budu objektno orijentiran operacijski sustav, s obzirom na to da se tipovi objekata mogu shvatiti kao polimorfne klase koje definiraju objekte. Većina podsustava se, doduše, s U/I upraviteljom kao istaknutom iznimkom, pouzdaje na pretpostavljenu implementaciju za sve tipove procedura.
Svaka instanca kreiranog objekta pohranjuje ime, parametre proslijeđene funkciji koja je kreirala objekt, sigurnosne atribute i pokazivač na tip objekta. Objekt također sadrži proceduru za zatvaranje objekta i broj referenci na njega koji upravitelju objekata govori koliko drugih objekata referencira objekt, te stoga određuje može li objekt biti uništen prilikom prosljeđivanja zahtjeva za zatvaranje. Svaki imenovani objekt egzistira u hijerarhijskom prostoru imena objekata.
Daljnji izvršni podsustavi su sljedeći:
Upravitelj priručnom memorijom (interno ime Cc - od Cache Controller): usko koordinira s upraviteljem memorije, U/I upraviteljem i U/I pogonskim programima kako bi omogućio zajedničku priručnu memoriju za obični datotečni U/I. Jedinstvena je značajka da Windowsov upravitelj priručnih objekata djeluje nad datotečnim blokovima (radije nego nad blokovima uređaja), omogućuje dosljedno djelovanje između lokalnih i udaljenih datoteka, te osigurava određen stupanj koherentnosti s memorijski preslikanim pogledima datoteka, jer su blokovi priručne memorije poseban slučaj memorijski preslikanih pogleda i promašaji priručne memorije su poseban slučaj stranične grješke. Konfiguracijski upravitelj (interno ime Cm - od Configuration manager): implementira Windows registar. U/I upravitelj (interno ime Io): dopušta uređajima komunikaciju s podsustavima u korisničkom načinu rada. Translatira naredbe za čitanje i pisanje iz korisničkog načina rada u IRP-ove za čitanje i pisanje koje pak prosljeđuje pogonskim programima uređaja. Prihvaća U/I zahtjeve datotečnog sustava i translatira ih u pozive specifične za uređaj, te može inkorporirati pogonske programe uređaja niske razine koji izravno barataju sklopovljem kako bi ili čitali ulaz ili pisali izlaz. Također uključuje upravitelj priručne memorije kako bi poboljšao performanse diskova keširanjem zahtjeva za čitanjem i pisanjem na disk u pozadini.