Een besturingssysteem wordt vaak gezien als een noodzakelijk kwaad dat nodig is om hardware te kunnen benutten. Binnen een optimale infrastructuur heeft het besturingssysteem echter wel degelijk een belangrijke rol. Deze bijdrage beschrijft waarom.
'Een besturingssysteem (OS) is een softwarelaag die de door de hardware geboden resources abstraheert en programmatisch benaderbaar maakt. De hardware wordt als het ware gerepresenteerd als een verzameling resources. Behalve het aanbrengen van deze abstractie heeft het OS als taak de beschikbare resources te beheren en gebruik ervan zo eerlijk en goed mogelijk te coordineren.'
Deze definitie van een OS geeft de belangrijkster rol ervan weer: beheren en coördineren van resourcegebruik. Binnen een softwarestack speelt een OS alleen hierdoor al een belangrijke rol. Immers, slecht beheer van resources resulteert in een sub-optimale stack. Er zijn echter meer aspecten die een OS tot een belangrijke, zo niet de belangrijkste component van de softwarestack maken.
De figuur laat een gangbare opbouw van een softwarestack zien. Aan de basis ligt de hardware. Hardware wordt tegenwoordig meer en meer commodity: er zijn nog maar enkele hardwareleveranciers die zelf hun hardware ontwerpen of zelf een eigen chip ontwikkelen (IBM, Sun). Vaak wordt meegelift op ontwikkelingen van chipontwerpers zoals Intel en AMD. Servers gebaseerd op Intel- of AMD-chips lijken daarom veel op elkaar en bieden weinig mogelijkheden voor een hardwareleverancier om zich te onderscheiden.
De infrastructuurservices bieden het platform waarop de applicaties draaien. Denk hierbij aan componenten als e-mail, web, proxy, calendar, applicatieserver, messaging, etc. Infrastructuurservices zijn gebaseerd op het gebruik van open standaarden en daardoor is gebruik van, koppeling tussen en uitwisseling tussen componenten van verschillende leveranciers goed mogelijk. Ook hier is weinig ruimte om 'het verschil' te maken.
De applicatielaag is voor een gebruiker of een bedrijf de laag waar de uiteindelijke functionaliteit van de stack geboden wordt. Applicaties bieden een bepaalde, speciale functie aan de eindgebruiker en zorgen er als het ware voor dat de resources geboden op de onderliggende lagen tot een nuttig geheel samengevoegd worden.
Een softwarestack biedt dus uiteindelijk een bepaalde functionaliteit. Het gebruik van die functionaliteit levert een aantal aandachtspunten op die voor elk bedrijf gelden. Denk bijvoorbeeld aan:
– Wat is het resourcegebruik per applicatie? Per gebruiker?
– Voldoen we aan de afgesproken service level agreement?
– Security: inbraken, virussen, denial-of-service attacks.
– Wat is gemiddelde- en piekbelasting op een server?
– Hoeveel ruimte tot groei is er nog? Wanneer moet ik uitbreiden?
Het is juist het besturingssysteem dat een sleutelrol speelt in de beantwoording van dit type vragen. Alleen binnen een OS kun je meten welke applicatie welke resources gebruikt. Alleen binnen een OS kun je constateren of er indringers zijn. Het OS bepaalt de daadwerkelijke verdeling van beschikbare resources en alleen binnen het OS kun je die verdeling sturen.
Het belang van het OS gaat echter nog verder. De meest optimale softwarestack ontstaat alleen als functionaliteit geboden door de hardware en het aanspreken daarvan door het OS maximaal op elkaar zijn afgestemd. Want alleen dan kan een goed gebalanceerd systeem ontstaan dat maximale prestaties levert aan de eindgebruiker. Leveranciers die zowel de hardware als het OS ontwerpen zijn hiermee dus in het voordeel.
Mijn stelling is dan ook: Het besturingssysteem is de belangrijkste component van elke softwarestack.
Het besturingssysteem is de belangrijkste component van elke softwarestack en voor mij ook de meeste interessante. Maar als gebruiker gaat het vooral om de functionaliteit van de applicaties en die van de tools die vaak met het eigenlijke OS worden meegeleverd. Dus het besturingssysteem is een noodzakelijk kwaad en niet zelden meer een kwaad dan nodig door al die overhead frutsels.
Opmerkelijk dat mensen in deze tijd nog de moed hebben om in een artikel wat van hardware tot applicatie loopt de belangrijkste innovatie te negeren: hypervisors.
Erg moedig.