Frågan om macOS är ett äkta UNIX-system, bara ett ”unix-liknande” system, eller något annat är en ständigt återkommande debatt. Vi ska reda ut begreppen och utforska standarder som POSIX och SUS.
macOS: Är det UNIX eller inte?
Denna fråga väcker många funderingar. Hur ser macOS härstamning ut? Vilken del av det ursprungliga arvet finns kvar i dagens macOS, och spelar det överhuvudtaget någon roll? Innan vi kan avgöra om något är UNIX, Unix, eller unix-liknande, behöver vi förstå vad dessa termer egentligen betyder. Vem har rätt att definiera vad som är Unix eller UNIX, och vilka kriterier tillämpas?
Låt oss ta det från början.
Unix skapades för femtio år sedan på Bell Labs, ett forsknings- och utvecklingsföretag som då ägdes av AT&T. Vi spolar fram till 1973 och version 4 av Unix, som skrevs om i programmeringsspråket C. Detta innebar att operativsystemet blev mycket mer portabelt och lättare att överföra till olika hårdvaruplattformar. Samma år publicerade Ken Thompson och Dennis Ritchie, två av de huvudsakliga arkitekterna bakom Unix, en artikel på en konferens om operativsystem. De fick omedelbart många förfrågningar om att få kopior av operativsystemet.
AT&T var bundet av ett samtyckesdekret från 1956 som tvingade företaget att undvika ”alla verksamheter förutom tillhandahållandet av vanliga operatörskommunikationstjänster”. Unix ansågs inte passa in i AT&T:s kärnverksamhet, så företaget tog ett ovanligt beslut för den tiden: de distribuerade Unix som källkod med en generös licens. Små avgifter togs ut för att täcka frakt, emballage och en ”rimlig royalty”.
Spridningen av Unix-varianter
Unix levererades ”i befintligt skick” utan support. Därför bildades en Unix-gemenskap för att hjälpa medlemmarna, göra justeringar och utöka operativsystemet. Detta innebar att man kunde få källkoden, göra ändringar och få hjälp från gemenskapen. En modell som känns igen. Olika varianter av Unix började dyka upp, skräddarsydda för att passa de organisationer som använde dem.
Bob Fabry, professor i datavetenskap vid UC Berkeley, var medlem i programkommittén för symposiet om operativsystemsprinciper 1973. Han var där och lyssnade på en presentation av Thompson och Ritchie, som kallades The UNIX Time-Sharing System.
Fabry begärde en kopia av operativsystemet, och 1974 installerades Unix på en PDP/11 vid Computer Sciences Research Group (CSRG) vid UC Berkeley. Det är intressant att Ken Thompson tillbringade ett år där och arbetade med det som snabbt blev universitetets egen variant av Unix. Kopior av UC Berkeleys ändringar och tillägg distribuerades och kom att kallas Berkeley Software Distribution (BSD). Dessa distributioner blev så småningom ett komplett Unix-system, fortfarande känt som BSD. Versionsnummer som 4.2BSD identifierade de olika utgåvorna.
1984 släpptes AT&T från begränsningarna i samtyckesdekretet från 1956 och kunde börja marknadsföra sitt operativsystem ordentligt. Det inkluderade BSD-kod, som till exempel TCP/IP, vi och C-skalet, csh. Trots detta utbyte och samarbete fanns det problem med licensieringen. BSD innehöll AT&T-kod, som inte var öppen källkod, medan BSD-elementen var det.
En version av BSD utan AT&T-kod utvecklades för att lösa dessa problem. När AT&T-koden togs bort saknades dock cirka 20 procent av kärnan. William Jolitz skrev de saknade delarna, och den versionen av Unix släpptes som 386BSD. 386BSD-projektet lades ner, men 1993 ledde dess källkod till att projekten NetBSD och FreeBSD startades.
Detta ger oss en viktig pusselbit: FreeBSD.
Nästa steg i utvecklingen
Efter att Steve Jobs lämnade Apple Inc. 1985 grundade han ett företag som heter NeXT, Inc.. För att kunna erbjuda ett operativsystem för sin arbetsstationsproduktlinje utvecklade NeXT NeXTSTEP. Det använde BSD som grund, men introducerade en helt ny kärna.
NeXT använde en modifierad version av Mach mikrokärna och 4.3BSD för att skapa NeXTSTEP. Mach utvecklades på Carnegie Mellon för att främja forskningen om distribuerad och parallell databehandling. Forskargruppen använde BSD som operativsystem och bytte ut kärnan istället för att skapa ett eget operativsystem.
XNU – en hybridkärna
1996 köpte Apple, Inc. NeXT, Inc. och förvärvade därmed NeXTSTEP. Apple började utveckla operativsystemet som så småningom skulle bli macOS via Mac OS X. De uppgraderade Mach-kärnan och ersatte den med en mer avancerad version som Open Software Foundation utvecklade och använde i operativsystemet OSF/1. Apple uppgraderade även BSD-komponenterna med uppdaterade och förbättrade versioner från FreeBSD-distributionen.
Apple integrerade delar av BSD-kärnan i Mach-kärnan. De skapade även en hybridkärna som kombinerade egenskaper från både monolitiska och mikrokärnarkitekturer.
I/O-kitet, som Apple utvecklat baserat på NeXTSTEPs DriverKit, inkluderades också. Det gjorde det möjligt att lägga till drivrutiner i kärnan utan att behöva ändra den varje gång.
XNU är den tredje delen av pusslet.
POSIX- och SUS-standarderna
1996 gick två standardiseringsorgan – X/Open och Open Software Foundation – samman och bildade The Open Group.
Den öppna gruppen är den certifierande