linux kjerne | |||
---|---|---|---|
En del av Linux og Android | |||
Linux 3.0.0-kjernen er i ferd med å starte opp | |||
Generell informasjon | |||
programtype | system kjerne | ||
utvikler | Linus Torvalds , og fellesskapet av bidragsytere rundt om i verden. | ||
Utviklingsmodell | Iterativ utvikling , gjennom åpen kildekode og fellesskapssamarbeid. [ 1 ] | ||
Første utgivelse | 25. august 1991 (31 år, 1 måned og 22 dager) [ 2 ] | ||
sårbarheter |
flere
| ||
Tillatelse | GPL v2 , bortsett fra ikke-frie BLOB-er | ||
Faktisk tilstand | Utvikler | ||
Språk | Engelsk | ||
Teknisk informasjon | |||
Planlagt inn | C , montør [ 3 ] | ||
Cellekjernen | unix-lignende | ||
kjernetype | Monolitisk | ||
Støttede plattformer | DEC Alpha , ARM , AVR32 , Blackfin , ETRAX CRIS , FR-V , H8/300 , Itanium , M32R , m68k , Microblaze , MIPS , MN103 , PA - RISC , PowerPC , s390 , S+core , TILE , SPAR4 , TILE Unicore32 , x86 , Xtensa | ||
Versjoner | |||
Siste stabile versjon | 5.18.12 ( info ) (15. juli 2022 (3 måneder og 1 dag)) | ||
Siste versjon i tester | 5.19-rc6 ( info ) (10. juli 2022 (3 måneder og 6 dager)) | ||
Relaterte innlegg | |||
| |||
Lenker | |||
Linux Kernel offisielle nettsted kodelager feilsporing | |||
Linux er for det meste en gratis kjerne som ligner på Unix -kjernen . [ 4 ] Det er et av hovedeksemplene på gratis programvare med åpen kildekode . Den er lisensiert under GPL v2 bortsett fra det faktum at den har binære blobs [ 5 ] ikke-frie [ 6 ] og det meste av programvaren som er inkludert i pakken som distribueres på nettstedet er gratis programvare. Den er utviklet av samarbeidspartnere fra hele verden. Dag-til-dag utvikling foregår i Linux Kernel Mailing List Archive .
Linux-kjernen ble unnfanget av den daværende finske informatikkstudenten Linus Torvalds i 1991 . [ 7 ] Linux fikk raskt utviklere og brukere til å ta i bruk kode fra andre gratis programvareprosjekter for bruk med det nye kjernesystemet. [ 8 ] I dag bidrar tusenvis av programmerere fra hele verden til utviklingen. [ 9 ]
Linux er multiprogrammering , har virtuelt minne , minneadministrasjon, nettverkstilkobling og tillater delte biblioteker . Linux er på tvers av plattformer og er portabel til enhver arkitektur så lenge den har en kompatibel versjon av GCC . [ 10 ]
Linux Readme-filen sier at det er en klone av Unix-operativsystemet. [ 10 ] Imidlertid er Linux en kjerne som ligner på kjernen i et Unix-operativsystem. Faktisk ble den opprinnelig utgitt som en Minix -lignende kjerne , [ 4 ] som i seg selv var Unix-lignende, men med en mikrokjerne i stedet for en monolitisk oppfatning.
En mikrokjerne inneholder minimal funksjonalitet sammenlignet med en tradisjonell monolitisk kjerne .
Det er viktig å innse at disse programmene ikke er en del av operativsystemet (...). Operativsystemet er den delen av programvaren som kjører i kjernemodus (...). En trend i moderne operativsystemer er å ta denne ideen om å flytte kode opp i høyere lag enda lenger og fjerne så mye som mulig fra operativsystemet, og etterlate en minimal kjerne . Det er viktig å innse at disse programmene ikke er en del av operativsystemet (...). Operativsystemet er den delen av programvaren som kjører i kjernemodus (...). En trend i moderne operativsystemer er å ta denne ideen om å flytte kode til flere lag og fjerne så mye av operativsystemet som mulig, og etterlate en minimal kjerne . Operativsystemer Design & Implementering, Tanenbaum og Woodhull. (Refererer til et mikrokjernesystem basert på klient-tjener-modellen. Forfatteren indikerer gjentatte ganger at det er rimelig å hevde at funksjoner som tilfeldigvis kjører i brukerområdet forblir en del av operativsystemet.)Darwin og GNU Hurd har kjerner som er en versjon av Mach . Minix , operativsystemet som Linux opprinnelig var basert på, er også mikrokjerne. Alle har til felles overføring av deler av funksjonaliteten i privilegert plass til brukerplass.
Den delen av et operativsystem som kjører uten privilegier eller i brukerrom er C-språkbiblioteket , som gir kjøretidsmiljøet , og en serie programmer eller verktøy som tillater administrasjon og bruk av kjernen og tilbyr tjenester. programmene i brukerrommet, og danner operativsystemet sammen med kjernen.
I et monolitisk kjernesystem som Linux, består C-språkbiblioteket av en abstraksjon av tilgang til kjernen. Noen biblioteker som GNU-biblioteket gir ekstra funksjonalitet for å gjøre livet enklere for programmereren og brukeren eller for å forbedre ytelsen til programmer.
På et mikrokjernesystem kan C-språkbiblioteket administrere filsystemer eller drivere i tillegg til tilgang til systemkjernen.
Linux-operativsystemer kalles generelt Linux-distribusjoner. Disse består av en samling av programvare som inkluderer Linux-kjernen og resten av programmene som er nødvendige for å fullføre et operativsystem. [ 11 ] De vanligste distribusjonene er faktisk GNU/Linux-distribusjoner eller Android-distribusjoner. At de deler en kjerne betyr ikke at de er kompatible med hverandre. En applikasjon laget for GNU/Linux er ikke kompatibel med Android uten det ekstra arbeidet som kreves for å gjøre det på tvers av plattformer.
GNU/Linux-distribusjoner bruker Linux som kjerne sammen med GNU Projects kjøretidsmiljø og en rekke GNU Project-programmer og -verktøy som sikrer et minimalt funksjonelt system. De fleste GNU/Linux-distribusjoner inkluderer tilleggsprogramvare som grafiske miljøer eller nettlesere samt de nødvendige programmene for å tillate dem å installere seg selv. [ 11 ] Installasjonsprogrammer leveres av utvikleren av distribusjonen. De er kjent som pakkeforvaltere . Skaperne av en distribusjon kan også være ansvarlig for å legge til innledende konfigurasjoner av de forskjellige programmene som er inkludert i distribusjonen.
Android - distribusjoner inkluderer Linux-kjernen sammen med kjøretidsmiljøet og verktøy fra Googles AOSP -prosjekt . Hver telefonprodusent har sin egen distribusjon av Android som den modifiserer, fjerner eller legger til ekstra programmer: grafiske grensesnitt , applikasjonsbutikker og e -postklienter er noen eksempler på programmer som kan legges til, endres eller fjernes. I tillegg til telefonprodusentdistribusjoner, er det uavhengige utviklergrupper som også utvikler Android-distribusjoner. LineageOS (tidligere CyanogenMod), Replicant og Pixel Experience er tre eksempler på frittstående Android-distribusjoner også kalt tilpassede "ROM-er" eller uoffisielle fastvare.
I april 1991 [ 2 ] begynte 21 år gamle Linus Torvalds arbeidet med enkle ideer for en operativsystemkjerne. Han begynte med å forsøke å skaffe en gratis Unix-lignende operativsystemkjerne som ville fungere med Intel 80386 mikroprosessorer . For å gjøre dette tok han Minix-systemet (en Unix-klon) som base og laget en kompatibel monolitisk kjerne som i utgangspunktet krevde Minix - programvare for å kjøre . [ 4 ] Den 26. august 1991 skrev Torvalds på comp.os.minix-nyhetsgruppen : [ 12 ]
"Jeg lager et OS (gratis, bare en hobby, vil ikke være noe stort eller profesjonelt som GNU ) for AT 386(486)-kloner. Jeg har brukt det siden april og det begynner å bli klart. vil gjerne høre tankene dine om ting du liker eller ikke liker i minix, siden operativsystemet mitt ligner noe.[...] Jeg har for øyeblikket portert bash(1.08) og gcc(1.40), og ting ser ut til å fungere. Dette betyr at jeg vil ha noe nyttig innen noen måneder..."
Etter den meldingen var det mange som hjalp til med koden. I september 1991 ble Linux versjon 0.01 utgitt. Den hadde 10 239 linjer med kode. I oktober samme år (1991) kom Linux versjon 0.02 ut; så i desember ble versjon 0.11(1991) utgitt. Denne versjonen var den første som var selvvert . Det vil si at Linux 0.11 kunne kompileres på en datamaskin som kjører Linux 0.11, mens tidligere versjoner av Linux ble kompilert ved hjelp av andre operativsystemer. Da han ga ut neste versjon, adopterte Torvalds GPL som sitt eget utkast til lisens, som ikke tillater omdistribusjon under noen annen lisens enn GPL. Før denne endringen ble belastning for kildekodedistribusjon forhindret.
En nyhetsgruppe kalt alt.os.linux ble startet og 19. januar 1992 ble det første innlegget lagt ut til den gruppen . 31. mars ble alt.os.linux comp.os.linux . XFree86 , en implementering av X Window System , ble portert til Linux, kjerneversjon 0.95 var den første som kunne kjøre den. Dette store versjonshoppet (fra 0,1x til 0,9x) var på grunn av følelsen av at en ferdig 1.0-versjon ikke så ut til å være langt unna. Disse prognosene viste seg imidlertid å være litt optimistiske: fra 1993 til begynnelsen av 1994 ble 15 forskjellige versjoner av 0.99 utviklet (opp til versjon 0.99r15).
14. mars 1994 ble Linux 1.0.0 utgitt, bestående av 176 250 linjer med kode. I mars 1995 ble Linux 1.2.0 utgitt, som allerede besto av 310 950 linjer med kode.
Kildekoden er tilgjengelig for nedlasting på den offisielle nettsiden: http://www.kernel.org
Linux tilbyr drivere , planleggere , virtuelle minneadministratorer , filsystemer og nettverksprotokoller som IPv4 og IPv6. [ 10 ] Den er også tilgjengelig for flere maskinvarearkitekturer og er designet for å lette portabiliteten til nye arkitekturer.
For øyeblikket er Linux en hybrid monolittisk kjerne . Enhetsdrivere og kjerneutvidelser kjører vanligvis i et privilegert område kjent som ring 0 , med ubegrenset tilgang til maskinvare , selv om noen kjører i brukerrom . I motsetning til tradisjonelle monolittiske kjerner, kan enhetsdrivere og kjerneutvidelser enkelt lastes og losses som moduler , mens systemet fortsetter å kjøre uten avbrudd. I motsetning til tradisjonelle monolittiske kjerner, kan kontroller også forhåndsdumpes (stoppes et øyeblikk for viktigere aktiviteter) under visse forhold. Denne evnen ble lagt til for å håndtere maskinvareavbrudd på riktig måte og for å forbedre støtte for symmetrisk multiprosessering .
Det faktum at Linux ikke ble utviklet etter utformingen av en mikrokjerne (et design som på den tiden ble ansett som det mest passende for en kjerne av mange datateoretikere), var gjenstand for en berømt og heftig krangel mellom Linus Torvalds og Andrew S. Tanenbaum . [ 18 ] [ 19 ]
Linux-kjernen kan kjøres på mange virtuelle maskinarkitekturer, enten som operativsystemvert eller som klient. Den virtuelle maskinen emulerer vanligvis Intel x86-familien av prosessorer, selv om i noen tilfeller også PowerPC- eller ARM -prosessorer emuleres .
For å verifisere korrekt drift av kjernen, gir den muligheten til å kompilere mot den fiktive arkitekturen under «User Mode Linux» (UML). Å kompilere Linux for UML får kjernen til å kjøre som bare en annen brukerprosess som kjører på Linux-kjernen til vertssystemet. Det kan også tjene som virtualisering eller for å isolere prosesser, blant annet.
Linux 1.0 støttet kun binærformatet a.out . Den neste stabile serien (Linux 1.2) la til bruken av ELF -formatet , som forenkler opprettelsen av delte biblioteker (brukes mye av nåværende skrivebordsmiljøer som GNOME og KDE ). ELF er formatet brukt av GCC som standard siden rundt versjon 2.6.0. A.out-formatet brukes foreløpig ikke, noe som gjør ELF til det binære formatet som brukes av Linux i dag.
Linux har muligheten til å tillate brukeren å legge til håndtering av andre binære formater. Binfmt_misc lar også kjøre programmet knyttet til en datafil.
I Linux er det et filsystem som laster og inneholder alle kataloger , nettverk , programmer , partisjoner , enheter , etc. at systemet vet hvordan det skal gjenkjenne, eller i det minste identifisere. Dette systemet med filer og kataloger er basert på tegnet ( / ); det samme tegnet brukes også til å avgrense kataloger, for eksempel: " /home/user/image.jpg ". Katalogen spesifisert av en bane som kun består av dette tegnet inneholder hele hierarkiet av kataloger som utgjør hele systemet. Denne katalogen kalles ofte rotkatalogen. I Linux tildeles ikke disketter en bokstav som i Windows (f.eks. "C:"), men heller en katalog fra rotkataloghierarkiet ( / ), for eksempel: " /media/floppy " . Det er vanlig praksis i Linux-filsystemet å bruke forskjellige underhierarkier av kataloger, avhengig av de forskjellige funksjonene og bruksstilene til filene. [ 20 ] Disse katalogene kan klassifiseres i:
På Linux er panikk en nesten alltid uoverkommelig systemfeil oppdaget av kjernen i motsetning til lignende feil oppdaget i brukerromskode. Det er mulig for kjernekode å indikere disse forholdene ved å kalle panikkfunksjonen som ligger i sys/systm.h header-filen. Imidlertid er de fleste varsler et resultat av unntak i kjernekode som prosessoren ikke kan håndtere, for eksempel ugyldige minneadressereferanser. Vanligvis er dette en indikator på en feil et sted i varslingskjeden. De kan også indikere en maskinvarefeil som en RAM-feil eller aritmetiske funksjonsfeil i prosessoren, eller en programvarefeil. I mange tilfeller er det mulig å starte eller slå av kjernen på riktig måte ved å bruke en tastekombinasjon som ALT+SysRq+REISUB .
Linux er skrevet i programmeringsspråket C , i varianten som brukes av GCC -kompilatoren (som har introdusert en rekke utvidelser og endringer i C-standarden), sammen med små deler av kode skrevet på assemblerspråk . På grunn av bruken av utvidelser til språket, var GCC i lang tid den eneste kompilatoren som var i stand til å bygge Linux på riktig måte. Imidlertid hevdet Intel å ha modifisert sin C-kompilator på en måte som ville tillate den å kompilere riktig.
Mange andre språk brukes også i en eller annen form, hovedsakelig i forbindelse med kjernebyggingsprosessen (metoden som oppstartbare bilder lages fra kildekoden). Disse inkluderer Perl , Python og forskjellige shell-skriptspråk. Noen drivere kan også skrives på C++, Fortran eller andre språk, men dette anbefales ikke. Linux-byggesystemet støtter offisielt bare GCC som kjerne- og driverkompilatoren.
Selv om Linus Torvalds opprinnelig ikke så for seg Linux som en bærbar kjerne , har den utviklet seg i den retningen. Linux er nå faktisk en av de mest porterte kjernene, som kjører på et bredt utvalg av systemer, fra en iPAQ (en håndholdt) til en zSeries (en massiv stormaskin ). Linux har blitt hovedoperativsystemet på IBMs Blue Gene - superdatamaskiner , noe som har redusert kostnadene og kraftig økt ytelsen. [ 21 ]
Det er imidlertid viktig å merke seg at Torvalds innsats også var rettet mot en annen form for portabilitet. Fra hans synspunkt er portabilitet muligheten til enkelt å kompilere applikasjoner fra de mest forskjellige kildene på ett system; dermed skyldtes den opprinnelige populariteten til Linux delvis den lille innsatsen som kreves for å få alles favorittapplikasjoner til å kjøre, enten de er fri programvare eller åpen kildekode .
Hovedarkitekturene som støttes av Linux er DEC Alpha , ARM , AVR32 , Blackfin , ETRAX CRIS , FR -V , H8 , IA64 , M32R , m68k , MicroBlaze , MIPS , MN10300 , PA- RISC , Power90PC , System / Super3 , x86 , x86 64 og Xtensa [ 22 ]
Linux har en fiktiv arkitektur kalt " User Mode Linux " (UML). Denne arkitekturen lar Linux kjøre som en prosess til i brukerrommet. Prosesser utført under UML har visjonen om sin egen maskin tilgjengelig for dem.
Den har et grensesnitt for å lage sikkerhetsmoduler kalt Linux Security Module . Med dette grensesnittet kan moduler opprettes for å bruke obligatorisk tilgangskontroll ( MAC , Mandatory Access Control ). [ 23 ]
Utover å ha utviklet sin egen kode og integrert endringer gjort av andre programmer, fortsetter Linus Torvalds å gi ut nye versjoner av Linux-kjernen. Disse kalles "vanilje"-kjerner, noe som betyr at de ikke har blitt modifisert av noen.
Den originale Linux-kjerneversjonen besto av fire tall. La oss for eksempel anta at versjonsnummeret er sammensatt av denne formen: ABC[.D] (f.eks.: 2.2.1, 2.4.13 eller 2.6.12.3).
Noen ganger etter versjonene kan det også være noen bokstaver som "rc1" eller "mm2". "rc" står for utgivelseskandidat og indikerer en uoffisiell utgivelse. Andre bokstaver refererer vanligvis (men ikke alltid) til personens initialer. Dette indikerer en gaffel i utviklingen av kjernen av den personen, f.eks. ck refererer til Con Kolivas , ac til Alan Cox , mens mm refererer til Andrew Morton .
Utviklingsmodellen for Linux 2.6 var en betydelig endring fra Linux 2.5 utviklingsmodellen. Tidligere var det en stabil gren (2.4) hvor det var gjort mindre og sikre endringer, og en ustabil gren (2.5) hvor store endringer var tillatt. Dette betydde at brukere alltid hadde en feilsikker, toppmoderne, nesten feilfri 2.4-versjon, selv om de måtte vente på funksjonene til 2.5-grenen. 2.5-grenen ble til slutt erklært stabil og omdøpt til 2.6. Men i stedet for å åpne en ustabil 2.7-gren, valgte kjerneutviklerne å fortsette å legge til endringer i den "stabile" 2.6-grenen. På denne måten var det ikke lenger en gammel, men stabil gren å vedlikeholde og nye funksjoner kunne gjøres tilgjengelig raskt og ytterligere testing kunne gjøres med den nyeste koden.
Den nye 2.6-utviklingsmodellen betydde imidlertid også at det ikke var noen stabil gren for de som håpet på sikkerhet og feilrettinger uten å trenge de nyeste funksjonene. Rettelsene var bare i den nyeste versjonen, så hvis en bruker ville ha en versjon med alle kjente feilrettinger, ville den også ha de nyeste funksjonene, som ikke var godt testet. En delvis løsning på dette var den nevnte versjonen med fire utgaver (y i 2.6.xy), som betydde punktutgivelser laget av det stabile teamet ( Greg Kroah-Hartman , Chris Wright og kanskje andre). Stallteamet ga kun ut oppdateringer for den siste kjernen, men dette løste ikke problemet med en manglende stabil kjerneserie . Linux-distributører, som Red Hat og Debian , vedlikeholder kjernene som følger med deres utgivelser, så en løsning for noen mennesker er å følge en distribusjons kjerne.
Som svar på mangelen på en stabil kjerne og folk til å koordinere feilrettingssamlingen, annonserte Adrian Bunk i desember 2005 at han ville fortsette å gi ut 2.6.16-kjerner selv om stallteamet ga ut 2.6.17. Han tenkte også å inkludere driveroppdateringer, noe som gjør vedlikehold for 2.6.16-serien omtrent som de gamle vedlikeholdsreglene for stabile serier som 2.4. Kernel 2.6.16 vil snart bli erstattet av 2.6.27 som den stabile kjernen under vedlikehold i flere år.
Gitt den nye utviklingsmodellen, som holdt 2.6-subversjonen fast, etter Linux Kernel Summit det året, bestemte Linus Torvalds seg for å endre nummereringssystemet. De to første tallene er erstattet av en enkelt figur, slik at Linux 2.6.39 ble fulgt av Linux 3.0 [ 24 ]
Den første versjonen av Linux-kjernen (0.01) ble utgitt 17. september 1991. Etter mer enn 30 år med utvikling tilsvarer den siste stabile versjonen for øyeblikket 5.16, utgitt 9. februar 2022 [ 25 ] .
Stilling | 2012 [ 26 ] | 2013 [ 27 ] | 2017 [ 28 ] |
---|---|---|---|
1 | Rød hatt | Intel | |
to | IBM | linaro | Rød hatt |
3 | Texas Instruments | SUSE | linaro |
4 | broadcom | IBM | Ukjent |
5 | nokia | Samsung | IBM |
6 | Samsung | Rød hatt | Konsulenter |
7 | Oracle | Konsulenter for Vision Gravering Systems | Samsung |
8 | Wolfson Microelectronics | SUSE |
En Linux-distribusjon er et sett med programvare ledsaget av Linux-kjernen som er fokusert på å møte behovene til en bestemt gruppe brukere. Dermed er det distribusjoner for hjem, bedrifter og servere.
Distribusjoner settes sammen av enkeltpersoner, selskaper eller andre organer. Hver distribusjon kan inneholde et hvilket som helst antall tilleggsprogramvare , inkludert programvare som forenkler systeminstallasjonen. Basen til programvaren som følger med hver distribusjon inkluderer Linux-kjernen, i de fleste tilfeller GNU -verktøyene, som mange andre programvarepakker vanligvis legges til .
Verktøyene som vanligvis er inkludert i distribusjonen av dette operativsystemet er hentet fra forskjellige kilder, og spesielt fra gratis programvareprosjekter , slik som: GNU , GNOME (laget av GNU) og KDE . Også inkludert er verktøy fra andre prosjekter som Mozilla , Perl , Ruby , Python , PostgreSQL , MySQL , Xorg , som nesten alle er GPL-lisensiert eller kompatible med det ( LGPL , MPL ).
X.Org Server -plattformen , basert på den gamle XFree86 , brukes vanligvis til å støtte det grafiske grensesnittet .
Linux er stort sett gratis programvare distribuert fra web- og Git -depotet . Imidlertid er det deler av proprietær kode som brukes til å få enhetene til en datamaskin til å fungere. Av denne grunn kunne ikke Linux integreres som en GNU-pakke. Free Software Foundation of Latin America bestemte seg for å lage og vedlikeholde en helt gratis gaffel kalt Linux-libre. Denne versjonen av Linux inkluderer ikke plugins med lukket kildekode eller skjulte funksjoner som bygger inn binærfiler i koden deres. Inkluderingen av disse binære filene i Linux-koden bryter ikke med GPL versjon 2-lisensen som brukes av Linux. Denne lisensen har blitt oppdatert for å unngå denne typen proprietær bruk av lisensen, på samme måte som det som skjer med TiVo -enheter . Den nye lisensen er GPL versjon 3. [ 29 ]
Opprinnelig distribuerte Torvalds Linux under vilkårene i en lisens som forbød kommersiell utnyttelse. Men denne lisensen ble erstattet, kort tid etter, av GNU GPL (eksklusivt versjon 2). Vilkårene i sistnevnte lisens tillater distribusjon og salg av kopier eller til og med modifikasjoner, men krever at alle kopier av originalverket og forfatterskap avledet fra originalen publiseres under de samme vilkårene, og at kildekoden alltid kan skaffes av samme medium som det lisensierte programmet.
Torvalds har referert til å lisensiere Linux under GPL som " det beste jeg noensinne har gjort" . [ 30 ]
Imidlertid inneholder den offisielle versjonen av Linux-kjernen lukket kildekode - fastvare, [ 31 ] derfor publiserer og vedlikeholder FSFLA - sponset Linux-Libre Project modifiserte versjoner av Linux-kjernen som har fått all fastvaren fjernet.ikke-fri programvare.
Per i dag er Linux et registrert varemerke for Linus Torvalds i USA . [ 32 ]
Inntil 1994 var det ingen som registrerte Linux-varemerket i USA. Den 15. august 1994, da William R. Della Croce, Jr. registrerte Linux- varemerket , ba han Linux-distributører om å betale royalties. I 1996 saksøkte Torvalds og noen berørte organisasjoner Della Croce, og i 1997 ble saken avsluttet og merket ble tildelt Torvalds. [ 33 ]
Siden den gang har Linux Mark Institute forvaltet merket. I 2005 sendte LMI noen brev til Linux-distribusjonsselskaper med krav om betaling av et gebyr for kommersiell bruk av navnet. Dette er slik fordi amerikansk lov krever at eieren av et merke forsvarer det, så det måtte bes om penger for å bruke Linux-merket, noen selskaper har overholdt dette kravet helt frivillig, vel vitende om at nevnte penger skulle brukes til veldedighet eller for å forsvare Linux-merket. [ 34 ]
Linux-kjernen har ofte blitt kritisert for mangelen på drivere for visse stasjonære datamaskiner . Imidlertid har den progressive økningen i bruken av Linux på skrivebordet forbedret maskinvarestøtte fra tredjeparter eller av produsentene selv, noe som har ført til at kompatibilitetsproblemer har blitt redusert de siste årene.
Selskaper som IBM , Intel Corporation , Hewlett-Packard , Dell eller MIPS Technologies [ 35 ] har programmerere i Linux-kjerneutviklingsteamet som er ansvarlige for å vedlikeholde driverne for maskinvaren de produserer. Til denne gruppen programmerere kommer også de som leverer store distributører av Linux-løsninger som Novell eller Red Hat .
Andy Tanenbaum skrev 29. januar 1992:
...Linux er et monolittisk system. Dette tar et stort skritt tilbake til 1970-tallet. Det er som å ta et eksisterende program skrevet i C og skrive det om i BASIC. For meg er det egentlig en dårlig idé å skrive et monolittisk system i 1991. [ 36 ]