Naar inhoud springen

Besturingssystemen/Architectuur

Uit Wikibooks
Architectuur OS
Toepassingsprogramma's
Window manager
Kernel met drivers
Hardware

Het besturingssysteem heeft een gelaagde architectuur, waarbij hogere lagen gebruikmaken van procedures uit de lagere lagen. In de toplaag worden opdrachten gegeven, de onderste laag bevat de details op het laagste niveau (de hardware om deze opdrachten uit te voeren).

In de tabel staat een heel eenvoudig vierlagenmodel, terwijl je in de galerij kan zien hoe er het "in het echt" uitziet. De functies van een besturingssysteem die verder in dit Wikibook worden besproken, merk je vaak op in zo'n detailarchitectuur.

Zo'n lagenmodel is handig, omdat de verschillende types van gebruikers een OS anders bekijken. Zo bekijkt de eindgebruiker een computersysteem in termen van toepassingen (bv. een tekstverwerker). Deze toepassing of applicatie wordt in een bepaalde programmeertaal geschreven door een toepassingsprogrammeur. Hij maakt gebruik van de voorzieningen van het OS bij het ontwikkelen van de toepassing.

Zo zal bv. een tekstverwerker een systeemaanroep doen naar het OS om een bestand te openen. Het "openingsvenster" (als onderdeel van de window manager) verschijnt, waarna een stuk software (als onderdeel van de kernel) het bestand zoekt en opent vanop het opslagmedium (de hardware). De toepassingsprogrammeur hoeft zich enkel te concentreren op zijn toepassing, want de rest wordt afgehandeld door onderliggende lagen. Een gelijkaardig verhaal bij het afdrukken: de toepassingsprogrammeur doet een systeemaanroep en het zal uiteindelijk de printer driver zijn (als onderdeel van de kernel) die het bestand echt afdrukt op de printer (hardware).

Hardware

[bewerken]

Geen software zonder hardware (bij het deel over het opstartproces wordt dieper ingegaan op het opstarten). Het besturingssysteem verdeelt de toegang tot systeembronnen tussen de actieve processen. De belangrijkste systeembronnen zijn:

  • Processor. Het is de verantwoordelijkheid van het besturingssysteem om te zorgen voor een optimale verdeling van de beschikbare verwerkingstijd tussen de verschillende toepassingen die gelijktijdig werken op een computer.
  • Intern geheugen. Een belangrijke taak van het OS is het toewijzen van (RAM-)geheugen voor het uitvoeren van een proces of instructie. Meer informatie lees je straks bij de geheugenbeheerder.
  • Randapparaten. Verzorgen van verkeer van (input) en naar (output) randapparaten.
    • Invoer: bv. toetsenbord en muis.
    • Uitvoer: bv. monitor en printer.
  • Opslagmedia. Het besturingssysteem bepaalt waar gegevens geschreven worden en zorgt er ook voor dat een gevraagd bestand van de juiste plaats wordt opgehaald. Daarnaast wordt ook de beveiliging van de gegevens geregeld waaronder de toegangsrechten en machtigingen, het gemeenschappelijk gebruik en het vergrendelen van bestanden.

In de besproken functies en andere hoofdstukken (opslagbeheer, processor,...) zullen deze systeembronnen meermaals aan bod komen.

Kernel met drivers

[bewerken]

Een kernel[1] is het meest centrale en meest onzichtbare onderdeel van een besturingssysteem, de kern die alle basisvoorzieningen verzorgt voor de andere delen van het besturingssysteem en voor computerprogramma's. Systeemprogrammatuur is dus software die nodig is voor het functioneren van het systeem, zoals software die zorgt voor het kopiëren van bestanden en die netwerkverkeer regelt. Deze software kan in de vorm van achtergrondprocessen zijn (bv. services/diensten/daemons). Bij functies wordt dit uitgebreider besproken.

Een driver of stuurprogramma is software dat een verbinding legt tussen de hardware (de controller) en het besturingssysteem. Dankzij de driver kan een programmeur op een uniforme manier het besturingssysteem aanspreken. Zo moet een programmeur van een tekstverwerker niet weten welke printer precies aanwezig is bij de eindgebruiker.

De controller is hardware dat zorgt voor de communicatie tussen randapparaat en driver. Het is een chip, een uitbreidingskaart of een losstaand apparaat, bv. memory controller, USB controller, Network interface controller.

De windowmanager

[bewerken]

Een windowmanager, ook wel Windowing system of Desktop environment (DE), is software die de plaatsing en het uiterlijk van vensters afhandelt in een venstersysteem. Zo hebben de programmeurs minder werk en krijg je een consistent gebruik en uiterlijk binnen het OS.

Bij Mac en Windows is er altijd gekozen voor een gecontroleerd en beperkt aantal manieren voor interactie met, en weergave van vensters op een scherm. Dit t.o.v. Unix-achtige besturingssystemen, waar er meer dan 100 windowmanagers beschikbaar zijn (zo gebruikt Lubuntu een andere, lichtere window manager dan Ubuntu). Bij Android heb je stock Android (bv. de Nexus- en Pixel-lijn), fabrikanten die een aangepaste Android installeren of een aangepaste Android die je zelf installeert (bv. LineageOS.

Toepassingsprogramma's

[bewerken]

Toepassingsprogramma's, toepassingsprogrammatuur of applicaties zijn algemene benamingen voor alle software die een voor de eindgebruiker (min of meer) nuttige toepassing heeft. Over het algemeen draaien toepassingsprogramma's 'op' (of 'onder') een bepaald besturingssysteem (d.i. systeemprogrammatuur).

Voorbeelden van applicaties zijn: tekstverwerker (zoals LibreOffice of Word), e-mailprogramma (zoals Thunderbird en Outlook) en mediaspelers (zoals VLC en Windows Media Player). Er bestaan ook steeds meer webapplicaties zoals Pixlr of de e-mailapplicaties van Outlook en GMail). De term apps wordt vaak gebruikt voor toepassingsprogramma's die draaien op een smartphone, smartwatch, tablet of een ander mobiel apparaat (alhoewel de term ook al wordt toegepast voor software die op gewone desktop draait).

Systeem- en gebruikersmappen

[bewerken]

Bij de architectuur van een besturingssystemen moet ook nagedacht worden waar belangrijke bestanden en mappen hun plaats krijgen in de documentenstructuur van dit besturingssysteem. Ter info geven we enkele voorbeelden mee. Zo merk je dat elk besturingssystemen zijn eigen aanpak heeft om deze ergens in de documentenstructuur te kunnen bewaren. De code met % of $ verwijst naar omgevingsvariabelen van het besturingssysteem (meer info bij Gebruik van de opdrachtprompt > Batchbestanden).

In Windows wordt heel wat van de basis geïnstalleerd in C:\Windows (%windir% of %SystemRoot%), waarbij de submap System32 een belangrijke rol speelt. In Linux is dat meer verspreid over verschillende mappen (bv. /, /bin, /etc, /lib, /usr, /var), waar iedere map zijn eigen doel heeft. Zo bevat /bin uitvoerbare bestanden, /etc configuratiebestanden voor het systeem en /var variabele bestanden (bv. logbestanden). Voor configuratie in Windows wordt vaak het instellingenprogramma geopend (vlag + i), het oudere Configuratiescherm of het register (regedit).

Software (zowel het besturingssysteem als de toepassingsprogramma's) zijn gemaakt voor een bepaalde processorarchitectuur (%PROCESSOR-ARCHITECTURE%): 32 bit of 64 bit, waar die van 64 ook compatibel is met 32 bit (zie Processor). Als toepassingsprogramma's in Windows systeembreed worden geïnstalleerd, dan is dat voor 64 bit software meestal in C:\Program Files (%ProgramFiles% of %ProgramW6432%) en voor 32 bit programma's in C:\Program Files (x86) (%ProgramFiles(x86)%).

Het is belangrijk om gebruikersdata maximaal te scheiden van data van het besturingssysteem. Zo krijgt iedere gebruiker zijn eigen map. In Windows is dat standaard een map onder C:\Users (%userprofile%), in Linux standaard onder /home ($HOME). Vervolgens kan onder die map niet alleen gewone data geplaatst worden, maar ook software geïnstalleerd worden die enkel voor die gebruiker toegankelijk is. In Windows gebeurt dit onder een verborgen map AppData\Local (%LOCALAPPDATA%), in Linux vaak onder de verborgen map .local.

Naast de mappen heb je ook altijd belangrijke bestanden. Denk in Windows aan de kernel ntoskrnl.exe, wat bij Linux meestal /boot/vmlinuz is. Om als gebruiker grafisch te kunnen aanmelden heb je winlogon.exe in Windows en bv. gdm in Linux.

Noten en referenties

[bewerken]
  1. (en) Enkele voorbeelden van kernelarchitecturen: De Linux kernel map, De Linux kernel (Wikimedia Commons) en de Window NT architectuur
Informatie afkomstig van Wikibooks NL, een onderdeel van de Wikimedia Foundation.