Waarom is Windows het meest wijdverspreid als het zo slecht zou zijn?
Windows heeft ook goeie punten en die komen allemaal uit zijn wijdverspreidheid voort. Zo weet je bij elk stuk hardware in de winkel vooruit dat Windows ermee kan werken, omdat de hardwarefabrikant netjes drivers meelevert. Dat is niet het geval voor Linux. Zo is er voor elk mogelijk doel software te vinden en die is vaak erg functioneel en gebruiksvriendelijk, maar meestal wel commercieel (te betalen). En veel van die heel bekende software is niet voor Linux, wat een domper kan zetten op de gebruikservaring van iemand die voorheen alleen Windows kende. Waarom is Windows echter zo wijdverspreid? Niet omdat het het beste besturingssysteem zou zijn, maar wel omdat het gewoon op iedere computer voorgeïnstalleerd staat en omdat scholen de studenten informaticalessen geven die alleen over Windows gaan. Daardoor kennen mensen niets anders dan Windows en weten ze vaak niet dat er andere opties zijn, of durven ze die gewoon niet verkennen.
Waarom werkt Linux beter dan Windows?
Architectuur!De architectuur van een besturingssysteem zorgt voor veiligheid maar ook prestaties. Er zitten modules in voor taken- en procesbeheer, geheugenbeheer maar ook een gebruikersinterface of desktop of GUI of terminal en een systeem om te kunnen communiceren met en gebruik maken van de onderliggende hardware en aangesloten randapparatuur.
Microsoft heeft voor Windows een aantal keuzes gemaakt inzake ontwerp van het besturingssysteem (de architectuur waarop al het andere gebaseerd is) die ervoor zorgen dat het onveilig is en ook niet veilig gemaakt kan worden, en dat het slecht presteert inzake multiprocessing en multitasking. Dat laatste kan wel verbeterd worden, maar tot dusver is Microsoft grotendeels onwillig geweest om de noodzakelijke maatregelen te nemen.
Die nefaste ontwerpkeuzes dateren al van in de tijd van Windows 3.1, Windows 95 en later Windows NT. En sommige van die keuzes vormden ook een bron van conflict met IBM, waarvoor Microsoft in de late jaren '80 en vroege jaren '90 het besturingssysteem OS/2 maakte.
De belangrijkste nefaste ontwerpkeuzes voor Windows zijn deze:
- applicaties moeten aan heel de harde schijf en aan heel het werkgeheugen kunnen
- de voorgrondapplicatie moet maximaal processortijd kunnen opeisen
De eerste keuze werd gemaakt omdat Bill Gates eiste dat alle in de jaren '80 populaire games voor DOS perfect zouden draaien onder Windows 95. Dat zou Win95 een voorsprong geven in de concurrentie met het ook door Microsoft geschreven IBM OS/2. Toen Windows NT werd ontworpen, draaide het maken van deze keuze vooral om het zo compatibel mogelijk te maken met alle voor Windows 9x geschreven applicaties en drivers (al werd er later een eigen NT-model van drivers uitgewerkt).
Het gevolg van deze nefaste keuze is, dat malware kan werken. Als alle applicaties overal aan kunnen, geldt dat ook voor kwaadaardige applicaties. En ja hoor: malware kan probleemloos in het besturingssysteem raken en gestart worden, waarna het overal aankan. Het kan zichzelf probleemloos ingraven in de systeemstartroutines van Windows, het kan prutsen met het register, met onderdelen van Windows zelf en met de startroutines van de harde schijf.
Linux kapselt elke applicatie in zijn eigen geheugen- en schijfruimte in. Een applicatie kan dus niét overal aan en dat is de hoofdreden dat malware niet kan werken onder Linux, tenzij je de gebruiker kunt overtuigen een stuk malware als root te starten. Als root gestarte malware kan net als bij Windows overal aan, met alle gevolgen vandien.
De tweede keuze werd gemaakt om de gebruiker
de indruk te geven dat alles snel werkt, door de voorgrondapplicatie (wat immers datgene is wat de gebruiker momenteel gebruikt) altijd de hoogste voorrang te geven. Dit was een ernstig punt van conflict met IBM bij het ontwerp van OS/2. IBM wilde dat niet en vond dat het systeem zelf moest kunnen regelen welke voorrang aan welke applicaties gegeven moest worden om alle draaiende applicaties zo goed mogelijk te laten werken. OS/2 kreeg uiteindelijk de ook door Linux gebruikte systeemregeling voor proces- en takenbeheer, terwijl Microsoft voor Windows dus koos voor voorgrondvoorrang. In het begin deed deze keuze Windows inderdaad snel lijken. Kijk maar naar het verschil in snelheid tussen OS/2 en Windows 95 op de computers van rond 1995: Windows was meestal wel degelijk sneller voor een gebruiker. Het is maar als je meer en meer gelijktijdig wou doen, dat Windows het daar duidelijk moeilijker en moeilijker mee kreeg.
En ook nu nog zie je bij Windows duidelijke tekenen van de nefaste architectuurkeuzes. Zo kan Windows niet echt goed gebruik maken van meerdere processoren of processorkernen en is het daardoor niet echt in staat die extra processoren efficiënt te gebruiken. Dat geldt ook voor multitasking in het algemeen. Doordat de voorgrondapplicatie de hoogste voorrang krijgt, krijg je soms bizarre effecten. Twee dingen waaruit duidelijk blijkt hoe slecht Windows multitaskt:
- het formatteren van een diskette
- het printen van een groter document naar een inktjetprinter
Als je een van deze twee taken uitvoert (ook met Windows 7), ligt je hele desktop plat gedurende de uitvoeringstijd van deze taak. Je kunt niets meer doen en je moet wachten tot de taak beëindigd is.
Vergelijk dat met Linux: deze twee taken draaien gewoon in de achtergrond en ze hebben totaal geen effect op de werksnelheid van je desktop.
Voor latere Windows-systemen (vanaf XP als ik me niet vergis) kun je bij de geavanceerde systeeminstellingen wel instellen dat de het systeem voorrang moet geven aan prestaties boven weergave, maar dat heeft voornamelijk tot gevolg dat enkele van de meest systeemtijdvretende en zwaarwegende desktopgrafieken worden uitgeschakeld. Aan de keuze om zowat alle systeemtijd toe te wijzen aan de voorgrondapplicatie verandert dat niet veel. Het verklaart ook waarom Microsoft aanraadt om voor elke netwerkdienst een Windows Server te installeren en liever niet allerlei diensten op één server te combineren. Op zich is dat geen slecht advies omdat je zo het uitvalrisico en de werkbelasting spreidt, maar vanwege de procesbeheerkeuzes bij Windows is het ook een noodzaak.
Het heeft dus niets te maken met "hoe populair" een besturingssysteem is dat Windows voortdurend en met succes aangevallen wordt. Steve Ballmer van Microsoft zegt dat nochtans graag: als andere systemenen zo populair waren als Windows, zouden die ook even veel aangevallen worden.
Dat klopt niet en er is ook een tegenvoorbeeld. De meestgebruikte webserver op deze planeet is Apache onder Linux. En die wordt zeker ook aangevallen. Maar welke server is het populairst bij hackers? IIS onder Windows, terwijl die het minst van allemaal gebruikt wordt. Waarom? Omdat het daar
kan!
Voor de duidelijkheid: dit is geen Microsoft of Windows bashing. Ik heb zo duidelijk en objectief mogelijk proberen uit te leggen waarom Windows qua architectuurontwerp slechter is en wat de redenen daarvoor zijn. Ik denk dat niemand kan ontkennen dat Microsoft ronduit briljant is in marketing en dat ze zeker ook genoeg geld hebben om de allerbeste programmeurs ter wereld te kunnen betalen en dat ze die dan ook hebben. Maar ook de allerbeste programmeur kan geen mirakels verrichten als hij gedwongen wordt te werken binnen parameters en eisen die opgezet werden door de marketingmensen.