bz2
bz2 Nieuws 11 januari 2003

Unix en OS X: deel 1

Ik hoop, studie volente, meer van deze artikelen te schrijven over de Unix kant van OS X – BB.

Unix en Mac OS X: geschiedenis en introductie

Met de komst van OS X heeft Apple een radicale weg ingeslagen. OS X is gebaseerd op bekende, vertrouwde technieken met een Apple interface en gebruiksgemak. Een van die vertrouwde technieken is de onderliggende Unix laag waar Apple op hun site en bij hun presentaties zo prat op gaat.


De geschiedenis van Unix gaat terug naar het einde van de jaren ’70, toen een stel programmeurs bij AT&T in hun vrije tijd werkten aan een revolutionair systeem. In tegenstelling tot de in die tijd bestaande systemen ontworpen ze een speciale taal om dit systeem in te schrijven. Deze taal, de opvolger van de taal B, werd niet verrassend C genoemd. In tegenstelling tot bestaande systemen, die vaak heel dicht op de hardware geschreven waren, was hun systeem makkelijk van het ene systeem naar het andere over te zetten. Deze nieuwe creatie, Unix, sloeg al snel aan en tapes met de broncode van Unix werden de hele wereld over gestuurd. Ook bij de universiteit van California te Berkeley werd gebruik gemaakt van Unix, maar men was daar niet tevreden met de restrictieve licenties die AT&T op de creatie van haar medewerkers had geplaatst. Programmeurs in Berkeley begonnen dan ook met het vervangen van Unix onderdelen door hun eigen versies. Langzaamaan groeide daar dan ook een hele eigen versie van het Unix systeem met de codenaam BSD, Berkeley Software Design.

Tegen het eind van de jaren ’80, tenmidde van grote ruzies over het copyright op de oorspronkelijke Unix code, besloot de universiteit van California de BSD code onder een erg vrije licentie uit te brengen. Deze BSD code werd onmiddelijk opgepakt door vrijwilligers en evolueerde tot de bekende Siamese drieling FreeBSD, NetBSD en OpenBSD.

Ondertussen werd in het accademische circuit een nieuw informatica-concept geboren, dat van de microkernel. Om goed te begrijpen wat dit is is een definitie van het begrip kernel noodzakelijk. De kernel van een computersysteem is het kloppend hart van het systeem. Alle toegang tot invoer- en uitvoerapparatuur, bestandssystemen en netwerk gaat via de kernel. De kernel is verantwoordelijk voor het in goede banen leiden van alle op het systeem draaiende processen en het verzorgen van hun invoer en uitvoer.

Tot dan toe werden kernels monolithisch ontworpen, dat wil zeggen dat de kernel een grote, logge constructie was die in zijn eentje alle taken waarnam. Microkernels daarentegen zijn klein en doen op zichzelf vrij weinig. Ze vertrouwen op externe programma’s om dingen als bestandstoegang, netwerktoegang en apparaatbeheer te doen. Een van de in die tijd ontworpen microkernels is de Mach kernel van Carnegie Mellon University.

Jaren later, bij de geboorte van OS X, komen deze technieken bij elkaar. Apple neemt de Mach microkernel en bouwt daarop een aantal lagen die we zo vaak in de documentatie van Apple hebben gezien. Uit de broncode van FreeBSD komt een groot aantal Unix programma’s en bibliotheken. De combinatie van Mach microkernel en FreeBSD werd door Apple Darwin gedoopt en op Apple’s developer site vrijgegeven.

In tegenstelling tot veel commerciële Unix makers heeft Apple veel geleerd van de bestaande Linux- en Unix-software die door de open source gemeenschap is gecreëerd, OS X wordt dan ook standaard geleverd met bekende en vrij beschikbare werkpaarden zoals Apache, OpenSSH en gcc, waar andere Unix verkopers nog wel eens het succes van dergelijke pakketten volledig negeerde en vaak minder functionele, commerciële alternatieven meeleverde. Zeker met de komst van Jaguar is de Unix- en Linux-compatibiliteit van OS X sterk vooruit gegaan.

Foutje gezien? Mail ons. Wij zijn je dankbaar.

Reageer op artikel:
Unix en OS X: deel 1
Sluiten