Rond 1: Kärnan


Linuxkärnan är, precis som BSD-kärnan och kärnorna i Sun OS, Open VMS och AIX, monolitisk. Det betyder att kärnan ensam styr över hårdvaran. Det finns också mikrokärnor eller hybridkärnor, dit bland annat Windows Server och Windows 7 hör.

Både Linuxkärnan och Unixkärnor använder tilläggsmoduler för att lägga till stöd för nya funktioner. Modulerna kan laddas och avlägsnas under körning. Med den tekniken kan kärnan vara relativt liten för att fungera även i enheter där utrymme är en bristvara, exempelvis i mobiltelefoner.

Linuxkärnan går att anpassa till ett äkta realtidsoperativ, RTOS, genom att man lägger till en fix utvecklad av Red Hat. Rapporter från initierade utvecklare antyder att realtidsstödet kan bli standard i Linux redan nästa år. Operativsystemet blir inte snabbare, men det blir möjligt att skriva så kallade deterministiska program som får svar inom en förväntad tidsrymd.

Skillnaden mellan Linuxkärnan och Unixkärnorna ligger främst i de proprietära tillägg vi kan hitta hos Unix, vilka för ­övrigt inte inkluderas i Unixstandarden. Exempel på sådana tillägg är Sun Microsystems Dtrace, filsystemet zfs och ­ursprungligt stöd för smb/cifs.



BSD-kärnan och flera kommersiella Unixversioner är ”genetiska” Unixar
med kod från Bell Laboratories. Gnu/Linux är byggd på en helt egen kodbas (något SCO inte håller med om), men implementerar alla Unix systemanrop och kvalificerar sig därmed som en Unix-like eller de facto-Unix.

Rond 2: Systemanrop


I begynnelsen var Spec 1170. Namnet kommer av de 1 170 standardiserade systemanrop (syscall) som krävdes för att få sätta stämpeln Unix på operativsystemet. Standarden utvecklades sedan till ieee 1003, men känns i dag igen som Posix. Det står för Portable operating system interface for Unix.

Posix är även en del av standarden Linux Standard Base (LSB). Posixstöd finns också i Windows ­Vista och Windows Server, även om det inte alltid är fullt implementerat. Stödet gör att många program utvecklade i C/C++ är kompatibla mellan Windows, Linux och Mac OS X.

Exempel på systemanrop är fork(2), execve(2), pipe(2), socket(2), select(2) och kill(2). Alla systemanrop finns utförligt dokumenterade i Linux och fås fram med kommandot ”man 2 [systemanrop]”. Tvåan (2) betyder att vi slår i avdelning två som är Linux Programmer’s Manual.

De tekniska skillnaderna mellan Unix och Linux är här alltså obefintliga, vilket har fått ­Dennis Ritche, Unix fader, att säga att ”Gnu/Linux är de facto-­Unix”.



Linux använder alla systemanrop
som ryms i specifikationerna Single Unix Specification och Posix. Av den anledningen kan Linux sägas vara Unix. Alla systemanrop är dokumenterade i avdelning två i Linux Programmer’s Manual.

Rond 3: Drivrutiner


Enligt Novellanställde Greg Kroah-Hartman på Linux ­Driver Project är Linux den operativsystemsplattform som har absolut flest drivrutiner, fler än Windows och Mac OS X. I dag är problem med ljud, nätverksdrivrutiner och grafik i stort sett ett minne blott. På det stora hela har Linux ingen brist på driv­rutiner.

Hos Unix är det sämre ställt. Hårdvarutillverkarna som bundlar Unix med sina lösningar ser till att drivrutinerna håller toppklass, men några initiativ att utveckla för annan hårdvara finns knappt. De Unixdistributioner som har kommit längst är BSD, som bland annat har stöd för NDIS-drivrutiner, och Suns Open Solaris.

Rond 4: Filsystem


Linux stora akilleshäl är fil­system. Ett område där Unix glänser och Linux inte alls är lika bra är lagring. Skillnaderna är inte märkbara när det handlar om mindre volymer, men när vi pratar datalagring i petabyteklassen hänger Linux inte med längre.

Det tar alldeles för lång tid att initiera och felsöka stora data­kluster i Linux. Solaris har zfs, som tar ögonblicksbilder, och har en teoretisk övre gräns på 16 exbibyte. HP har Adv FS, också känd som Tru 64 Unix Advanced Filesystem. Adv FS klarar fil- och volymstorlekar på upp till 16 tebibyte.

Koden är donerad under gpl v 2 och kan därför komma i Linuxkärnan framöver. Zfs är också öppen källkod, men har en licens som är inkompatibel med gpl v 2.

Linux får skämmas med nysläppta ext 4, som visserligen är utformat för stora volymer på upp till en exbibyte men som ännu inte är riktigt stabilt. ­Prestanda i ext 4 är heller inte i närheten av dem hos filsystemen i Unix. Förhoppningarna ligger i dag på btrfs (better-fs, butter-fs) som utvecklas av Oracle. Btrfs finns i Linuxkärnan, men någon stabil variant är ännu inte i sikte.

Rond 5: Stabilitet


För att säga hur stabilt ett system är måste vi se till helheten. Här har de traditionella Unixversionerna en fördel eftersom tillverkaren ofta tillhandahåller även hårdvaran. Exempel på leverantörer med den här typen av helhetslösningar är IBM, Sun/Oracle, HP och, kanske något förvånande, Apple. Apples Mac OS X 10.5 var första öppna operativsystemet baserat på BSD-kod som blev Unixcertifierat.

”Börser som Nasdaq
och ­London Stock
Exchange använder
med framgång Linux.”

Linux kan egentligen inte ­sägas vara mindre stabilt, exempelvis använder börser som Nasdaq och London Stock Exchange det med framgång. Linux har dock samma problem som Microsoft Windows: De är klämda mellan hårdvarutillverkarna och programmakarna. Ofta får operativsystemet ­oförtjänt kritik när det i själva verket är externa drivrutiner ­eller program som är det egentliga problemet.



Apples Mac OS X är ett levande bevis på att Unix inte måste ­vara grått och trist. Mac OS X 10.5 var första öppna operativ­systemet baserat på BSD som blev Unixcertifierat.

Rond 6: Prisvärdhet


Att Unix var så dyrt var en av anledningarna till att Linux utvecklades. Linus Torvalds började skriva på en fri ersättare till det kommersiella operativsystemet Minix och bytte från en licens som inte tillät kommersiell distribution till gpl-licensen från Gnu-projektet.

Gnu och Linux visade sig ­vara det vinnande konceptet. Även Unix har öppna varianter som är gratis, men om vi ser till var vi får mest för pengarna måste valet falla på Linux.

Rond 7: Community


Linux community heter Linux Foundation och är den stiftelse där beslut rörande den framtida inriktningen tas. Medlemmarna arbetar rätt självständigt och det är ingen större konst att få in kod i Linuxkärnan.

En av Linux Foundations viktigaste uppgifter är att se till att en enhetlig standard plockas fram för att underlätta för ­tredjepartstillverkare som utvecklar för Linux. Det behövs när det finns nästan tusen olika Linuxdistributioner.
Standardiseringsarbetet kallas Linux Standard Base, LSB, och har nått version 4.0.

LSB ska inte bara säkerställa att koden går att kompilera på målplattformen utan även att det finns binär kompatibilitet. Det ska alltså gå att flytta ett program från en Linuxdistribution till en annan utan att man måste kompilera om koden. Ingen större Linuxdistribution står utanför Linux Standard Base.

Unix community, om det ­ordet kan användas, har en stormig historia. Sun var tidigt ute och startade redan 1987 gruppen X/Open. Året därpå startades den rivaliserande gruppen Open Software Foundation (OSF). Åren som följde kan bäst beskrivas som ett skyttegravskrig som nötte på båda sidor. Kriget gav Windows fritt spelrum att växa och medan Unixgängen stred startade Richard Stallman Gnu-projektet, som något finurligt står för Gnu is not Unix.

I dag samsas Unixgängen ­under namnet Open Group, där motsvarigheten till LSB kallas Single Unix Specification. Det är de krav ett operativsystem måste uppfylla för att få kallas Unix.



Open BSD marknadsför sig som det mest säkra operativsystemet. Säkerheten är ett resultat av utvecklarnas ansträngningar och beror inte på att det är Unix i botten. BSD och Unix har dock nästan tjugo års försprång, vilket gör att grunden är mer solid än den i Linux.

TechWorlds slutsats


Det finns kombinationer eller hybrider av de båda världarna. Sun bygger exempelvis sitt öppna operativsystem Open Solaris på kärnan med samma namn, men använder många av de program som körs i den vanliga användarens adressrymd (userspace) från bland annat Gnu-projektet. Kombinationen skulle kunna kallas Gnu/Open Solaris enligt riktlinjer från Free Software Foundation, men det skulle antagligen inte godkännas av Suns avdelning för varumärken. Samma sak gäller för BSD, som också till stor del består av program från Gnu-projektet.

På gång i nästa version av ­Linuxdistributionen Debian, med arbetsnamnet Squeeze, är att Linuxkärnan ska vara utbytbar mot den i Free BSD.

”Linux är i själva verket
Unix. Sedan får Open Group
säga vad de vill.”

Unix kommer att finnas kvar många år, men de traditionella Unixsystemen har definitivt fått ge plats åt Linux eftersom Linux i själva verket är Unix. Sedan får Open Group säga vad de vill.

Grafik: Jonas Englund

» Så går du vidare

Fakta

Startat: 1991 på universitetet i Helsingfors
Förälder: Linus Torvalds
Språk: Kärnan är skriven i C. Linux Foundation har litteratur som beskriver ”skrivstilen” för att det ska bli enklare att få in kod i Linuxkärnan.
Vanliga missförstånd: Linux är benämningen på kärnan, men namnet brukar förknippas med hela systemet. Det är ett fel som är så vanligt att det nu är allmänt accepterat.
Kända implementeringar: RHEL, SLES, Android.
Varumärket: Ägs av Linus Torvalds genom Linux Mark Institute. Linus Torvalds tvingades ta ut en avgift av distributioner som använde varumärket för att upprätthålla status.
Licenser: Vem som helst får använda Linux, men koden som hamnar i kärnan ska vara kompatibel med gpl v 2. Den som försöker distribuera egna varianter utan att ha gjort kodändringarna offentliga kan räkna med problem.
Standarder: Linux Standard Base. Från och med LSB 2.0 ingår även Single Unix Speci­fication.

Startat: 1969 på AT&T:s Bell Laboratories
Föräldrar: Ken Thomson, Dennis Ritchie, Douglas ­McLlroy, och Joe Ossanna
Språk: Assembler, portades sedan till C av Dennis Ritche, som också utvecklade språket.
Vanliga missförstånd: Unix är egentligen inte ett operativsystem utan snarare en specifikation med namnet Single Unix Specification (Sus).
Kända implementeringar: Mac OS X 10.5, BSD, Solaris, HP-UX
Varumärket: Ägs av Open Group. Föremål för tvist mellan Novell/IBM och SCO.
Licenser: För att få Unixstämpeln måste en certifering ske. Koden kan antingen vara licensierad proprietärt eller under en öppen licens där BSD-licensen är den vanligaste.
Standarder: Single Unix ­Specification, Posix

  • Gnu, Gnu is not Unix. Samlingsnamnet på program utvecklade av bland andra Free Software Foundation. Gcc, glibc, binutils, core-utils, bash med fler.
  • SFU, Services for Unix. Det program som gör Windows Server 2003 Posix­kompatibelt.
  • Sus, Single Unix Specification. De krav som måste uppfyllas för att Open Group ska certifiera ett operativsystem som Unix.
  • Posix. Efterföljaren till Sus som fick sitt namn av Richard Stallman. Linux klarar standarden sedan LSB 2.0.
  • LSB, Linux Standard Base. Det standardiseringsarbete som bedrivs av Linux Foundation. För närvarande i version 4.0 och kan sägas vara Linux förlängning av Sus och Posix.
  • System V. Ursprungs-Unix som utvecklades på Bell Laboratories. Har kommit i ­fyra versioner, den senaste kallas SVR 4.
  • X/Open. Konsortiet som var första gemensamma försöket att ta fram en Unixstandard. Initiativtagare var Sun Microsystems.

Allt började med ett stort och utdraget krig mellan X/Open och Open Software Foundation. Det var ett utnötningskrig som tog hårt på båda sidor och som drog Unix varumärke allt längre ner i smutsen.

Ur krutröken reste sig en stor och ståtlig Gnu, Gnu is not Unix. Namnet sände en tydlig markering till bråkmakarna i Unixlägret, de kunde minsann inte göra något som helst anspråk på den här koden. Gnu var i stort sett ett komplett operativsystem. Det hade en kompilator (G/c), implementationer av kommandoradsverktygen i Unix (binutils), ett skal (bash) samt bibliotek för att bygga egna program (libc).

Grundaren Richard Stallmans stora problem var att programmen behövde en operativsystemskärna för att kunna användas. Gnu-projektets hopp stod till den egna kärnan Hurd. Det var inte en monolitisk kärna utan en så kallad mikrokärna ­(microkernel) som skulle cirkla runt Unix när det gällde funktionalitet, stabilitet och ­prestanda.

Arbetet med Hurd påbörjades 1984, men sex år senare fanns fortfarande ingen fungerande kärna. 1991 såg ­kärnan Linux dagens ljus. Linux var en monolitisk kärna, precis som övriga Unixkärnor, men koden var fri och uppfinnaren Linus Torvalds hade valt samma öppna licens som Gnu-projektet använde, gpl (general public license). Gpl är troligtvis Richard Stallmans enskilt största bidrag till den fria världen.

Gnu+Linux är en kombination så kraftfull att Richard Stallman fortfarande propsar på att man använder termen Gnu/Linux i stället för det vedertagna Linux, som i dagligt tal syftar på hela operativsystemet.

Det lilla, lilla företaget Cygnus Solutions startades 1989 av tre killar i en tvåa i Palo Alto, Kalifornien. De såg tidigt fördelarna med Richard Stallmans fria program och de blev viktiga bidragsgivare till Gnu-projektet. Symbiosen var så stark att namnet Cygnus rymmer Gnus varumärke.

Termen öppen källkod fanns fortfarande inte och begreppet fria program var något som bara it-hippies kände till. Cygnus affärsidé handlade främst om att erbjuda kommersiell support för kompilatorn gcc och de slog snabbt ut flera konkurrenter.

Under samma tid som Michael ­Tiemann på Cygnus sålde tjänster runt gcc-kompilatorn satt Mark Ewing och ­filade på ett komplett operativsystem baserat på Gnu/Linux. Systemet släpptes 1994 och namnet var Red Hat. Redan året därpå blev Mark Ewing uppköpt av Bob Young och de båda grundade Red Hat Software med Bob Young vid rodret. 1999 kom börsintroduktionen som medförde världshistoriens åttonde största uppgång under första börsdagen. Tre månader efter introduktionen förvärvade Red Hat Cygnus Solutions.

I dag används Red Hats Linux som ett av grundsystemen på Nasdaq, börsen där de introducerades för tio år sedan.