Szerző: Budai Péter

2005. január 05. 14:48:38

A Windows NT öröksége

A mai Windowsok mind a hajdani Windows NT technológiájára épülnek. De mit is jelent az, hogy NT? A rutinos olvasók rögtön rávágják, hogy New Technology, azonban nem ez a teljes igazság. Cikkükből erre, és sok más érdekes részletre is fény derül a Microsoft első szerverekbe szánt operációs rendszerének fejlődésével kapcsolatosan.

A Windows NT 4.0 termékvonal támogatása 2004. december 31-én megszűnt, azonban az NT technológiára azóta további operációs rendszerek épültek. A Microsoft az új operációs rendszereket mindig egy korábbi, már elkészült változatból fejleszti tovább: a Windows 2000 az NT 4.0, a Windows XP a Windows 2000, a készülő Longhorn pedig a Windows Server 2003 SP1 kódjára épül. Most, hogy a Windows NT 4.0, az utolsó névleg is NT operációs rendszer visszavonult, visszatekintünk a közel sem elavult technológiára, mely egyben a mai operációs rendszerek alapját is képezi.

De mit is jelent az, hogy NT? A rutinos olvasók rögtön rávágják, hogy New Technology, azonban nem ez a teljes igazság. Cikkükből erre, és sok már érdekes részletre is fény derül a Microsoft első szerverekbe szánt operációs rendszerének fejlesztésével kapcsolatosan.

Méregdrága 386-os gépeken kezdődött a fejlesztés

Mark Lucovsky
Mark Lucovsky
Paul Thurrot, a WinSuperSite készítője korábban lehetőséget kapott arra, hogy a Microsoft redmondi központjában elbeszélgessen Mark Lucovskyval és David Thompsonnal, akik kulcsfontosságú szerepet játszottak a Windows Server 2003 fejlesztésében. Paul elsősorban a Windows Server 2003 fejlesztéséről érdeklődött, de ennek során az első Windows NT operációs rendszerek fejlesztése is szóba került.

Mark Lucovsky kitüntetett mérnök és a Windows Server platform egyik vezető tervezője a Microsoftnál. Ő is a Digital Equipment Corporation-től (DEC) távozó szakemberekkel együtt érkezett a vállalathoz az első NT-tervező, Dave Cutler beosztottjaként, és a kezdetektől részt vett az NT technológia fejlesztésében. David Thompson jelenleg a Windows Server Product Group alelnöke. 1990 óta dolgozik a Microsoftnál, és elsősorban az NT hálózatkezelésének fejlesztésében vett részt. Alapvető célkitűzésnek tekintette, hogy a hálózati megoldások ne csak a Microsoft operációs rendszerével legyenek képesek együttműködni.

"1988 novemberében gyűltünk össze" -- meséli Lucovsky, és kiemeli, hogy a fejlesztőcsapat első feladata a szükséges számítógépek beszerzése volt. Ekkor a legbrutálisabb, 25 megahertzes 386-os PC-ket vásárolták meg, 13 MB memóriával, és 110 MB merevlemez-területtel. "Istentelenül drágák voltak" -- mesélte nevetve. A fejlesztés első két hete többnyire eseménytelenül telt, ekkor készült el a rendszer első verziójának tervezési dokumentációja az akkori Microsoft Wordben.

Cél: az Intel i860

Végre elérkezett az idő a tényleges forráskód írására. "Az első kódrészleteket 1988 decemberének közepén ellenőriztük le, és januárra már egy nagyon egyszerű rendszerrel rendelkeztünk, ami elindult az Intel i860 szimulátorán." Lucovsky beszámolója közben elárulta, hogy az Intel i860 kódneve N-Ten volt, és az operációs rendszer valójában innen kapta a nevét. A New Technology elnevezés csak később született meg, amikor a fejlesztőkből verbuválódott termékmarketingesek megpróbálták megtartani az NT terméknevet, de a vásárlók számára kedvezőbb formában akarták kommunikálni azt.

"Eredetileg az NT az Intel i860 platformra készült (kódnevén N-Ten), egy olyan RISC processzorra, ami messze nem készült el a tervezett határidőre. Mivel nem volt működő i860 számítógépünk, amin a fejlesztés során tesztelhettünk volna, ezért egy i860 szimulátort használtunk. Szóval azért neveztük el NT-nek, mert az N-Ten platformon futott."

Az újonnan elnevezett NT csoport 1989 áprilisára már egy alapszintű funkcionalitással rendelkező kernellel felvértezett rendszert tesztelt a szimulátoron. "Öt DEC-es sráccal és egy külsős (Microsoftos) kollégával, Steve Wooddal dolgoztunk együtt, és hosszú időn keresztül -- egész nyáron át -- ilyen kicsi csoport voltunk. Azt gondoltuk: 'Ugyan mi lehet olyan nehéz egy operációs rendszer fejlesztésében?', ezért 18 hónapra terveztük a projektet. Pár fontos dologról azonban elfeledkeztünk, mint például a user mode-ról, a hálózatkezelésről, és még sorolhatnám."

1989 végére az NT-csoport nőni kezdett. Egy teljes csapat foglalkozott ettől kezdve a hálózatkezeléssel, és már nem csak egy személyből állt a biztonsági kérdésekkel foglalkozó "részleg" sem, aki mellesleg le volt terhelve a fájlrendszert és a lokalizációt érintő fejlesztésekkel. "Ekkor, az első évben nagyjából 50 fősre gyarapodtunk, és egy éven belül végre megkaptuk az első működő i860 prototípusokat, amelyek kiváltották a szimulátort."

Az i860 azonban nem váltotta be a hozzá fűzött reményeket, ezért az NT fejlesztői más platformokon is ki szerették volna próbálni készülő operációs rendszerüket, hogy lássák, azokon hogyan teljesít. Elkezdték tanulmányozni a MIPS architektúrát és egy másik RISC tervezetet. Amint az azóta már ismert lett, az N-Ten, vagyis az i860 végül sohasem jelent meg.

[oldal:i860 helyett i386]

1989 decemberében az NT-csapat úgy döntött, hogy az i860 helyett a MIPS R3000-re fejlesztenek. "Két-három hónapon belül az NT bebootolt a valódi hardveren big endian módban, és nyilvánvalóvá váltak az architektúránk előnyei. Az NT-t platformok között portolhatóvá terveztük, és ennek működőképessége a MIPS-re történő átálláskor azonnal láthatóvá vált. Sikerült a lehető legkevesebb probléma mellett átállnunk."

Ekkor az NT-csoport jelentős bővülésnek indult, a legtöbben immár a Microsoft berkeiből érkeztek. A grafikával foglalkozó részleg nagyot nőtt, miután új koncepciót dolgoztak ki a felhasználói felület és a grafikai feladatok programozására. Ezzel egy időben megkezdték az NT portolását az Intel i386 architektúrájára, ami akkoriban a legelterjedtebb processzornak számított. Lucovsky azonban fontosnak találta kiemelni, hogy az NT a fejlesztés kezdetén nem erre a platformra készült.

"Távol akartunk maradni a 386-ostól egy darabig, nehogy benne ragadjunk az architektúrájában. Nem akartunk úgy hozzáállni a projekthez, hogy az csak egy hardvertípuson működjön megfelelően" -- Lucovsky szerint ha már az első naptól kezdve az Intel i386 lett volna a célplatform, akkor hamarabb jutottak volna el egy lényegesen gyorsabb rendszerhez, de hosszabb távon rontotta volna az NT fejlesztésével kapcsolatos munkálatokat, különösen architektúra-váltásokkor. Ennek a hozzáállásnak is köszönhető, hogy a Windows Server 2003 Itanium-alapú, 64 bites változatai meglehetősen hamar elkészültek, az azonban kérdéses, hogy az AMD és az Intel legújabb 64 bites processzorainak támogatása miért késik még mindig.

Az események váratlan fordulatot vesznek

"1990 tavaszára a MIPS-es verzió már elég jól futkározott" -- számolt be a fejlesztés akkori fejleményeiről Lucovsky. A Microsoft 1990 májusában adta ki a Windows 3.0-t, és a vállalat hirtelen a figyelem középpontjába került. A Windows, és ezzel együtt a grafikus felülettel rendelkező operációs rendszerek hatalmas sikert arattak. "Ránéztünk a Windows 3.0-ra és azt mondtuk: 'Mi lenne, ha az OS/2 helyett inkább egy 32 bites Windowst csinálnánk?'" -- ez az egyszerű, ártatlannak tűnő kérdés indította el a következő évtized meghatározó törekvéseit, és szerezte meg a Windows operációs rendszerek jelenlegi piacának nagy részét.

"Négyen -- Steve Wood, Scott Ludwig, egy srác a grafikai részlegtől, és én -- nekiálltunk gondolkodni azon, hogy a 16 bites Windows API-t hogyan tehetnénk 32 bitessé. Másfél hónapot töltöttünk az új API tervezésével, ezután megmutattuk azt egy százfős tervezéselbíráló csoportnak, várva a véleményüket."

Az új, Win32 névre hallgató API alapvető sajátossága, hogy nem egy teljesen új programozási modell volt, hanem nagyban hasonlított a 16 bites Windows API-ra. Ezáltal a fejlesztők könnyedén állhattak át a 32 bites operációs rendszerek használatára, és nem kellett kidobniuk korábbi alkalmazásaikat. "Lehetővé tettük a 16 bites alkalmazások egyszerű portolását NT-re, és ezek az alkalmazások már kihasználták az NT-ben rejlő újdonságokat, például a nagyobb címezhető tárhelyet. A korábbi API-kon kívül további interfészeket hoztunk létre, és ezáltal egy funkcionálisan teljes, az egész operációs rendszerre kiterjedő API jött létre. Mindezt olyan stílusban készítettük el, ami a jövő Windows-programozóinak kézenfekvőnek és egyszerűnek bizonyult."

OS/2 helyett Windows

A reakció azonnali volt. "Szerették, amint meglátták, milyen egyszerű az egész. Gyakorlatilag az egész egy felturbózott Windowsra hasonlított, és nem az OS/2-re, ami egy teljesen eltérő programozási modellt kívánt volna meg." Azonban az NT 32 bites Windows-zá alakítása komoly akadályokba ütközött, és ezek között számtalan nem technikai természetű is szerepelt.

A Microsoftnak fejlesztési és értékesítő partnereket kellett szereznie, és jeleznie kellett az IBM-nek, hogy ejti az OS/2 projektet. "Bemutattuk az IBM-nek, hogy mire készülünk, kábé húsz oldalban, és azt mondtuk: 'Nézzétek, ez az, amit csinálni fogunk.'; elsőre azt hitték, hogy a Win32 csak egy hangzatos név az OS/2 helyett. De utána már le lehetett olvasni az arcukról: 'Egy pillanat, ez nem az OS/2!'".

Az OS/2 fejlesztésének leállítása jelentősen rongálta a két vállalat kapcsolatát. "Viszont megkaptuk a vezetőség jóváhagyását, és hozzáláttunk a portoláshoz. Ahelyett, hogy az OS/2 alrendszert kellett volna megírnunk NT-re, inkább a Win32-t választottuk" -- elmondása szerint ekkor vált a korábban egyszerűen NT névre hallgató operációs rendszer Windows NT-vé.

A moduláris felépítés előnyei

Az NT moduláris felépítése sokat segített a közelmúltban történt fejlesztések során is. "A mikrokernel architektúrának hála a kernel magja független az éppen aktuális platformtól, így az lehet Win32, vagy POSIX környezet is. Nincs szükség további programozási munkálatokra, vagy a kernel megváltoztatására. A kernel ütemezés lelkivilága nem kell, hogy minden platformon megváltozzon. Két hét alatt jól működő, parancssorban futó alkalmazásokat gyártottunk le, és mindezt még 1990 szeptemberében" -- mesélte Lucovsky.

"A szoftver felépítése annyira rugalmas, hogy képesek voltunk az NT-t a 25 megahertzes 386-osoktól napjaink beágyazott eszközein, 64 utas, 64 bites, többprocesszoros rendszereken, vagy akár 1000 dolláros skálázható blade szervereken is használni. A szolgáltatások nagyon széles körét tudtuk vele működtetni" -- számolt be a Windows NT fejlődéséről David Thompson.

1990 szeptembere valóban fordulópontot jelentett a Windows NT történetében. David Thompson, aki korábban a Microsoft LANMAN for OS/2 3.1 fejlesztői csapatát vezette, csatlakozott az NT-sekhez. Az NT részleg a korábbi 28 fős létszámát csakhamar 300-ra növelte, és ekkor már tényleges terméktervvel rendelkezett.

[oldal:Az Alpha-sztori]

Sokan tudják, hogy a Windows NT-ből készült Digital Alpha processzorokon futó változat is, azonban ezt a projektet végül törölték. A közhiedelemmel ellentétben azonban erről nem a Microsoft, hanem a Compaq tehet leginkább. Lássuk, hogy alakult az Alphán futó Windows NT története.

A VMS utóda?

A legenda szerint Dave Cutler, a Digital egyik programozója kapta a feladatot, hogy teljesen új operációs rendszert fejlesszen ki, amely felválthatja a VMS-t. Cutler és csapata neki is látott a feladatnak, a programozók egyébként a vállalat DECwest nevű campusában dolgoztak, közel a Microsoft redmondi főhadiszállásához. A Mica projektet később törölték, és Cutler, valamint pár társa a Microsofthoz került, és a Windows NT-n kezdtek dolgozni.

Később kiderült, hogy Cutler és társainak munkája a Microsoftnál igen sok részletet tartalmaz a digitalos Micából, ennek kapcsán a Digital beperelte a Microsoftot, ez az ügy végül peren kívül egyezséggel zárult. A Microsoft ígéretett tett arra, hogy a Windows NT operációs rendszert Alpha processzorra is elkészíti. Ez nem esett nehezére, hiszen a korábbiakban már szó volt arról, hogy az NT felépítése igen egyszerű hordozhatóságot biztosít, vagyis a szoftvert rövid idő alatt portolni lehetett új hardverekre. A Digital részéről több mint száz fejlesztőmérnök érkezett a DECwestbe, akik mind az NT-n kezdtek dolgozni.

A Windows NT élt és virult, a Microsoft pedig dolgozott az SQL Server, az Internet Information Server és az Exhange Server alphás változatain. A Digital egy egész sor fejlesztőt nyert meg az Alphán futó NT támogatására, elkészítette az Alpha-alapú szervereket és munkaállomásokat, valamint még egy FX!32-nek nevezett technológiával is előrukkolt, amelynek segítségével az Alphára írt Windows NT képes volt IA-32 alkalmazásokat futtatni.

A Compaq színre lép

A közhiedelemmel ellentétben az Alphán futó Windows NT-nek nem a Microsoft, hanem a Compaq vetett véget. A Compaq kétéves huzavona után végül 1998 januárjában vásárolta fel a Digitalt, megszerezve ezzel az Alphával kapcsolatos jogokat is. A vállalat kezdeti tervei szerint komoly hangsúlyt kívánt fektetni az Alphára, például azzal, hogy Tandem Himalaya szervereit MIPS architektúráról Alphára állítja át. Ma már mindenki tudja, hogy ez soha nem történt meg, mint ahogy azt is tudjuk, mi lett az Alpha sorsa.

A Compaq 1999 augusztusában jelentette be, hogy beszünteti a Alphán futó, 32 bites Windows NT-vel és Windows 2000-rel kapcsolatos fejlesztéseit és a DECwestben dolgozó fejlesztőket elbocsátja, illetve más projektekre csoportosítja át. A teljes képhez hozzátartozik, hogy bár az Alpha chipek a kezdetektől fogva 64 bitesek voltak, a Windows NT csak részben tudta kihasználni a 64 bites felépítésből adódó előnyöket, 4 gigabájtnál nagyobb memóriát például nem tudott közvetlenül címezni. A Compaq augusztus 23-án még azt közölte, hogy az Alphán futó, 64-bites Windows 2000-rel kapcsolatos fejlesztések tovább folytatódnak, augusztus 26-án azonban hivatalosan is értesítette a Microsoftot arról, hogy a projekteket törölte.

A Microsoft is leállította az Alphával kapcsolatos fejlesztéseit. Akkoriban a Microsoft már az Intel 64-bites szerverprocesszorának, az Itaniumnak a megjelenését várta, és bejelentette, hogy az első 64-bites Windowst erre készíti el. "A jövőben nem jelennek meg Microsoft termékek 32-bites vagy 64-bites Alpha platformra" -- áll a redmondi cég akkor kiadott közleményében. "Ez azt jelenti, hogy a Release Candidate 2 után nem lesz újabb, Alphán futó változata a Windows 2000-nek, mint ahogy az SQL Servernek, az Exchange-nek vagy más BackOffice terméknek sem lesz új verziója." A Microsoft és a Compaq azt tanácsolták az Alphán Windows NT-t futtató ügyfeleiknek, hogy térjenek át Intel alapokra.

Összességében az alphás NT csődjéről leginkább a túl nagy étvágyú Compaq tehet, amely 9,6 milliárd dollárért megvásárolta ugyan a Digitalt, de valójában sosem tudta igazán jól a szervezetébe integrálni, a fúziót követően igen komoly pénzügyi problémák léptek fel, amelyek több projekt törlésével és jelentős elbocsátásokkal jártak. Ez lett a Windows NT veszte is.

[oldal:Út a Windows 2003-ig]

A Windows NT első változata, a Windows NT 3.1 1993 júliusában jelent meg, verziószámával követve az éppen aktuális 16 bites Windows terméket. Ez a verzió asztali és szerver kiadásokban volt elérhető, valamint támogatta a domainközpontú elosztott biztonsági rendszereket is. Ettől kezdve az NT-csapat több verziót is kiadott, és mind ugyannarra az eredeti forráskódra épült.

A következő verzió, a Windows NT 3.5 a Daytona kódnevet kapta, és 1994 szeptemberében lehetett először hozzájutni. "A Daytona egy nagyon eredményes projekt volt. A méret és a teljesítmény problémáira fókuszáltunk, valamint a 3.1 még el nem készült részeit fejeztük be. A Daytona sok új funkcióval bővült, és sok javítást eszközöltünk rajta" -- számolt be David Thompshon a fejleményekről.

A Daytona és a PowerPC

A Daytonával szemben támasztott eredeti követelmények területei között szerepelt a méret, a teljesítmény, a tömörítés és a Novell NetWare kompatibilitás. Akkoriban ebből kettő igazán nagy népszerűségnek örvendett: A DoubleSpace stílusú tömörítési technikák sokat segítettek a 90-es évek elején, mivel a lemezterület hatalmas kincsnek számított, a Netware pedig kétségkívül a legelterjedtebb hálózatkezelési megoldás volt ekkor.

"Végül a tömörítést kidobtuk a rendszerből, de a Netware portolása stratégiai jelentőségű volt. A Novell nem igazán foglalkozott az NT asztali kiadásával, és nem tudták, akarnak-e hálózati klienst készíteni hozzá. Mi felajánlottuk a segítségünket, de problémáztak... szóval végül megcsináltuk a sajátunkat, és leköröztük őket. A mi megoldásunk jobbnak bizonyult, és a felhasználók ezt követően hosszú éveken keresztül használták azt, még azután is, hogy a Novell is kiadta a sajátját. Ez a kliens tette lehetővé az NT asztali változatának elterjedését, hiszen ekkor még a Netware volt a domináns szereplője a szerverpiacnak. Másképp nem tudtunk volna eladni az NT asztali változatait" -- folytatta Thompson.

Windows NT történelem
  • 1988. október 31: David Cutler megérkezik a Microsofthoz
  • 1988. november: Elindul az NT projekt
  • 1993. július 27: Windows NT 3.1
  • 1994. szeptember 21: Windows NT 3.5
  • 1995. május 30: Windows NT 3.51
  • 1996. július 31: Windows NT 4.0
  • 2000. február 17: Windows 2000
  • 2001. október 25: Windows XP
  • 2003. április 24: Windows Server 2003
  • A Daytonában debütált egy új forráskódfordító technológia is, amivel a bináris rendszerfájlok mérete lényegesen kisebbé vált, így már kisebb teljesítményű és szerényebb merevlemezzel rendelkező gépeken is futhatott az NT asztali kiadása.

    A Windows NT 3.51 a PowerPC-támogatást tette hozzá a 3.5-höz. Eredetileg a 3.5 része lett volna a Power PC platform támogatása, azonban az IBM késlekedése miatt a Microsoft az operációs rendszert enélkül is kiadta. A 3.51 kiadásáig a vállalat a rendszer hibáit javította, és várta, hogy az IBM végre elkészüljön hardverével. "A Daytona után 9 hónapig csak vártunk az IBM PowerPC-re, és apró hibákat javítottunk. Pont ennek köszönhető, hogy az NT 3.51 az addigi legstabilabb rendszer volt, és a vásárlók ezt nagyon értékelték" -- kommentálta Thompson az NT 3.51 1995 májusi megjelenését.

    Megszületik az NT 4.0

    Erre épülve a következő NT-kiadás, a Windows NT 4.0 sokak számára úgy vált ismertté, mint a Shell Update Release, (SUR, az új felhasználói felület kiadása) ami a Windows 95 felhasználói felületét kombinálta össze a Windows NT-vel. "Szerettünk volna egy olyan kliensoldali operációs rendszert készíteni, ami a 95 felületére épül, de az NT technológiáját használja. Végül fogtuk a Win32 GUI komponenseket, és egy in-process driverként futtattuk őket. Ezáltal komoly teljesítményproblémák jelentkeztek, de amikor a GUI kódot a futtatott alkalmazásokkal egy szintre emeltük, a legtöbb megoldódott. Végre nem kellett ellenőriznünk a GDI és a USER összeakadásait. Jelentős mennyiségű munkát jelentett, de végül sok fejfájástól kímélt meg minket." A termék 1996 júliusában került a boltok polcaira.

    A következő termékciklus során a Windows NT végleg elvesztette az NT szócskát, és a továbbiakban egyszerűen Windows néven futott tovább. Thompson elmondása szerint a döntés a marketingcsapatnak köszönhető: "Egy kolléga a Windows [9x] marketing csapatból átkerült az NT marketingeseihez, és az ő ötlete volt, hogy mindenhol a Windows nevet kell használni. Eleinte kényelmetlenül éreztük magunkat a névváltás miatt, különösen az NT remek megítélésre miatt. Ugyanakkor a Windows 2000 megbízhatósága miatt az emberek arról kezdtek beszélni, hogy mennyivel jobb ez az új Windows 2000, mint az öreg NT -- pedig ugyanarról az architektúráról volt szó. Igazából szerencse, hogy így történt" -- egyébként rendhagyó módon a Windows 2000-nek nem volt kódneve, mert Thompson szerint "Jim Allchin nem szerette a kódneveket." Jim Allchin akkor a Microsoft Platform Group vezetője volt, és ez azóta sem változott.

    Szétválik a szerver és a kliens

    A Windows 2000 befejezése óta a legjelentősebb döntés a kliens és a szerver szétválasztása volt a Whistler termékvonal kapcsán. Ekkor dőlt el, hogy az ugyanarra a kódra épülő Windows XP és a Windows Server 2003 külön utakon fog továbbfejlődni, és a Windows 9x/ME vonal végleg megszakad. "Ezáltal jobban tudunk koncentrálni szervervásárlókra, akik stabil rendszert akarnak, számukra a megjelenési idő másodlagos. Az asztali operációs rendszerek esetében viszont a PC-gyártók igényeit, eladási ciklusait is figyelembe kell venni. A szervervásárlásokra például nem jellemző a karácsonyi dömping" -- jellemezte a Microsoft Windows temékstratégiát Thompson.

    A Windows NT alapjai már közel 15 évesek, és jelenleg ezek alkotják a Windows XP és a Windows Server 2003 szívét is -- ezáltal az otthoni és irodai felhasználók végleg megszabadultak a gyakorta fagyó, "félig" 32 bites rendszerektől, és megkapták a szerverekhez fejlesztett stabilitást saját feladataik elvégzéséhez is.

    Véleménye van?

    a címlapról