Linux

Fra IT2
Hopp til: navigasjon, søk

GNU/Linux er en familie frie operativsystemer.

Linux er navnet på kjernen i operativsystemene, men i dagligtalen brukes det om hele systemet. GNU-verktøyene utgjør sammen med Linux et fullstendig system.

Maskoten til Linux er den kjente pingvinen Tux.

Historie

Linus Torvalds er skaperen av Linux. I 1991 skapte han en Unix-lignende kjerne for PC-maskiner som han slapp fri på Internett. I 1994 ble versjon 1.0 av Linux sluppet, og i 1995 kom versjon 1.2.

Linuxkjernen

Minix

Forløperen til Linux-kjernen var Minix. Da UNIX var et ungt operativsystem, var kildekoden åpent tilgjengelig. Frem til UNIX versjon 6 ble kildekoden distribuert på universiteter, og John Lions ved University of New South Wales publiserte endog en beskrivelse av hver eneste linje i kildekoden.

AT&T oppdaget etterhvert operativsystemets potensiale som et kommersielt produkt. Ved lanseringen av UNIX versjon 7 var kildekoden blitt en forretningshemmelighet som var ulovlig å studere på universiteter.

I denne situasjonen ble Minix utviklet av Andrew S. Tanenbaum ved Vrije Universiteit i Amsterdam. I 1987 publiserte han hele kildekoden med sine 12,649 linjer i en lærebok om operativsystemer.

Linux tar form

Blant brukerne av Minix var Linus Torvalds. Minix 1.0 var blitt utviklet for å kjøre på Intels 16-bit mikroposessorer. Minix 1.5, som ble lansert i 1991, ble portert til Motorola 68000 og SPARC. Linus savnet et system for Intels nye 32-bit mikroprosessorer 80386 og 80486, og begynte arbeidet med å lage et nytt operativsystem for denne nye familien av mikroprosessorer.

Prosjektet startet den 26. august 1991 med en posting av Linus på Usenet-gruppen comp.os.minix: Sitat: Jeg lager et (fritt) operativsystem (bare en hobby, vil ikke bli stort og profesjonelt som gnu) for 386(486) AT-kloner... Dette har vært i anmarsj siden april, og begynner å bli ferdig. ... Jeg har for øyeblikket portert [[bash99(1.08) og gcc(1.40). ... Det er uten noen minix-kode, og har et filsystem med multitråder. Linus Torvalds

GNU-prosjektet hadde allerede skapt mange nødvendige komponenter i et fritt operativsystem. Operativsystem-kjernen GNU Hurd var likevel ennå ikke ferdig utviklet, og BSD-operativsystemene hadde ikke frigjort seg fra juridiske problemstillinger, slik at de kunne distribueres som fri programvare.

AT&T's bruk av patenter som et kommersielt middel, mot konkurrenter såvel som universiteter, tvang frem et fritt alternativ. Linus hadde ikke noe avansert operativsystem i tankene. Ei heller var det ment for alment bruk. Han ante ikke at prosjektet raskt skulle samle utviklere og brukere, der Minix-hackere tidlig bidro med kode og idéer til Linux-kjernen. Ei heller kunne han ane at kjernen etterhvert fikk hjelp av flere tusen programvare-utviklere.

Definisjonen av prosjektet som «ikke profesjonelt» skyldes at Tanenbaum konstruerte Minix etter prinsippene om en mikrokjerne i det distribuerte operativsystemet Mach. Mach representerte avansert nytenkning på denne tiden i universitetsmiljøer.

Linux mangler mikrokjerne. Det både var (og er) «monolittisk» liksom den opprinnelige UNIX. Linus benyttet heller ikke segmentert swapping etter modell fra Multics, fordi dette lettere gir et fragmentert minne enn sideveksling. Istedet valgte Linus samme minne-modell som IBM gjorde i OS/2 3.x: Sitat: Det er for det meste skrevet i [programmeringsspråket] C. ... Det utnytter enhver tenkelig egenskap ved 386 som jeg kunne finne, ettersom dette også var et prosjekt for å lære meg selv om 386-[prosessoren]. Som allerede nevnt, benytter det en MMU for både sideveksling (ennå ikke til disk) og segmentering. Det er segmenteringen som VIRKELIG gjør det 386-avhengig (enhver oppgave har et 64Mb segment for kode & data &ndash: maksimum 64 oppgaver i 4Gb) .... Fragmentering er et onde ...Jeg vil muligens gjøre det slik at [minne]-grensene enkelt kan forandres (til 32 Mb/128 oppgaver for eksempel) gjennom bare en [lettvint] rekompilering av kjernen.

Første versjon ble lansert den 17. september 1991 med versjonsnummeret 0.01. Datoen kan regnes som Linux-kjernens «fødselsdato», selv om den formelt ennå var uferdig. Kjernen hadde da 8.413 linjer med kode, og det ble solgt 90 datamaskiner som var bygd og sentrert omkring den nye operativsystem-kjernen.

Versjon 0.02 ble lansert den 5. oktober 1991. [4] Tredje versjon (desember 1991) hadde versjonsnummeret 0.11, og kunne rekompileres uavhengig av Minix. Ved lanseringen av verjon 0.12 i februar 1992, erstattet Linus sin egen lisens (som ikke tillot kommersiell distribuering) med GNU-lisensen for fri programvare. [5]

Den første postingen på Usenets diskusjonsgruppe alt.os.linux kom den 19. januar 1992. [6] Den 31. mars 1992 ble den omdøpt til comp.os.linux. [7]

Versjon 0.95 (7. mars 1992) kunne kjøre XFree86, som var en fri klone av X vindusystemet. Hoppet i nummereringen fra 0.12 til 0.95, skyldtes troen på at versjon 1.0 var umiddelbart forestående. Dette var en overoptimistisk antagelse: Versjon 0.95 ble etterfulgt av 0.95a, 0.96a (med fire revisjoner), 0.96b (med to revisjoner), 0.96c (med to revisjoner), 0.97 og 0.99. Fra 1993 til 1994 ble det lansert 15 oppdaterte versjoner av 0.99.

Den 13. mars 1994 ble Linux 1.0 endelig lansert. Et fritt operativsystem for Intel 80386 var en realitet, og er fødselsdatoen til den første stabile Linux-kjernen.

Versjon 1.2

Versjon 1.1 var en utviklingsversjon som kulminerte i lanseringen av den stabile versjon 1.2 den 7. mars 1995. En mer modulær oppbygning av kildekoden gjorde det enklere å portere Linux-kjernen til andre datamaskin-arkitekturer enn Intel 80386.

Versjon 2.0

Versjon 2.0 ble lansert den 9. juni 1996, etter å ha blitt utviklet gjennom utviklingsversjonen 1.3. Denne nye stabile versjonen ble utviklet ved hjelp av GNU C-kompilatoren versjon 2.7.2 og binutils 2.6.0.14.

Versjon 2.0 hadde bedre støtte for nettverk, med protokollene PPP, SLIP, CSLIP og PLIP, såvel som DDP (Appletalk), samt flere utstyrsdrivere. Den støttet også symmetrisk multiprosessering, der opptil 16 mikroprosessorer kunne kjøre i paralell i en og samme datamaskin. Den var enda mer modulært oppbygd enn versjon 1.2, og hadde dynamisk opplastbare moduler hvor blant annet aksess-lister ble implementert.

Versjon 2.0 var også den første operativsystem-kjernen med innebygd støtte for Java.

Versjon 2.2

Versjon 2.2, den stabile utgaven av utviklingsversjonen 2.1, ble lansert den 25. januar 1999. Den ble portert til Motorola 68000, PowerPC, såvel som til 64-bit mikroprosessorene SPARC64 og DEC Alpha. Den støttet også optimaliseringer for x86-kloner fra AMD og Cyrix. Versjon 2.2 innførte også støtte for Microchannel Architecture, «Plug & Play» for PCI-kort, støtte for CD-ROM, DVD, Iomega zip-drives, irDA, digital penn, og utvidet støtte for de fleste typer av Joystick. Koden for håndtering av lyd, lydkort og periferiutstyr for lyd (høytalere, etc.), var gjort mer modulær og enklere å oppdatere. Støtten for video var kraftig forbedret, med støtte for et voksende antall kort for TV (Video4Linux), radio og digitale kameraer. Det samme gjaldt støtten for amatør-radioer ved å tilføye støtte for protokollene NetROM og ROSE, og forbedringer i AX.25-laget.

Versjon 2.2 innførte støtte for internett-protokollen IPv6, med SPX og IPX.

Det «utvidede filsystemet» (ext) i de tidligere utgavene av Linux-kjernen, ble erstattet med ext2.

I nettverk ble det mulig å lese innholdet på datamaskiner med andre operativsystemer, og deres filsystemer: NTFS (Windows NT), FAT (MS-DOS), Virtual FAT og FAT32 (Windows 95 og Windows 98), Microsoft Joliet system (med lange filnavn på CD-ROM), HFS (Apple Macintosh), FFS (Amiga), UFS (BSD), SysVFS, Minix, Acorn RiscOS, FreeBSD, SunOS, og Solaris. I nettverk ble også støtten for NetWare forbedret.

To andre viktige nyheter i versjon 2.2, var støtte for Unicode og en gryende tilpasning til Unix98 standarden.

Versjon 2.4

Versjon 2.4, den stabile utgaven av utviklingsversjonen 2.3, ble lansert den 4. januar 2001. I heterogene nettverk ble støtten til andre operativsystemers filformater utvidet til å omfatte OS/2, Efs (Irix) og NextStep. Linux-kjernen støttet for første gang Sun NFS 3.0. Versjon 2.2 av Linux-kjernen var den første operativsystem-kjernen som var fullstendig kompatibel med IPv4-spesifikasjonen. Versjon 2.4 gjorde implementasjonen enda mer skalerbar. I nettverkslaget ble det også tilføyd støtte for DECNet, og innenfor OSI-modellens datalink-lag ble de to lagene for PPP og ISDN i versjon 2.2 slått sammen til ét lag.

Versjon 2.2 satte en grense på 1024 samtidig kjørende prosesser eller tråder. I versjon 2.4 var grensen skalerbar under kjøring, slik at det eneste som begrenser antall prosesser var datamaskinens mengde med RAM.

Versjon 2.4 tilføyde støtte for USB, PCMCIA, PCI-utvidelsen I2O og ISA Plug and Play. IDE-kontrollere støttet maksimalt 4 lagringsenheter i en datamaskin, det være seg harddisker, CD-ROM eller DVD. Versjon 2.2 utvidet grensen til 4 kontrollere og 10 IDE-enheter. I versjon 2.4 ble dette utvidet til 10 kontrollere og 20 enheter. Versjon 2.4 kunne også kjøres i innebygde systemer.

En generisk program-laster gjorde det mulig å kjøre DOS- og Windows-programmer direkte fra kjernen gjennom emulatorer som WINE og Dosemu. Versjon 2.4 var også mer kompatibel med POSIX, og mer avhengig av formatet ELF enn versjon 2.2, selv om versjon 2.2 var den første Linux-kjernen som bare kunne kompileres som ELF.

Versjonshistorikk

Versjon Lansert Siste oppdatering Kildekodens linjer Størrelse i Kb Datamaskiner1
0.01 17. september 1991 8.413  ? 90
0.02 5. oktober 1991 10,239  ?
1.0.0 13. mars 1994 1.0.9
(16. april 1994)
170.581 993 563
1.1.0 6. april 1994
(utviklingsversjon)
1.1.95 170.320  ? 561
1.2.0 7. mars 1995 1.2.13
(2. august 1995)
294.623 1.845 909
1.3.0 12. juni 1995
(utviklingsversjon)
1.3.100 323.581  ? 992
2.0.0 9. juni 1996 2.0.40
(8. februar 2004)
716.119 5.978 2.015
2.1.0 30. september 1996
(utviklingsversjon)
2.1.132 735.736  ? 1.727
2.2.0 25. januar 1999 2.2.26
(25. februar 2004)
1 676 182 15.385 4.599
2.3.0 11. mai 1999
(utviklingsversjon)
2.3.99 pre9 1 763 358  ? 4.721
2.4.0 4. januar 2001 2.4.37.9
(1. februar 2010)
3 158 560 30.383 8.187
2.5.0 23. november 2001
(utviklingsversjon)
2.5.75 3 833 603  ? 9.893
2.6.0 18. desember 2003 2.6.33
(24. februar 2010)
5 475 685 58.043 15.007

1 Antall datamaskiner solgt med find . -type f | wc -l


Vanlige Linux-distribusjoner

Du finner en veldig lang liste her.