Hoewel Microsoft lage tijd tijdens de ontwikkeling heeft geclaimd dat NT van een micro-kernel voorzien zou worden, is dit nooit gebeurd. Ze zijn nooit verder gekomen dan de ‘hardware abstraction layer’, aldus Roelof Osinga.
In het artikel ‘Solide huis op zwakke fundering’ (Computable, 21 augustus) zit een kleine, maar ergerlijke, fout in. Het gaat hierbij om het schema op pagina 35. Daar wordt gesteld dat Windows NT over een micro-kernel beschikt. Dat is niet het geval.
Microsoft wou dit wel graag en heeft ook altijd geclaimd, tijdens de ontwikkeling, dat NT van een micro-kernel voorzien zou worden. Ze zijn echter nooit verder gekomen dan de ‘hardware abstraction layer’. De uitspraak was ondertussen echter zo vaak herhaald dat ze er zelf in zijn gaan geloven. Tot op een bepaald moment.
Tijdens de introductie van NT 3.1 (AKA 1.0) sjorde MS het ontwikkelteam het hele land door om overal toespraken te houden en demo’s te geven. Nu wou het toeval dat er rond die tijd een belangrijke Unix-conventie gehouden werd. Daar NT met name als ‘Unix killer’ werd aangemerkt, was dit een belangrijke gebeurtenis. Zo belangrijk zelfs dat Dave Cutler daarnaar toegestuurd werd om een ‘keynote speech’ te geven. Hierin stelde hij wederom dat NT over een heuse micro-kernel zou beschikken. Toen het boe-geroep weer was verstomd en de lachers die over de grond rolden hun stoelen weer hadden beklommen, was – dat moet gezegd worden – Dave mans genoeg om toe te geven dat NT inderdaad niet een micro-kernel had. Dit gegeven is gedocumenteerd in een Unix Review uit die tijd (omstreeks oktober 1993).
Stabiliteit
Helaas is het met Microsoft zo dat de (welkome) geruchten weliswaar heel snel verspreid worden, maar dat hetzelfde niet altijd geldt voor (onwelkome) waarheden. Hierin is MS uiteraard niet uniek. Wel is het zo, dat sinds die tijd MS het micro-kernel-gerucht niet of nauwelijks meer gebruikt heeft. Dit geldt helaas niet voor anderen.
Om een en ander nog erger te maken heeft MS bij de overgang van NT 3.51 naar NT 4.0 besloten om de desktop-interface hechter met de kernel te laten samenwerken. Niet bepaald een kenmerk van een micro-kernel-architectuur. De reden hiervoor was snelheid. De NT 3.xx serie was wat ‘sluggish’ en dat moest bij de NT 4.xx serie verbeterd worden. Als dat ten koste ging van de stabiliteit, dan was dat jammer.
Daar de zogenaamde ‘denial-of-service attacks’ behoorlijk populair zijn op Internet, lijkt mij de stabiliteit van het systeem wel degelijk tot de beveilingsaspecten te behoren. Het verbaast mij dan ook dat dit gegeven in beveilingskringen zo weinig bekend lijkt te zijn.
Overigens zijn voor GNU/Linux wel micro-kernels beschikbaar, alhoewel dit tot consequentie heeft dat het dan geen Linux meer is. Immers, Linux is de naam van de kernel. De GNU heeft de Hurd die gebaseerd is op de Mach 4 micro-kernel en Debian heeft een project om GNU/Linux daarmee uit te rusten.
Roelof Osinga,
Eboa, Leeuwarden
Kernel
De heer Osinga heeft strikt gesproken gelijk: de NT-kernel is inderdaad veel minder micro dan ooit de bedoeling was. Mag deze kernel nog een microkernel heten? Sommigen vinden van wel, anderen van niet. Het meningsverschil is voor een deel een definitiekwestie: wat is precies een microkernel? Een microkernel is een compacte kernel, die slechts de meest noodzakelijke functies uitvoert. Maar waar ligt de grens?
Het antwoord op deze vraag doet overigens niets af aan de feitelijke strekking van het artikel.
Edo Roos Lindgren, KPMG