"God saw everything that he had made, and saw that it was very good. " -- Bible King James Version. Genesis 1:31
In dit hoofdstuk wordt een overzicht van een Linux systeem gegeven. Als eerste worden de belangrijke services, waarin het besturingssysteem voorziet, beschreven. Vervolgens worden de programma's die deze services implementeren beschreven met een aanmerkelijk gebrek aan detail. Het doel van dit hoofdstuk is het systeem als een geheel te leren begrijpen, op dusdanige wijze dat elk onderdeel elders in detail wordt beschreven.
Een UNIX besturingssysteem bestaat uit een kernel en een aantal systeemprogramma's. Er bestaan tevens een aantal toepassingsprogramma's waarmee het feitelijke werk wordt uitgevoerd. De kernel is het hart van het besturingssysteem. [1] Het houdt de bestanden op de disk bij, start programma's en voert ze gelijktijdig uit, wijst geheugen en andere bronnen toe aan diverse processen, ontvangt pakketten van en stuurt pakketten naar het netwerk, enzovoort. De kernel doet vrij weinig uit zichzelf, maar het levert tools waarmee alle services kunnen worden samengesteld. Het voorkomt tevens dat iemand de hardware direct kan benaderen, iedereen dwingend de tools die het levert te gebruiken. [2] Op deze wijze voorziet de kernel in enige bescherming tussen gebruikers onderling. De gereedschappen waarin door de kernel wordt voorzien, worden gebruikt via systeemaanroepen. Zie manpage sectie 2 voor meer informatie over dit onderwerp.
De systeemprogramma's gebruiken de tools waarin door de kernel wordt voorzien om de diverse services te implementeren die vereist zijn voor een besturingssysteem. Systeemprogramma's en alle andere programma's draaien `bovenop de kernel', wat de user modus wordt genoemd. Het verschil tussen systeem- en toepassingsprogramma's is het doel: toepassingen zijn bedoeld voor het gedaan krijgen van bruikbare zaken (of voor het spelen, mocht het om een spel gaan), terwijl systeemprogramma's nodig zijn om het systeem werkend te krijgen. Een tekstverwerker is een toepassing; mount is een systeemprogramma. Het verschil is echter vaak vaag, en dit is alleen van belang voor geobsedeerde categorie-indelers.
Een besturingssysteem kan ook compilers en corresponderende library's bevatten (GCC en de C library in het bijzonder onder Linux), alhoewel niet alle programmertalen onderdeel uit hoeven maken van het besturingssysteem. Documentatie en soms zelfs spellen, kunnen er ook onderdeel van uit maken. Traditioneel werd het besturingssysteem gedefinieerd door de inhoud van de installatietape of -disks; bij Linux is dat niet zo duidelijk gezien het is verspreid over de in de wereld voorkomende FTP sites.
| [1] | In feite wordt vaak abusievelijk gedacht dat dit het besturingssysteem zelf is, maar dat is niet zo. Een besturingssysteem voorziet in heel wat meer services dan zuiver een kernel. |
| [2] | Ik zie dit altijd voor me als een vorm van een omhulsel, wat degenen met een achtergrond in object geöriënteerd programmeren kan helpen het beter te visualiseren. |