Unix är ett av de mest populära operativsystemen i världen på grund av sitt stora stöd och sin stora spridning. Det utvecklades ursprungligen som ett multitasking-system för minidatorer och mainframes i mitten av 1970-talet. Det har sedan dess vuxit till att bli ett av de mest använda operativsystemen överallt, trots dess ibland förvirrande gränssnitt och brist på central standardisering.
Den verkliga orsaken till Unix’ popularitet? Många hackare anser att Unix är det rätta – det enda riktiga operativsystemet. Därav utvecklingen av Linux av en växande grupp Unix-hackare som vill smutsa ner händerna med sitt eget system.
Versioner av Unix finns för många system, allt från persondatorer till superdatorer som Cray Y-MP. De flesta versioner av Unix för persondatorer är ganska dyra och otympliga. När detta skrivs kostar en version för en maskin avAT&T’s System V för 386:an cirka 1 500 dollar.
Linux är en fritt distribuerbar version av Unix, ursprungligen utvecklad av Linus Torvalds, som började arbeta med Linux 1991 som student vid Helsingfors universitet i Finland.Linus arbetar nu för Transmeta Corporation, ett nystartat företag i Santa Clara, Kalifornien, och fortsätter att underhålla Linuxkärnan, det vill säga operativsystemets kärnkomponent på lägsta nivå.
Linus släppte den första versionen av Linux gratis på Internet och startade oavsiktligt ett av de största fenomenen inom mjukvaruutveckling genom tiderna. I dag skrivs och underhålls Linux av en grupp med flera tusen (om inte fler) utvecklare som samarbetar löst över Internet.Företag har vuxit upp för att ge stöd till Linux, för att paketera det i lättinstallerade distributioner och för att sälja arbetsstationer som är förinstallerade med Linuxprogramvaran. I mars 1999 hölls den första Linux World Expo-mässan i San Jose, Kalifornien, och enligt uppgift deltog över 12 000 personer.Enligt de flesta uppskattningar ligger antalet Linuxanvändare i världen någonstans runt 10 miljoner (och vi räknar med att denna siffra kommer att se liten ut när du läser det här).
Inspirerad av Andrew Tanenbaums Minix-operativsystem (ett annat fritt Unix för PC – om än ett mycket enkelt sådant) började Linux som ett klassprojekt där Linus ville bygga ett enkelt Unix-system som kunde köras på en 386-baserad PC.De första diskussionerna om Linux ägde rum i Usenet-nyhetsgruppen comp.os.minix. Dessa diskussioner handlade mest om utvecklingen av ett litet akademiskt Unix-system för Minix-användare som ville ha mer.
Den mycket tidiga utvecklingen av Linux handlade mest om de funktioner för växling av arbetsuppgifter som finns i gränssnittet för 80386:s skyddade läge, allt skrivet i assemblerkod. Linus skriver:
Efter det var det en enkel resa: fortfarande hårig kodning, men jag hade några enheter och det var lättare att felsöka. Jag började använda C i det här skedet och det påskyndar verkligen utvecklingen. Det är också då jag börjar ta mina megalomaniska idéer om att göra ”ett bättre Minix än Minix” på allvar. Jag hoppades att jag skulle kunna återskapa Compilegcc under Linux någon dag …
Två månader för den grundläggande installationen, men sedan bara lite längre tid tills jag hade en diskdrivrutin (allvarligt buggig, men den råkade fungera på min maskin) och ett litet filsystem. Det var ungefär när jag gjorde 0.01 tillgänglig: det var inte vackert, det hade ingen floppydrivrutin och det kunde inte göra så mycket som helst. Jag tror inte att någon någonsin kompilerade den versionen. Men vid det laget var jag fast och ville inte sluta förrän jag kunde slänga ut Minix.
Inget tillkännagivande gjordes någonsin för Linux version 0.01. Källkoderna för 0.01 var inte ens körbara: de innehöll bara de naknaste rudimenten av kärnans källkod och förutsatte att man hade tillgång till en Minix-maskin för att kompilera och leka med dem.
Den 5 oktober 1991 tillkännagav Linus den första ”officiella” versionen av Linux, version 0.02. Vid denna tidpunkt kunde Linus körabash (GNU Bourne AgainShell) och gcc (GNU Ccompiler), men inte mycket annat fungerade. Återigen var detta tänkt som ett hackersystem. Det primära fokuset var kärnutvecklingen; ingen av frågorna om användarstöd, dokumentation, distribution och så vidare hade ens tagits upp. Idag är situationen helt annorlunda – den verkliga spänningen i Linuxvärlden handlar om grafiska användarmiljöer, distributionspaket som är lätta att installera och applikationer på hög nivå som grafiska verktyg och produktivitetssviter.
Linus skrev i comp.os.minix:
Längtar du tillbaka till de fina dagarna i Minix-1.1, när män var män och skrev sina egna enhetsdrivrutiner? Har du inget trevligt projekt och är bara sugen på att sätta tänderna i ett operativsystem som du kan försöka modifiera för dina behov? Tycker du att det är frustrerande när allt fungerar på Minix och du inte längre behöver jobba hela natten för att få ett smart program att fungera? Då kan det här inlägget vara något för dig.
Som jag nämnde för en månad sedan arbetar jag på en fri version av en Minix-lookalike för AT-386-datorer. Den har äntligen nått ett stadium där den till och med är användbar (även om den kanske inte är det beroende på vad du vill ha), och jag är villig att lägga ut källorna för bredare distribution.Det är bara version 0.02 … men jag har framgångsrikt körtbash, gcc, GNU make, GNUsed, compress, etc. under den.
Efter version 0.03, höjde Linus versionsnumret till 0.10, eftersom fler människor började arbeta på systemet. Efter ytterligare flera revideringar höjde Linus versionsnumret till 0.95, för att spegla hans förväntningar på att systemet var redo för en ”officiell” lansering mycket snart. (I allmänhet tilldelas programvara inte versionsnumret 1.0 förrän den är teoretiskt färdig eller felfri). Detta var i mars 1992. Nästan ett och ett halvt år senare, i slutet av december 1993, befann sig Linuxkärnan fortfarande i version 0.99.pl14 – och närmade sig asmptotiskt 1.0. Version 1.0 dök upp i mars 1994. När detta skrivs (mars 1999) är den nuvarande kärnversionen 2.2.6, medan kärnversionerna 2.3 håller på att utvecklas samtidigt. (Vi kommer att förklara Linux versionskonventioner i detalj senare.)
Linux hade inte kunnat bli till utan deGNU -verktyg som skapats av Free Software Foundation.Deras gcc -kompilator, som vi kommer att diskutera i kapitel 13, gav liv åt Linus Torvalds kod. GNU-verktygen har varit sammanflätade med utvecklingen av Linux från början. På grund av dessa verktygs viktiga bidrag begär Free Software Foundation till och med att distributioner av Linux med tillhörande verktyg ska kallas GNU/Linux.
Berkeley Unix (BSD) har också spelat en viktig roll för Linux – inte så mycket i skapandet av Linux, men i tillhandahållandet av de verktyg som gör det populärt. De flesta av de verktyg som följer med Linuxdistributioner har anpassats från BSD. Nätverksdemoner och verktyg är särskilt viktiga. Kärnans nätverkskod för Linux utvecklades från grunden (faktiskt två eller tre gånger), men dedatorer och verktyg är gamla BSD.
I dag är Linux en komplett Unix-klon som kan köra X Window System, TCP/IP, Emacs, webben, e-post- och nyhetsprogram, du kan säga vad du vill. Nästan alla större fria programvarupaket har anpassats till Linux, och kommersiell programvara börjar bli tillgänglig. Många utvecklare börjar faktiskt med att skriva program för Linux och anpassar dem senare till andra Unixsystem. Mer maskinvara stöds än i de ursprungliga versionerna av kärnan. Många människor har utfört benchmarks på Linuxsystem och funnit att de är snabbare än arbetsstationer från Sun Microsystems och Compaq, och Linux presterar bättre eller lika bra som Windows 98 och Windows NT på ett brett spektrum av benchmarks.Vem skulle någonsin ha gissat att denna ”lilla” Unix-klon skulle ha vuxit upp och tagit sig an hela världen av persondatorer och serverdatorer?