Op je computer staat een besturingssysteem , Operating System (OS) in het Engels, geïnstalleerd. Een besturingssysteem is een onderliggend programma waarmee apps communiceren om de computer te gebruiken. Bij computers en laptops zijn de meest voorkomende besturingssystemen Linux, macOS en Windows. Bij telefoons en tablets zijn dit Android en iOS.
Grofweg behandelt het besturingssysteem de basistaken waarvan alle programma's afhankelijk zijn, waaronder:
De kernel bestuurt rechtstreeks hardware (toetsenbord, muis, microfoon, camera, harde schijven, geheugen, printer, luidsprekers, scherm, enz.). Dus de kernel is over het algemeen geschreven in een taal op laag niveau, zodat deze de hardware kan besturen. Het behandelt verschillende belangrijke taken:
Tegenwoordig zijn OS-kernels opmerkelijk vergelijkbaar. Van de vijf eerder genoemde systemen (Linux, macOS, Windows, Android en iOS) zijn er vier (alles op Windows na) gebaseerd op varianten van een enkele kernel, Unix genaamd.
("Unix" is een handelsmerk, momenteel eigendom van The Open Group, en niet alle varianten op Unix die op deze pagina besproken worden, mogen die naam gebruiken, maar ze bieden allemaal in wezen dezelfde programma-interface.) Unix werd rond 1970 gecreëerd door Ken Thompson en Dennis Ritchie in AT&T Bell Laboratories.
Voorafgaand aan Unix dacht bijna iedereen dat een besturingssysteem moest worden ontwikkeld voor een bepaalde computerarchitectuur en in de machinetaal van die computer moest worden geschreven, de instructies op zeer laag niveau die die hardware direct begrijpt. De eerste versie van Unix is ook geschreven in machinetaal voor één specifieke computer, de Digital Equipment Corporation PDP-7. Maar de Unix-ontwikkelaars wisten dat de PDP-7 niet de enige computer ter wereld was en dat er in de toekomst betere computers gemaakt zouden worden, dus wilden ze Unix draagbaar maken. Draagbaar betekent dat het naar een nieuwe computerarchitectuur kan worden overgezet zonder dat het programma helemaal opnieuw moet worden geschreven. Dus in 1972 vond Dennis Ritchie de programmeertaal C voor dat doel uit. C is vergelijkbaar met andere talen die op dat moment beschikbaar waren, maar met één toegevoegde functie: in C kan elke individuele byte van het geheugen van het programma gelezen of overschreven worden als je het adres weet. Het adres is een soort identificatie-nummer voor een byte net zoals een woonadres in het echt een identificatie is voor een huis. (Je kunt zien dat deze functie het tegenovergestelde is van abstractie op hoog niveau. Het is alleen nuttig voor een programmeur die in detail nadenkt over wat zich in het geheugen van de computer bevindt.) Unix werd vervolgens herschreven in C.
Vanwege deze draagbaarheid werd Unix al snel overgenomen door andere computerarchitecturen. Onderzoekers van Berkeley ontwikkelden een nieuwe versie, gebaseerd op de AT&T-versie, maar met virtueel geheugen . Dit maakt het mogelijk om een programma uit te voeren dat slechts gedeeltelijk in het hoofdgeheugen van de computer staat. Deze Berkeley-versie is een voorouder van Apple's besturingssysteem, macOS (sinds macOS 10.0) en iOS. (Een Apple-computer gedraagt zich niet exact als een Unix-computer, maar de verschillen zitten bijna allemaal in programma's op toepassingsniveau, niet in de kernel.) Android, het besturingssysteem van Google voor mobiele telefoons en tablets, is gebaseerd op Linux, een complete herschrijving van Unix oorspronkelijk geschreven door Linus Torvalds, destijds een student informatica in Finland.
De toepassingsprogramma's die deel uitmaakten van het originele Unix-pakket, zijn in de meeste systemen vervangen door herschreven programma's van GNU van de Free Software Foundation (een acroniem voor Gnu's Not Unix).