Linux (kjerne)

Linux
operativsystem
Laster inn Linux-kjerne 2.6.24.4, Knoppix 5.3.1
UtviklerLinus Torvalds og andre
FamiliePOSIX
Første utgivelse1.0 (13. mars 1994 [1] )
Nåværende utgivelse5.19.9 (15. september 2022) og 6.0-rc6 (18. september 2022)
Kjernetype _Monolitisk
Støttede plattformerAlpha AXP , Sun SPARC, Motorola 68000 , PowerPC , ARM , Hitachi SuperH, IBM S / 390, MIPS , HP PA-RISC, Intel IA-64, AMD x86-64, AXIS CRIS, Renesas M32R, Atmel AVR32, Renesas H8 / 300, NEC V850, Intel Quarz, Tensilica Xtensa, Analog Devices Blackfin [2]
Grafiske grensesnittUlike skrivebordsmiljøer som opererer på X Window , CLI eller innebygde systemer
LisenstypeGratis programvare
TillatelseGNU GPLv2
UtviklingsstadietPågår (kontinuerlig utvikling)
Nettstedwww.kernel.org

Linux er en kjerne , opprettet i 1991 av Linus Torvalds og avledet fra UNIX , distribuert under den frie programvarelisensen GNU GPLv2 (i stedet for proprietær programvare ), også inkludert flere fastvare under ikke-frie lisenser [3] [4] . Ofte brukt i forbindelse med GNU -operativsystemet , unnfanget av Richard Stallman , ga det liv til Linux- operativsystemfamilien , utbredt i forskjellige distribusjoner (direkte tilgang til kjernen av brukeren / administratoren i brukermodus / kjernemodus oppnås gjennom såkalt Linux-konsoll ). Utviklingsaktiviteten, fremmet av Linux Foundation , har ført til en standardisering kjent som Linux Standard Base , mens et forsøk på å implementere en helt gratis kjerne er representert av Linux-libre .

Historie

I april 1991 begynte Linus Torvalds , en finsk informatikkstudent ved Universitetet i Helsingfors , i en alder av 21 å jobbe med noen enkle ideer for et operativsystem. Det startet med en monteringsprogrammert kontekstbryter på en Intel 80386 - prosessor og en terminaldriver . På dette tidspunktet, 25. august 1991, skrev Torvalds et innlegg [5] , hvorav en oversettelse rapporteres:

«Jeg programmerer et operativsystem (gratis og bare for hobby, ikke ment å være stort og profesjonelt som GNU) for AT 386 (486) kloner. Den har vært under forberedelse siden april, og begynner å virke. Jeg vil gjerne vite hva du liker og misliker med Minix, da operativsystemet mitt delvis ligner det (blant annet det samme fysiske oppsettet av filsystemet, av praktiske årsaker).

Jeg har konvertert bash-skallet (v.1.08) og GCC (v.1.40), og de ser ut til å fungere. Dette betyr at jeg kommer i gang med noe om noen måneder, og jeg vil gjerne vite hvilke funksjoner folk flest vil ha. Alle forslag er velkomne, selv om jeg ikke kan love deg at jeg vil implementere det."

Linus hadde begynt å programmere kjernen på en MINIX -arkitektur , et gratis operativsystem programmert av universitetsprofessor Andrew S. Tanenbaum , som senere kritiserte den finske studentens arbeid mye.

Etter publiseringen av dette innlegget samarbeidet mange mennesker om utviklingen av prosjektet, og 5. oktober 1991 ga Linus ut versjon 0.02 av kjernen, omtrent en måned etter utgivelsen av versjon 0.01, som ikke var særlig vellykket. Han skrev, i anledning utgivelsen, følgende innlegg [6] :

«Angrer du på de gode dagene til Minix 1.1, da menn var menn og skrev sjåførene selv? Går du glipp av et godt prosjekt og har du lyst til å knekke beinene dine med et operativsystem som du kan prøve å modifisere etter dine behov? Synes du det er frustrerende at alt fungerer på Minix? Bruker du ikke flere netter på å få et program som fungerer fantastisk? Da bør dette innlegget være laget for deg

Som jeg sa for en måned siden, jobber jeg med en gratisversjon av en Minix-klone for AT-386-datamaskiner. Det har endelig nådd et stadium hvor det er brukbart (selv om det ikke kan avhenge av hva du ønsker), og jeg er for å gjøre kildene offentlige for massene. Det er bare versjon 0.02 (en veldig liten oppdatering er allerede klar), men jeg har startet shell bash / GCC / GNU-make / GNU-sed / compress etc.

Kildene til dette prosjektet mitt kan lastes ned nic.funet.fi i mappen / pub / Linux . Mappen inneholder også noen README-filer og et par binærfiler for å kjøre under Linux (bash, update og gcc.) Den fullstendige kjernekilden er gitt da ingen kode fra Minix har blitt brukt. Kilden til bibliotekene er bare delvis gratis og kan derfor ikke distribueres for øyeblikket. Du kan kompilere systemet slik det er, og det har vist seg å fungere. Heh. De binære kildene (bash og gcc) kan finnes på samme sted i / pub / gnu.

MERK FØLGENDE! MERK! Disse kildene trenger minix-386 for å kompilere (og gcc-1.40, eller, har ikke blitt testet, 1.37.1), og satt opp riktig for å fungere, så det er ennå ikke et frittstående system for de som ikke har Minix. Jeg jobber med saken. Du må også være ganske erfaren for å sette den opp riktig, så for de som håper på et minix-386-alternativ, vennligst ignorer meg. Den er for tiden rettet mot eksperter som er interessert i operativsystemer og 386 med tilgang til Minix.

Systemet krever en AT-kompatibel harddisk (IDE er greit) og EGA/VGA. Hvis du er interessert, last ned README og utgivelsesnotater, og/eller send meg en e-post for mer informasjon.

Jeg kan (mer eller mindre) høre at du lurer på "hvorfor?". Hurd kommer ut om et år (eller 2, eller neste måned, hvem vet), og jeg har allerede Minix. Dette er et program for programmerere skrevet av en programmerer. Jeg likte å skrive den, og noen vil kanskje sjekke den ut og til og med redigere den for sine egne behov. Den er liten nok til å forstå, bruke og redigere, og jeg er nysgjerrig på kommentarene dine.

Jeg vil også gjerne høre fra alle som har skrevet verktøy eller bibliotekfunksjoner for Minix. Hvis innsatsen din kan distribueres fritt (under opphavsrett eller til og med i det offentlige domene), vil jeg gjerne høre fra deg, slik at jeg kan legge dem til systemet. Jeg bruker Earl Chews estdio for øyeblikket (takk for et fint og fungerende system Earl), og lignende arbeider vil være veldig velkomne. Din C vil åpenbart forbli intakt. Send meg en linje hvis du vil la meg bruke koden din."

En alt.os.linux- nyhetsgruppe ble startet og det første innlegget ble lagt ut 19. januar 1992. [7] 31. mars 1992 ble alt.os.linux comp.os.linux . [8]

Snart ble X Window System overført til Linux. Den første versjonen av Linux som kunne kjøre X var 0.95 i mars 1992. Dette store spranget i versjonsnummerering (fra 0.1x til 0.9x) skyldtes det faktum at en 1.0-versjon uten manglende deler føltes veldig nærme. Denne følelsen var imidlertid for optimistisk, og fra 1993 til tidlig i 1994 ble 15 versjoner av versjon 0.99 utgitt.

14. mars 1994 ble Linux 1.0.0 utgitt, med 176 250 kodelinjer. I mars 1995 ble Linux 1.2.0 (310 950 linjer med kode) utgitt.

Versjon 2 av Linux, utgitt 9. juni 1996, ble fulgt av andre hovedversjoner under versjon 2-prefikset:

Tanenbaum-Torvalds-debatten

Det faktum at Linux er en monolitisk kjerne i stedet for en mikrokjerne var gjenstand for Tanenbaum - Torvalds -debatten . Debatten begynte i 1992 om Linux og kjernearkitektur generelt på Usenet comp.os.minix -diskusjonsgruppen . [11] Tanenbaum hevdet at mikrokjerner var overlegne monolittiske kjerner og derfor var Linux foreldet. I motsetning til tradisjonelle monolittiske kjerner, konfigureres drivere enkelt som kjernemoduler og lastes inn eller ikke mens systemet kjører. Dette argumentet ble reist igjen 9. mai 2006 [12] og 12. mai 2006. [13]

Beskrivelse

Linux -kjernen , et av de mest vellykkede eksemplene på åpen kildekode-programvare , [14] utgjør kjernen i operativsystemene til Linux-familien eller Linux- distribusjoner . [15] Den ble opprinnelig opprettet i 1991 av noen finske informatikkstudenter [16] inkludert Linus Torvalds , gruppelederen. Deretter økte dets utviklere og brukere plutselig og ble med i gratisprogramvareprosjektet og bidro til utviklingen av det nye operativsystemet. [17]

Utgitt, fritt nedlastbar [1] og modifiserbar / tilpassbar under den gratis GNU GPL [18] -lisensen (sammen med noe fastvare med forskjellige lisenser), er den kontinuerlig og fritt utviklet av samarbeidspartnere fra hele verden gjennom fellesskapet , med utviklingen at hver dag foregår ved hjelp av den relative postlisten , på en helt analog måte som internettprotokollene er utviklet på . Linux -kildekoden er derfor tilgjengelig for alle og kan tilpasses bredt, til det punktet at den gjør det mulig i kompileringsfasen å ekskludere kode som ikke er strengt nødvendig.

Som ethvert prosjekt som er fri programvare , er Linux-kjernen derfor i konstant utvikling [19] med størrelsen på kjernen som vokser eksponentielt, legger til nye moduler, ny støttet maskinvare og så videre. Hovedutviklingsgrenen til Linux-kjernen sørger for at den også inneholder noen ikke-frie, tilslørte eller skjulte deler, for eksempel noen drivere . Linux-libre- prosjektet foreslår i stedet seg selv som en helt gratis variant av Linux, hvorfra flere helt gratis distribusjoner ble født . [20]

Som "hjertet" i et operativsystem (kjerne) gir det alle de essensielle funksjonene for systemet, spesielt styring av primærminne , systemmaskinvareressurser og periferiutstyr , og tildeler dem fra tid til annen til de kjørende prosessene . Motstykket til kjernen er skallet , som er systemets brukergrensesnitt, den ytterste delen. Programmer ber om ressurser fra kjernen gjennom systemanrop og kan ikke få direkte tilgang til maskinvaren.

Den tar seg derfor av å administrere prosessortid , kommunikasjon og minne, distribuere dem til pågående prosesser i henhold til prioriteringer ( planlegging ), og dermed oppnå multitasking . Den støtter derfor multitasking og er flerbruker : dette lar forskjellige brukere (med forskjellige privilegier) kjøre forskjellige programvareprosesser samtidig på samme system. Linux støtter for tiden mye av maskinvaren som er tilgjengelig for PC -er og støtter et stort antall arkitekturer (inkludert SPARC , PowerPC , ARM og de mest moderne 64-bits CPU -ene ) .

Linux støtter multitasking med forhåndsutgivelse (i både brukermodus og kjernemodus ), virtuelt minne , delte biblioteker , load on demand , delte kopier-på-skriv- kjørbare filer , minneadministrasjon , Internett-protokollpakken og tråder . Fleksibiliteten til denne kjernen gjør den egnet for alle de nye innebygde teknologiene og også i distribuerte datasentre (som Beowulf - klyngen ) opp til å bli integrert i noen digitale videoopptakere og mobiltelefoner .

Arkitektur

Linux er en monolitisk kjerne . Selv om kjernen i dag kan kompileres på en slik måte at den har et minimert binært bilde og drivere som kan lastes fra eksterne moduler, er den opprinnelige arkitekturen godt synlig: faktisk må alle drivere ha en del utført i kjernemodus , til og med de der dette ikke er nødvendig i det hele tatt (f.eks . filsystemdrivere ).

Kjernedrivere og utvidelser fungerer i kjernerom ( ring 0 på de fleste CPUer ), med full tilgang til maskinvaren, selv om noen unntak fungerer i brukerrom . Grafikksystemet som de fleste bruker med Linux, fungerer ikke i kjerneplass. Forhåndstildeling av kjernemodus lar enhetsdrivere forhåndstildeles under visse forhold. Denne funksjonen ble introdusert for å håndtere maskinvareavbrudd på riktig måte og forbedre støtten for det symmetriske multiprosessorsystemet (SMP). Forhåndstildeling forbedrer også ventetiden , øker responsen og gjør Linux mer egnet for sanntidsapplikasjoner.

Portabilitet

Selv om det i utgangspunktet ikke er designet for å være bærbart , er Linux en av de mest bærbare operativsystemkjernene, som kan kjøres på et bredt spekter av systemer fra iPAQ (en håndholdt datamaskin) til IBM System z9 (en stormaskinserver som kan kjøre hundrevis eller tusenvis av samtidige Linux-forekomster). Linux er det primære operativsystemet til IBMs Blue Gene superdatamaskiner . Linux er operativsystemet til mer enn 97 % av systemene på Topp 500 -listen over superdatamaskiner. [21] I tillegg har Linux blitt kompilert til en rekke bærbare enheter som TuxPhone og Apples iPod.

Programmeringsspråk

Linux er skrevet i versjonen av C-programmeringsspråket som støttes av GCC -kompilatoren (som introduserte en rekke utvidelser og endringer i standard C), sammen med en rekke korte deler av kode skrevet i Assembly -språket (GCC-syntaks med "AT&T"-stil ). Takket være C-utvidelsene den støtter, var GCC lenge den eneste kompilatoren som var i stand til å kompilere Linux riktig. I 2004 hevdet Intel å ha modifisert kjernen slik at C-kompilatoren også var i stand til å kompilere Linux. [22]

Mange andre språk brukes på en eller annen måte, spesielt i kjernekompileringsprosessen (metoder der et oppstartbart bilde lages fra kildekoden). Disse inkluderer Perl , Python og flere shell -språk . Noen drivere kan også være skrevet på C ++ , Fortran eller andre språk, men denne praksisen frarådes på det sterkeste. Linux-byggesystemet støtter kun offisielt GCC som både kjerne- og driverkompilatoren.

Kompileringsalternativer

Linux-kjernen har konfigurerbare byggealternativer som lar deg legge til eller fjerne spesifikke funksjoner fra kjernen under den første byggingen. I løpet av denne siste fasen kan noen tilpassede standardparametere også konfigureres.

Kjerneobjekter

Kjerneelementer er funksjoner, variabler, overskriftsfiler og makroer. [23]

Kjerneoverskrift

Kjerneoverskrifter er C-overskriftsfiler som gir deling av noen lavnivå- ABI -kjernedefinisjoner mellom kjerner og brukerromsapplikasjoner . De fleste applikasjoner trenger ikke disse overskriftene: de er kun for direkte bruk av systembiblioteker, verktøy og lavnivådemoner. [24]

Kommandoen "" make headers_install, når den utføres på kjernekildetreet, eksporterer kjerneoverskriftsfilene i en form som er egnet for bruk av programmer i brukerområdet. [25] Når de eksporteres, finnes de fleste kjerneoverskrifter i katalogene /usr/include/asmog/usr/include/linux

Kjernepanikk

I Linux er en "panikk" en uopprettelig systemfeil oppdaget av kjernen i motsetning til lignende feil oppdaget i brukerromsmodus . Kjernemoduskode har muligheten til å indikere en slik tilstand ved å kalle opp funksjonen som er panicdeklarert i overskriften til sys / system.h-filen. Imidlertid er de fleste kjernepanikk et resultat av unntak i kjernekoden, for eksempel ugyldige minneadressereferanser . Dette er vanligvis en indeks på

Støttede binære formater

Linux 1.0 støttet binærformatet a.out og ELF , som forenkler opprettelsen av delte biblioteker (brukes mye av moderne skrivebordsmiljøer som KDE og GNOME [26] ). ELF er standardformatet brukt av GCC siden versjon 2.7.0 [27] så i dag brukes a.out svært sjelden.

Linux støtter mange andre binære formater, inkludert binfmt misc for å knytte en fil til et program (for eksempel en tolk ) for å kjøre eller vise den filen.

Virtuelle maskinarkitekturer

Linux-kjernen har omfattende støtte og kjører på en rekke virtuelle maskinarkitekturer som både "server" og "klient" operativsystem. Virtuelle maskiner emulerer vanligvis x86-arkitekturprosessorfamilien , selv om PowerPC- eller AMD64 -prosessorer i noen tilfeller også emuleres .

Versjoner

Mens han utvikler sin egen kode og integrerer modifikasjoner laget av andre programmerere, fortsetter Linus Torvalds å gi ut nye versjoner av Linux-kjernen. Disse kalles "vanilje"-versjoner, noe som betyr at de ikke har blitt modifisert av noen andre. Mange Linux-distribusjoner modifiserer kjernen for systemet sitt, hovedsakelig med det formål å legge til støtte for drivere eller funksjoner som ikke offisielt er utgitt som stabile, mens andre distribusjoner bruker en vaniljekjerne.

Utviklingsmodell

Utviklingsmodellen for Linux 2.6 skiller seg sterkt fra den for Linux 2.5. Tidligere var det en stabil gren (2,4), hvor det kun ble gjort relativt små og sikre endringer, og en ustabil gren (2,5), hvor større endringer var tillatt. Dette gjorde at brukere alltid hadde en versjon med de siste rettelsene, men måtte vente på nye tillegg fra filial 2.5. Ulempen med denne prosessen var at den stabile versjonen av kjernen over tid ikke lenger støttet nyere maskinvare, og manglet funksjonene som etter hvert trengtes.

Mot slutten av 2.5.x-serien har noen utviklere bestemt seg for å gjøre noen endringer i den stabile grenen, men dette har resultert i en økning i problemer i 2.4.x-serien til kjernen. Gren 2.5 ble deretter erklært stabil og omdøpt til 2.6. I stedet for å åpne en ustabil 2.7-gren, fortsatte utviklerne å gjøre store endringer i den stabile grenen. På denne måten har endringene blitt overvåket mer presist, ved å dele dem opp i mindre biter, gjøre nye funksjoner raskt tilgjengelige og utvide antall personer som tester den siste koden.

Den nye utviklingsmodellen som kjennetegner 2.6 sikrer også at det ikke er noen stabil gren for folk som kun er ute etter feilrettinger eller sikkerhetsrelatert, men ikke trenger de nyeste funksjonene. Rettelsene brukes kun i den nyeste versjonen, så hvis en bruker vil ha en versjon med alle kjente feil fikset, får han alle de nyeste funksjonene samtidig, men risikerer (i noen tilfeller) at noen ting ikke fungerer lenger enn i forrige versjon fungerte de. En delvis korrigering av dette problemet ble nevnt tidligere (se det fjerde sifferet i versjonsnummeret): det karakteriserer nye kjerner, men det løser ikke helt noen behov som du ikke ville ha ved å bruke en stabil gren. Distribusjoner, som Red Hat og Debian [28] , inkluderer allerede en viss type kjerne i sine utgivelser: de fleste har det bedre med standardversjonene.

Som svar på mangelen på en stabil kjernegren (ment som en gren der ingen nye endringer gjøres, kun fikser), annonserte Adrian Bunk i desember 2005 at han ville fortsette å gi ut kjerne 2.6.16.y selv når det var versjon 2.6.17 utgitt. [29] Den planla også å inkludere driveroppdateringer, og dermed gjøre utviklingen av 2.6.16-serien veldig lik den til den gamle 2.4. [30]

10. oktober 2008 ble stabil versjon 2.6.27 utgitt. [31] . I februar samme år utviklet utviklerne en ustabil kjernegren , kalt linux-next : et sted å være vert for endringene, med den hensikt å inkludere dem i neste utviklingssyklus. [32]

I juli 2011 , for å feire 20-årsjubileet for Linux, bestemte Torvalds seg for å gi ut versjon 3.0 av kjernen, og bytte til et 2-sifret nummereringssystem. Den siste utgivelsen av 2.6-serien var 2.6.39.

Versjonskontroll

Tidligere ble Linux-kjernens kildekode administrert uten bruk av et automatisk versjonskontrollsystem ( SCM), hovedsakelig på grunn av det faktum at Torvalds ikke liker sentraliserte SCM-er.

I 2002 byttet kjerneutvikling til BitKeeper , en SCM som oppfylte de tekniske kravene til Torvalds og var interoperabel, til en viss grad, med andre systemer som CVS og Subversion . Selv om Torvalds og andre utviklere fikk BitKeeper gratis, forårsaket det kontroverser at det ikke var fri programvare .

Andrew Tridgells omvendt utviklingsforsøk på BitKeeper overbeviste BitMover, selskapet som drev BitKeeper, til å avslutte støtten til Linux-utviklingsfellesskapet. Følgelig skrev Torvalds og andre et nytt versjonskontrollsystem, kalt git ; den nye programvaren ble skrevet på noen få uker, og to måneder senere var den første offisielle versjonen av Linux-kjernen utgitt med git. [33] Kort tid etter ble git et uavhengig prosjekt, som fikk stor popularitet i fri programvaresamfunnet.

Vedlikehold

Linus Torvalds er endrings- og utgivelsesansvarlig for de nyeste kjerneversjonene: han har delegert vedlikeholdet av de eldre versjonene til andre programmerere. Noen eldre versjoner som 2.0 (offisielt foreldet av 2.2.0-kjernen utgitt i januar 1999) blir bare oppdatert når det anses nødvendig, og endringer er svært sjeldne.

Kjerne serien Gjeldende versjon Veileder
2.0 2.0.40 David Weinehall [34]
2.2 2.2.27-rc2 Marc-Christian Petersen [35] (tidligere veileder Alan Cox )
2.4 2.4.37-rc2 Willy Tarreau [36] (tidligere veileder Marcelo Tosatti )
2.6.16 2.6.16.62 Adrian Bunk [37]
2.6.17+ (hyppige endringer) Linus Torvalds
2,6.x-mm (endrer seg raskt) Andrew Morton

Andre kjente Linux-kjerneprogrammerere er Robert Love og Ingo Molnár . [38]

Versjonsnummerering

Lenge besto Linux-kjerneversjonen av tre tall, men nylig har dette systemet blitt endret og nå består versjonen av fire sifre, i formen "ABC [.D]", for eksempel 2.2.1, 2.4.13 , eller 2.6.12.3;

Noen ganger kan også andre bokstaver bli funnet etter versjonen, for eksempel 'rc1' eller 'mm2'; 'rc' er en kandidatversjon for adopsjon som stabil, og indikerer en uoffisiell utgivelse. Andre bokstaver, på den annen side, er ofte (men ikke alltid) initialene til en person: dette signaliserer en gaffel av kjernen av denne personen. For eksempel står 'ck' for Con Kolivas , 'ac' for Alan Cox , mens 'mm' står for Andrew Morton . Noen ganger er bokstavene relatert til kjernefunksjonen til kjernen. For eksempel indikerer 'wl' en testversjon for trådløse nettverk.

Historiske versjoner

Den første kjerneversjonen var 0.01. Dette ble fulgt av 0.02, 0.03, 0.10, 0.11, 0.12 (den første versjonen utgitt under GNU General Public License ), 0.95, 0.96, 0.97, 0.98, 0.99 og 1.0. [39] Fra versjon 0.95 til disse har flere patcher blitt utgitt mellom versjonene.

Stabil versjonshistorikk

Det har vært to stabile hovedversjoner av Linux 1. x -kjernen : 1.0 og 1.2. Versjon 1.0 ble utgitt 14. mars 1994 [40] Denne versjonen av Linux-kjernen var kun kompatibel med enkeltprosessor i386 -systemer . Senere ble det også bekymring for portabilitet, og så versjon 1.2 (utgitt 7. mars 1995 [41] ) inkorporerte støtte for systemer basert på DEC Alpha , SPARC og MIPS- arkitekturer . Dette var den siste stabile versjonen utgitt i 1. x -serien av Linux-kjernen.

Versjon 2. x av Linux-kjernen har sett et stort antall endringer, spesielt i 2.6-serien og hvordan den er utviklet, vedlikeholdt og utgitt. Versjoner 2.0, 2.2 og 2.4 ble bygget ved å bruke det gamle utviklingssystemet der hver av kjernene var basert på den stabile versjonen av den forrige. Versjon 2.0 ble utgitt 9. juni 1996 [42] . Det var 41 utgivelser i denne serien. Hovedfunksjonen til 2.0-kjernen var støtte for SMP (det vil si støtte for flere prosessorer på et enkelt system) og støtte for flere typer prosessorer.

Versjon 2.2 (utgitt 26. januar 1999 [43] ) fjernet den globale spinlocken , ga bedre støtte for symmetrisk multiprosessering, og la til støtte for m68k- og PowerPC-arkitekturene i tillegg til å legge til nye filsystemer (inkludert skrivebeskyttet støtte for Microsoft NTFS -filsystemet ). [44] Utviklingen av 2.4. x endret seg litt. I denne serien ble det faktisk gjort nye funksjoner tilgjengelig gjennom hele utviklingen av selve serien. Versjon 2.4.0, utgitt 4. januar 2001, [45] inneholdt støtte for ISA Plug and play , USB og PC Card . [46] Det inkluderte også støtte for Hewlett - Packard PA-RISC-prosessorer . Under utviklingen av 2.4. x andre funksjoner ble lagt til, inkludert: Bluetooth -støtte , Logical Volume Manager (LVM) versjon 1, RAID -støtte , InterMezzo FS og ext3 FS .

Med ankomsten av 2.6. x av Linux-kjernen, endret nummereringssystemet slik at det kunne være 4 sifre i kjernens versjonsnummer, noe som ga det formatet 2.6. x . y (hvor. y er valgfritt). Nye funksjoner er nå lagt til mellom utgivelser x og utgivelser, y -utgivelser er vanligvis reservert for feilrettinger. Versjon 2.6.0 ble utgitt 18. desember 2003. [47] . Blant endringene som er gjort i denne serien er: integrering av µClinux i hovedkjernekildene, støtte for PAE , støtte for flere nye CPU -linjer , integrering av ALSA i hovedkjernekildene, støtte for et antall brukere opptil 2 32 (2 16 i tidligere versjoner), støtte for opptil 2 30 prosesser (2 15 i tidligere versjoner), betydelig vekst i antall enhetstyper og antall enheter for hver type, forbedret 64-bit prosessorstøtte, filsystemstøtte opptil 16 terabyte , forkjøp i kjernen , Native POSIX Thread Library-støtte, og Linux og SELinux kjernekildeintegrering, Infiniband - støtte og mye mer annet. Like viktig er det å legge til forskjellige filsystemer under de forskjellige 2.6-serieutgivelsene. x : FUSE , JFS , XFS , ext4 og andre [48] .

I juli 2011, for å feire 20-årsjubileet for Linux, bestemte Torvalds seg for å bytte til et 2-sifret nummereringssystem, og ga ut versjon 3.0 av kjernen. Den siste utgivelsen av 2.6-serien var 2.6.39.

12. mars 2015 lanseres den stabile utgivelsen av Linux 4.0.

Estimert utviklingskostnad

Kostnaden for å re-utvikle 2.6.0-versjonen av Linux-kjernen fra et proprietært perspektiv ble i 2004 estimert til 612 millioner dollar (€ 467 millioner) ved å bruke COCOMOs mann-månedsberegningsmodell . [49]

I 2006 anslo en EU - finansiert studie at utvikling av kjerne 2.6.8 eller høyere fra bunnen av (fra et proprietært perspektiv) ville koste 882 millioner euro. [50]

Juridiske aspekter

Varemerke

Linux er et registrert varemerke for Linus Torvalds i USA og andre land. Dette er resultatet av en hendelse der William Della Croce Jr., som ikke var involvert i utviklingen av Linux-prosjektet, registrerte navnet og deretter søkte om en Royalty for bruken av det. Flere Linux-tilhengere søkte juridisk råd og anla søksmål mot Della Croce, som i 1998 gikk med på å tildele merket til Torvalds.

Lisensvilkår

Opprinnelig ga Torvalds ut Linux med en lisens som forbød kommersiell utnyttelse. Imidlertid ga det snart plass til GNU General Public License (GPL) fra versjon 0.12. Denne lisensen tillater distribusjon og salg av modifiserte eller umodifiserte versjoner av Linux forutsatt at de er utgitt under samme lisens og at du også oppgir den tilsvarende kildekoden.

Torvalds beskrev å ta i bruk GPL som "det beste jeg noen gang har gjort." [51]

GPL versjon 3

For øyeblikket tar Linux i bruk versjon 2 av GPL -lisensen , uten alternativer (i motsetning til mange programmer utgitt under GPL-lisensen) som tillater bruk av en mer avansert versjon, og det er noen kontroverser om hvor enkelt senere versjoner kan brukes. 3 (og hvor ønskelig det er). [52] Torvalds selv spesifiserte under utgivelsen av versjon 2.4.0 at koden hans bare adopterer versjon 2 av lisensen. [53] Imidlertid sier vilkårene for GPL-lisensen at hvis ingen versjon er spesifisert, kan hvilken som helst brukes, og Alan Cox påpekte at bare noen få bidragsytere til Linux har spesifisert en bestemt versjon av GPL-lisensen. . [54] En blogger konkluderte med at ca. 40 % av Linux-koden er spesifikt lisensiert under "GPL2 eller høyere"-lisensen, og ytterligere ca. 10% under "GPL"-lisensen (med uspesifisert versjon), som, satt sammen, utgjør . omtrent halvparten av kjernen. I september 2006 indikerte en undersøkelse av 29 nøkkelkjerneutviklere at 28 av dem foretrakk GPLv2 fremfor GPLv3 da i utkasttilstand. Torvalds kommenterte, "Jeg tror et stort antall utenforstående trodde at jeg var den rare fordi jeg offentlig har uttalt at jeg ikke er en stor fan av GPLv3." [55]

Lastbare kjernemoduler og fastvare

Det er uklart om lastbare kjernemoduler (LKM-er) skal betraktes som avledede verk i henhold til lov om opphavsrett , og dermed faller innenfor vilkårene i GPL-lisensen. Torvalds hevdet at LKM-er, som bare bruker et begrenset undersett av "offentlige" kjernegrensesnitt, noen ganger ikke kan betraktes som avledede verk, og det er derfor mulig å ha noen drivere som kun er binære og andre LKM-er som ikke tar i bruk GPL-lisensen. Ikke alle som bidrar til utviklingen av Linux er imidlertid enige i denne tolkningen, og til og med Torvalds selv innrømmer at mange LKM-er tydeligvis er avledede verk, og skrev faktisk at "Kjernemoduler ER avledede verk 'som standard'".

På den annen side sa Torvalds også at "Et grått område er noe sånt som en driver som opprinnelig ble skrevet for et annet operativsystem (dvs. tydeligvis ikke et avledet verk av Linux opprinnelig). [...] DET er et område grått, og _det_ er det område der jeg personlig tror at noen moduler kanskje ikke anses som avledede verk bare fordi de ikke er designet for Linux og ikke er avhengige av noen spesiell Linux-atferd." [56] Spesielt proprietære grafikkdrivere er i sentrum av debatten. Til syvende og sist vil disse problemene sannsynligvis bare løses av en domstol.

Et lisensstridig punkt er Linuxs bruk av "binær" fastvare for å støtte visse maskinvareenheter. Richard Stallman hevder at denne programvaren gjør Linux til delvis uåpnet programvare, og at distribusjon av Linux også kan bryte med GPL-lisensen (som krever at all kildekode er til stede). [57]

Som svar på dette startet Free Software Foundation Latin America (FSFLA) et prosjekt, kalt Linux-libre , for å lage en helt gratis kjerne, uten proprietære moduler, som skal brukes i helt gratis distribusjoner, slik som Trisquel GNU / Linux [ 58 ] [59] .

SCO-søksmål

I mars 2003 anla SCO-gruppen et søksmål mot IBM og anklaget den for å ha krenket opphavsretten til Unix -kildekoden ved å sette inn deler av koden i Linux. I tillegg sendte SCO brev til flere selskaper som advarte dem om at bruk av Linux uten SCO-lisens kan være et brudd på opphavsrettsloven, og fortalte pressen at de ville saksøke individuelle Linux-brukere. IBM lovet da å forsvare sine Linux-kunder. Denne rettssaken genererte en rekke søksmål anlagt av SCO mot Novell , Daimler (delvis trukket tilbake i juli 2004), AutoZone , og gjengjeldelsessøksmål anlagt av Red Hat og andre mot SCO.

Tidlig i 2007 ga SCO spesifikke detaljer om det påståtte opphavsrettsbruddet. I motsetning til tidligere påstander om at SCO eier 1 million linjer med kode, spesifiserte de bare 326 linjer med kode, hvorav de fleste ikke var opphavsrettsbeskyttet. [60] I august 2007 avgjorde retten i Novell-saken til å begynne med at SCO ikke engang eide opphavsretten til Unix. [61]

Merknader

  1. ^ Linux : The 0.01 Release , på kerneltrap.com . Hentet 9. januar 2011 (arkivert fra originalen 10. juni 2011) .
  2. ^ Plattformer som støttes av Linux- kjernen , på kernel.org . Hentet 23. juli 2010 .
  3. ^ KOPIERING , på kernel.org . _ _ Hentet 24. mars 2016 .
  4. ^ Indeks: kernel / git / stable / linux-stable.git , på git.kernel.org ( arkivert fra originalen 8. desember 2016 ) .
  5. ^ Linus Torvalds , Hva vil du helst se i minix ? , på comp.os.minix , 26. august 1991. Hentet 25. desember 2008 .
  6. ^ Linus Torvalds , Gratis minix - lignende kjernekilder for 386-AT , comp.os.minix , 5. oktober 1991. Hentet 25. desember 2008 .
  7. ^ David W Summers, Troubles with Partitions , på alt.os.linux / comp.os.minix , 19. januar 1992. Hentet 24. desember 2008 ( arkivert 24. desember 2008) .
  8. ^ Alan B Clegg, det er her! , på comp.os.linux , 31. mars 1992. Hentet 24. desember 2008 ( arkivert 24. desember 2008) .
  9. ^ " Linux-kjernedata ."
  10. ^ " Linux-kjernedata ."
  11. ^ Andrew Stuart Tanenbaum, LINUX is obsolete , comp.os.minix , 29. januar 1992. Hentet 25. desember 2008 (arkivert fra originalen 25. desember 2008) .
  12. ^ Linus Torvalds, Hybrid kjerne, ikke NT , på realworldtech.com , 9. mai 2006. Hentet 6. januar 2007 .
  13. ^ Andy Tanenbaum, Tanenbaum-Torvalds Debatt: Del II , på cs.vu.nl , 12. mai 2006. Hentet 6. januar 2007 .
  14. ^ Linus Torvalds, Re: GPLv3 Position Statement , lkml.org , 25. september 2006.
  15. ^ README -fil , på git.kernel.org . _ Hentet 12. november 2010 (arkivert fra originalen 24. juli 2012) .
  16. ^ Marjorie Richardso, Intervju: Linus Torvalds , linuxjournal.com , Linux Journal, 1. november 1999. Hentet 20. august 2009 .
  17. ^ Sam Williams, kapittel 9: GNU General Public License , om Free as in Freedom , O'Reilly Media. Hentet 16. februar 2011 .
  18. ^ KOPIERING av fil , git.kernel.org . _ Hentet 16. februar 2011 (arkivert fra originalen 21. desember 2012) .
  19. ^ Nye utgivelser kan bli funnet på kernel.org
  20. ^ GNU Linux-libre, Gratis som i Freedo , Free Software Foundation Latin America . Hentet 21. januar 2015 .
    "Linux, kjernen utviklet og distribuert av Linus Torvalds et al, inneholder ikke-gratis programvare, dvs. programvare som ikke respekterer dine grunnleggende friheter, og den induserer deg til å installere ekstra ikke-gratis programvare som den ikke inneholder."
  21. ^ Operativsystem Familie / Linux | TOP500 superdatanettsteder , på top500.org , Topp 500 superdatanettsteder, november 2014.
  22. ^ Linux-kjerneoppdatering for Intel Compiler. Arkivert 22. juli 2011 på Internet Archive .
  23. ^ Linux-enhetsdrivere, 2. utgave: Kapittel 2: Bygge og kjøre moduler
  24. ^ Gmane Loom
  25. ^ Linux Kernel Documentation :: make: headers_install.txt
  26. ^ ldd /usr/bin/kwin viser 40 delte biblioteker (kwin 3.5.5a); ldd /usr/bin/gnome-panellister 68 (gnome-panel 2.14.3).
  27. ^ Daniel Barlow, The Linux ELF HOWTO , på ibiblio.org , 13. september 1995. Hentet 19. juli 2007 (arkivert fra originalen 12. oktober 2007) .
  28. ^ ( EN ,  IT ) TDAH_FUIT (TDAH_, kort sagt) The_Debian_Administrator's_Handbook_free_unofficial_Italian_translation , på Gratis uoffisiell italiensk oversettelse - FUIT på Github.com . Hentet 2. mai 2022 .
  29. ^ Linux: 2.6.16.y lever videre | KernelTrap
  30. ^ Linux: Vedlikeholde et 2.6.16.y-tre | KernelTrap
  31. ^ Linux-kjernearkivet
  32. ^ linux-next og patchbehandlingsprosess [LWN.net]
  33. ^ Linux Kernel Mailing List, Linux 2.6.12 , på marc.info , 17. juni 2005.
  34. ^ David Weinehall, [kunngjøring] Linux-kernel 2.0.40 aka The Moss-dekket skilpadde, på kerneltrap.org 8. februar 2004 (arkivert fra originalen 30. mai 2012) .
  35. ^ Marc-Christian Petersen, Linux 2.2.27-rc2 , på kerneltrap.org , 13. januar 2005 (arkivert fra originalen 30. mai 2012) .
  36. ^ Willy Tarreau, Linux 2.4.37-rc1 , marc.info , 7. september 2008.
  37. ^ Adrian Bunk, Linux 2.6.16.62 , linux-kernel , marc.info , 21. juli 2008.
  38. ^ For den fullstendige listen se Linux MAINTAINERS-filen .
  39. ^ Linux Kernel Archives - bind 1 Arkivert 11. mai 2005 på Archive.is . (Riley Williams)
  40. ^ Kernel 1.0 Kildekodeutgivelse , på kernel.org . Hentet 2008-10-27 .
  41. ^ Kernel 1.2 Kildekodeutgivelse , på kernel.org . Hentet 2008-10-27 .
  42. ^ Kernel 2.0 . _ x Kildekodeutgivelser , på kernel.org . Hentet 2008-10-27 .
  43. ^ Kjerne 2.2 . _ x Kildekodeutgivelser , på kernel.org . Hentet 2008-10-27 .
  44. ^ The Wonderful World of Linux 2.2 , på kniggit.net . Hentet 27. oktober 2008 (arkivert fra originalen 18. november 2005) .
  45. ^ Kjerne 2.4 . _ x Kildekodeutgivelser , på kernel.org . Hentet 2008-10-27 .
  46. ^ The Wonderful World of Linux 2.4 , på kniggit.net . Hentet 27. oktober 2008 (arkivert fra originalen 18. november 2005) .
  47. ^ Kjerne 2.6 . _ x . y Kildekodeutgivelser , på kernel.org . Hentet 2008-10-27 .
  48. ^ Flere detaljer om historien til 2.6-kjerneserien kan finnes på ChangeLog som ligger i 2.6-kjerneseriens kildekodeutgivelsesområde
  49. ^ David A. Wheeler, Linux Kernel 2.6: Det er verdt mer! , på dwheeler.com , 12. oktober 2004. Hentet 28. juni 2016 .
  50. ^ Økonomisk innvirkning av FLOSS på innovasjon og konkurranseevne til EUs IKT-sektor ( PDF ) , på ec.europa.eu , 20. november 2006 , 50-51 . Hentet 28. juni 2016 (Arkiveret fra originalen 6. juli 2015) .
  51. ^ Hiroo Yamagata, The Pragmatist of Free Software , på hotwired.goo.ne.jp , HotWired, 1997. Hentet 21. februar 2007 (arkivert fra originalen 10. februar 2007) .
  52. ^ Jonathan Corbet, GPLv3 and the kernel , på lwn.net , LWN.net , 31. januar 2006. Hentet 21. februar 2007 .
  53. ^ Linus Torvalds, Linux-2.4.0-test8 , på Linux-kjernens postlistearkiv , uwsg.iu.edu , Unix Systems Support Group of Indiana University , 8. september 2000. Hentet 21. februar 2007 (arkivert fra den opprinnelige url -en) 27. august 2006) .
  54. ^ Alan Cox, Re: GPL V3 and Linux , på Linux-kernel-postlistearkivet , lwn.net , 20. januar 2006. Hentet 21. februar 2007 .
  55. ^ Stephen Shankland, Top Linux-programmerere pan GPL 3 , på news.com.com , News.com , 25. september 2006. Hentet 21. februar 2007 .
  56. ^ Re: Linux GPL og binær modul unntaksklausul? Arkivert 27. september 2006 på Internet Archive .
  57. ^ Richard Stallman, Linux, GNU, and freedom , på gnu.org , Free Software Foundation , 11. oktober 2006. Hentet 21. februar 2007 .
  58. ^ Linux - libre prosjekt _, på linux-libre.fsfla.org , https://www.fsfla.org/ . Hentet 6. april 2010 .
  59. ^ Trisquel GNU / Linux - libre , på trisquel.info . Hentet 6. april 2010 .
  60. ^ Rapport fra tinghuset 7. mars , på groklaw.net . Hentet 1. desember 2008 (arkivert fra originalen 7. august 2011) . Groklaw-artikkel
  61. ^ Domstolsregler: Novell eier opphavsretten til UNIX og UnixWaregroklaw.net . Groklaw-artikkel

Bibliografi

Relaterte elementer

Andre prosjekter

Eksterne lenker