Laten we als voorbeeld nemen een eenvoudige functie in POSIX C/ C++
Microsoft roept hoe gaat fprintf(....)
Hoe werkt fprintf? Heeft het meerdere aanroepen die op de stack moeten worden gezet voor deze simpele functie werkzaam is?
char buffer[255];
fprintf("%s%i,"dit is een test",5);
Wat zou Microsoft hebben geroepen in deze zo eenvoudige clean room?
Hoeveel parameters heeft deze functie? Natuurlijk is de eerste parameter belangrijk, immers het zegt hoeveel parameters in de functie call nog zullen volgen. In dit voorbeeld zijn het slechts 2 parameters. Alhoewel deze functie een oneindig hoeveelheid aan parameters kan hebben, de 1e parameter geeft aan hoeveel er op de stack moet worden gezet.
In het voorbeeld is het 1e een tekst, en 2e een getal, maar je weet dat deze functie een oneindig aantal functie parameters kan hebben.
Microsoft kan het nooit zo eenvoudig hebben gehad.
Belangrijkste op de stack is de eerste parameter, die zegt immers hoeveel er nog zal volgen, in dit voorbeeld slechts 2 dit volgen op de stack.
De stack bevat dan het getal 2, en als volgende op de stack het adres voor locatie van de tekst, en op 3 een getal zoals in dit voorbeeld.
Deze functie is uiteraard op vrijwel alle besturingsystemen hetzelfde en makkelijk te begrijpen.
Een %s is een string, een %s is een string enzovoort.
Wat zou Microsoft hebben geroepen tegen een clean room? Ten eerste is de functie call oneindig? Je kan immers oneindig aanroepen gedefineerd in de 1e parameter op de stack.
Ik heb nog nooit zo een makkelijke clean room engineering gezien zoals Microsoft dat heeft. Een functie zoals omschreven heeft weliswaar oneindig mogelijke zolang het geheugen van de stack het toelaat, aantal parameters.
Nimmer heb ik clean room engineering makkelijker gezien dan Microsoft die de opensource Linux Broncode zogenaamd kan emuleren.
Het verbaasd me eigenlijk dat ze er meer dan 1 maand voor nodig hadden om de Command Line Interface van Linux eenvoudig te implementeren.
Dit voorbeeld heb ik genomen omdat duidelijk is hoe gemakkelijk het is als je de broncode hebt van een Linux bestingssysteem en het wil 'emuleren' of nadoen op Windows.
Op dit moment kan ik aangeven, deze functie heeft inderdaad zeer nauw gedefineerde oneindige parameters voorzover het geheugen het toelaat.
Het is net de belastingdienst, makkelijker kunnen we reverse clean room engineering niet maken, leuker wel.
Het spreekt voor zicht, dat Microsoft Ubuntu Linux Build 16.04 inderdaad heeft laten zien volledig de gehele Linux omgeving inclusief desktop te laten kunnen zijn. Sterker nog, waarom zou ik nog Linux willen als Windows 10 alles kan wat Linux kan?
Hierbij beschouw ik Linux eigenlijk als overbodig.
Voorbeeld hoe makkelijk Microsoft tot een volledig werkende Linux distributie is, https://www.youtube.com/watch?v=ncYJk7GbdQY
Microsoft Ubuntu Linux Build 16.04 is voor mij het beste, niet meer reboot nodig, eindelijk volwassen games.