Linux

Unix-lignende operativsystem
Denne artikkelen handler om en familie komplette operativsystemer. Se Linux-kjernen for en artikkel om kjernen i operativsystemene og GNU for GNU-prosjektet.

Linux er navnet på en familie Unix-lignende operativsystemer, som i utgangspunktet er fri og åpen programvare, selv om det finnes flere eksempler på proprietære og kommersielle avarter. Navnet Linux er egentlig navnet på Linuxkjernen, som er en operativsystemkjerne, men i dagligtalen brukes navnet ofte om hele operativsystemet. Linuxkjernen er utviklet under GNU General Public License versjon 2, men er ikke en offisiell del av GNU-prosjektet. GNU-prosjektet utvikler sine egne operativsystemkjerner i form av GNU Mach og GNU Hurd; begge er mikrokjerner som har sin bakgrunn i mikrokjernen Mach som ble utviklet ved Carnegie Mellon University fra 1985 til 1994. Linuxkjernen skiller seg fra disse, ved at den er en monolittisk kjerne.

Linux
Skaper(e)Linus Torvalds, Richard M. Stallman
PlattformDEC Alpha, x86-arkitektur, x86_64, ARM, PowerPC, RISC-V, MIPS
Skrevet iC, assembler, Rust
Bygger påLinux
Nettstedhttps://kernel.org/

Linuxkjernen henger sammen med GNU-prosjektet ved at den blir utviklet ved hjelp av programmeringsverktøy fra dette, deriblant GNU C compiler og GNU assembler. GNU/Linux er således navnet på kombinasjonen mellom operativsystemkjernen og programmeringsverktøyene GNU Binutils. Det blir som regel lansert i form av Linuxdistribusjoner som også inneholder programmer fra andre prosjekter enn GNU og Linux: Vindussystemet X blir for eksempel utviklet av X.Org Foundation; Wayland blir utviklet under MIT-lisensen; GNOME er GNU-prosjektets skrivebordsmiljø, men andre alternative miljøer som KDE utvikles av andre; LibreOffice blir utviklet av The Document Foundation, etc.

Systemet utgis som oftest gjennom distribusjoner, som inneholder mye programvare fra andre prosjekter enn GNU og Linux, for eksempel Ubuntu. GNU/Linux utgjør i dag programvaresiden i den grunnleggende infrastrukturen, «backbone» («ryggraden»), i det globale kommunikasjonssystemet.

Historie

GNU (1983)

Utdypende artikkel: GNU

Den 27. september 1983 annonserte Richard Stallman det ambisiøse GNU-prosjektet, med mål om å skape et fullstendig fritt operativsystem kompatibelt med Unix.[1] Han hadde sagt opp jobben sin ved Massachusetts Institute of Technology og innledet GNU-prosjektet sammen med andre programmerere som delte hans visjon. De ville ikke umiddelbart skape et operativsystem uten å ha annen nødvendig programvare slik at det skulle bli mulig å anvende en datamaskin helt uten proprietær programvare.[2]

I løpet av 1980-årene skapte prosjektet tekstredigereren Emacs, kompilatoren GCC (som den gangen kun kompilerte C) og et stort antall andre programmer. Imidlertid hadde GNU ennå ikke utviklet kjernen i systemet, GNU Hurd. Da Linux dukket opp på begynnelsen av 90-tallet skulle det fortsatt drøye over et decennium innen det første programmet kunne kjøres ved hjelp av Hurd.[3]

Linus Torvalds, skaper av Linux-kjernen.

Linux (1990)

Utdypende artikkel: Linux-kjernen

I 1990 studerte Linus Torvalds informatikk ved universitetet i Helsingfors i Finland. Torvalds brukte opprinnelig Minix på datamaskinen sin, et enkelt operativsystem utviklet av Andrew Tanenbaum til undervisningsformål. For å sørge for at Minix forble et enkelt system egnet til undervisning, ville ikke Tanenbaum legge til utvidelser til Minix. Dette var bakgrunnen for at Linus startet utviklingen av Linux.

I 1991 skapte Torvalds en Unix-liknende kjerne for PC-datamaskiner som han slapp fri på Internett.[4] Fra begynnelsen var den ikke ment for allmenn bruk, da hovedmålet til Torvalds var å lære om sammensetningen i operativsystemer.[5] Linux-kjernen, som skulle bli oppkalt etter sin skaper, ble den puslebiten som hadde vært savnet i GNUs operativsystem. Kombinasjonen ble raskt populær, men Linux har på tross av det aldri blitt inkludert i GNU-prosjektet, men blitt utviklet separat.

Etter en rekke utgivelser og koordinering via nyhetsgrupper ble versjon 1.0 sluppet den 14. mars 1994. Neste versjon ble nummer 1.2, som ble sluppet i mars 1995. Siden da har odde-minor-versjoner vært ustabile utviklingsversjoner, mens partalls-minor-versjoner har vært stabile offisielle utgaver.[6]

Etter dette gjorde kjernenummereringen et stort hopp på grunn av endringer og tillegg. Linux 2.0 var langt bedre på nettverk, og den hadde også støtte for bruk av flere prosessorer, Symmetric Multi Processing. Også andre deler av kjernen ble optimalisert med tanke på ytelse.

Nåtid

Selv om Torvalds blir sett på som Linuxkjernens far og skaper, er mesteparten av koden et resultat av en åpen kildekodedugnad med flere tusen utviklere som gjennom lang tid har bidratt til å skape dagens system. Sentrale enkeltpersoner, som Torvalds, har i dag først og fremst et overordnet ansvar i tillegg til å bidra med kode der det er nødvendig. Undersøkelser viser at omtrent to tredjedeler av kildekoden i Linux-kjernen skrives av folk med tilknytning til IT-industrien, mens resten skrives av frivillige[7]

Linux ble lenge utviklet av utvalgte individer og entusiaster, men nå deltar også et antall større bedrifter i utviklingen, enten direkte gjennom sine egne ansatte, eller gjennom finansiering eller bidrag av ulike typer. IBM, Google, Intel, Sun, Silicon Graphics, Hewlett-Packard og Novell er noen av bedriftene som satser på Linux, og som ser det som en framtidens mulighet. Motivene varierer, men ofte nevnes fleksibiliteten, muligheten til å påvirke, lave kostnader og det å unnvike Microsofts agenda.

Fra begynnelsen var det kun tenkt at Linux skulle kjøres på Intels 80386-prosessorer og dens kloner og etterfølgere, men etterhvert har både kjernen og systemet blitt portert til nesten alle tenkelige og tilgjengelige system, i visse tilfeller bare «for å se om det går», etter den typiske hacker-mentaliteten. Blant annet finnes Linux på Playstation[8], iPod[9], Xbox[10] Amiga[11] og Nintendo DS[12] for å nevne noen av de mer uvanlige eksemplene. I dag anvendes operativsystemet også i mobiltelefoner og håndholdte enheter, ettersom selve kjernen kan holdes veldig liten og ressurs-nøysom.

I dag er det mange populære Linux-baserte operativsystemer som brukes på datamaskiner. Eksempler på dette kan være Ubuntu, som er utviklet for å være lett å bruke for folk flest, og et alternativ til Mac OS og Windows. Ubuntu kommer i mange utgaver, kalt derivater, og blant de mer kjente Ubuntu-derivatene er Linux Mint og Elementary OS.

Navnestrid

Operativsystemet kalles ofte kort og godt «Linux», selv om «GNU/Linux» forsvares av dem som vil understreke opphavet i GNU-prosjektet. Richard Stallman og Free Software Foundation insisterer på det sistnevnte begrepet, og har et syn på fri programvare som skiller seg noe fra den mer pragmatiske holdningen hos Linus Torvalds og andre.[13]

Arbeidet til GNU og Free Software Foundation med å promotere fri programvare har vært en viktig faktor i gjennombruddet til Linux de siste ti årene.

På tross av navnestriden har «Linux» blitt den dominerende benevnelsen på systemet, særlig i dagligtalen. I skriftspråk er det en noe jevnere fordeling.

Milepæler

En grafisk fremstilling av historien bak Unix-systemer. Linux er et Unix-likt system, men kildekoden stammer ikke fra originalen, Unix.
DatoHendelse
27. september 1983Richard Stallman kunngjorde GNU-prosjektet.
14. mars 1994Versjon 1.0 av Linux-kjernen ble lansert, men støttet kun i386 maskiner med én prosessor.
8. mars 1995Versjon 1.2 av Linux-kjernen ble lansert og støttet Alpha, SPARC og MIPS.
9. juni 1996Versjon 2.0 av Linux-kjernen ble lansert med støtte for flerprosessorsystemer (SMP).
14. oktober 1996KDE-prosjektet ble annonsert.
August 1997GNOME-prosjektet ble startet på grunn av tvil rundt hvorvidt KDE virkelig var fri programvare.[14]
12. juli 1998KDE versjon 1.0 ble lansert.
25. januar 1999Versjon 2.2 av Linux-kjernen ble lansert.
3. mars 1999GNOME versjon 1.0 ble lansert.
4. januar 2001Versjon 2.4 av Linux-kjernen ble lansert med støtte for ISA Plug-and-Play, PA-RISC, USB og PCMCIA.
Juni 2001Linux Standard Base ble lansert.
17. desember 2003Versjon 2.6 av Linux-kjernen ble lansert.
21. juli 2011Versjon 3.0 av Linux-kjernen ble lansert.
14. mars 2016Versjon 4.5 ble utgitt.
3. mars 2019Versjon 5.0 ble utgitt.
2. oktober 2022Versjon 6.0 ble utgitt.

Bruksområder og markedsandeler

Linux kan brukes på et utall ulike måter, både grensesnitt og tema kan variere mye mellom ulike distribusjoner med forskjellige generelle eller spesialiserte bruksområder.

Superdatamaskiner

Linux er vanlig å benytte som operativsystem for superdatamaskiner. I juni 2007 kjørte 77,8 prosent av verdens 500 kraftigste datasystemer Linux,[15] mens andelen var økt til 97% i november 2014.[16]

Linuxbasert Sharp Zaurus

Tjenere

Historisk sett har Linux hovedsakelig blitt benyttet som operativsystem for tjenere og blitt en markedsleder innen dette området. Netcraft rapporterte i september 2006 at 80 prosent av de mest pålitelige vevhotellene kjører Linux på sine vevtjenere.[17] Dette er på grunn av Linux' relative stabilitet og høye oppetid, og at skrivebordsprogramvare ofte er overflødig på tjenere. Både Enterprise- og ikke-Enterprise-distribusjoner benyttes for tjenere.

Tallmaterialet varierer noe, men viste pr. november 2014 en klar overvekt av Linux-baserte tjenere på internett, fra 67% (med Windows-servere på 33% og Apple-systemer rundt én promille)[18] til over 75%.[19]

Linux er hjørnesteinen i LAMP kombinasjonen (Linux, Apache, MySQL, Perl/PHP/Python) som har blitt populært blant utviklere og er en av de vanligste plattformene for Internet-sider.

Personlige datamaskiner

Linux har «vokst opp» og modnet betydelig de senere årene, kanskje delvis takket være flere større bedrifter som har begynt å satse på Linux og tildelt personale og ressurser til oppgaver hobbyutviklere gjerne overser.

I dag er de større skrivebordsdistribusjonene anvendelige med oversettelser til en stor del av verdens språk, spesielt for sentrale programmer. Det finnes et betydelig utvalg av programmer for både underholdning og mer seriøst arbeid. Det er lite som skiller moderne utgaver av Microsoft Windows, Macintosh og Linux med hensyn til brukervennlighet. Linux har også den fordelen at det tillater skreddersying etter brukernes behov. Noe som kan være lukrativt for bedrifter og virksomheter.

Det meste som skrives av fri programvare skrives enten spesifikt til Linux og Unix-liknende POSIX-kompatible slektninger eller plattformuavhengig. I dag finnes det programmer med fri og åpen kildekode til Linux som kan erstatte de vanligste proprietære programmene til Windows eller Mac OS.

Smarttelefoner

Per 2013 var operativsystemet Android som er basert på Linux-kjernen (men ikke GNU) en overlegen markedsleder med en markedsandel på 85%, noe som tilsvarer omtrent én milliard telefoner. Apples andel lå på rundt 11%, Microsoft Windows på 3%, mens den resterende prosenten var fordelt på øvrige systemer.[20]Flere telefoner med fullverdige Linux-operativsystemer på dem (bl.a. /e/ Fairphone, Pinephone, og Librem 5) er tilgjengelig/i utvikling. Disse telefonene har fokus på personvern gjennom fri programvare.

Annen forbrukerelektronikk

Siden Linux støtter så mange forskjellige prosessorarkitekturer, har det blitt populært for produsenter av håndholdte enheter, tv-apparater og «smarte» hvitevarer å benytte linuxbaserte operativsystemer. Fri programvare gjør det også enkelt og kostnadseffektivt å tilpasse programvaren. Innen forbrukerelektronikk generelt, slik som rutere og annet nettverksutstyr, spillkonsoller[21], TV-apparater, MP3-spillere og husholdningsutstyr er det ventet at Linux vil bli en dominerende operativsystemaktør.[22]

Flere nettverksbrannmurer og rutere, -inkludert flere fra Linksys, bruker Linux og dets avanserte brannmur- og rutermuligheter. Korg OASYS og Yamaha Motif XS musikkarbeidsstasjoner kjører også Linux.

50 prosent av asiatisk forbrukerelektronikk valgte Linux i 2003 og 63 prosent av prosjektene for 2004 planla i 2003 å bruke Linux.[23] I tillegg kjører noen SEGA arkade-maskiner, spesifikt Sega Lindbergh, Linux.

I 2007-2008 dukket det opp et nytt segment i PC-markedet. Små, lette og billige bærbare PC-er dukket opp fra produsenter som ASUS, Acer og MSI. Disse maskinene er ofte levert med Linux som standard.

Programvare

Grafiske grensesnitt

KDE 3.5 på svensk.

I Linux er det meste bygget opp i lag, fra kjernen og utover finnes det ulike programmer som bygger på hverandre og tar ansvar for hver sin oppgave; sånn er det også i spørsmålet om grafikk og grensesnitt. Det er mulig å ha flere valgbare skrivebordsmiljø på et Linux-system, og de fleste programmene fungerer omtrent likedan uansett hvilket grafisk miljø som velges. Det omvendte gjelder også, for eksempel brukes GNOME også i andre operativsystemer.

Tekniske fakta

Utdypende artikler: Vindussystemet X og Wayland

Lengst nede i systemet ligger driver-rutinene og kommuniserer med grafikkortet ved hjelp av kjernen. I neste lag ligger et vindussystem som i de fleste distribusjoner i dag er Xorg, som også kalles X11 eller X-server. Vindussystemet har ansvar for de aller mest grunnleggende oppgavene når det gjelder å håndtere og tegne opp grafikk på skjermen.En annen egenskap er at vindussystemet fungerer som en tjener-klient model. Det vil si at vindussytemet ikke trenger å kjøre på den maskinen selve programmene kjører. I praksis vil det bety at man kan kjøre en terminal som kun viser vinduer/grafikk mens selve maskinen programmene kjører på befinner seg et annet sted i verden.Linux er også hyppig brukt på noen av de største og kraftigste superdatamaskinene i verden.

Over X11 finnes det vanligvis i dag et komplett skrivebordsmiljø som inkluderer mer avansert vindushåndtering, innstillinger og regler for hvordan systemet skal oppføre seg, menyer, paneler og aktivitetsfelt. Det er også vanlig at nødvendige programmer som filutforsker, kalkulator, tekstbehandling, nettleser, mediespiller og lignende følger med.

Skrivebordsmiljø

Vindushåndtering ved hjelp av Compiz.

De vanligste skrivebordsmiljøene i dag er GNOME, KDE, Xfce og LXDE, likhetene mellom disse er større en forskjellene, og alle bygger på samme prinsipper om vinduer, knapper, ikoner og skrivebord. Disse danner basen for det grafiske skrivebordet som andre grafiske programmer kjører på toppen av i Linux. Skrivebordsmiljøene er dessuten laget slik at programmer som er laget for ett skal fungere like godt i et annet. De fleste grafiske miljøer for Linux har arvet noen funksjoner fra sine forgjengere i Unix-verden, blant annet muligheten til å benytte flere virtuelle skrivebord. Mindre populære skrivebordsmiljø er blant andre Enlightenment, EDE og XPDE. Det finnes dessuten Linuxversjoner av eldre vindussytemer som TWM og FVWM.

Det finnes 3D-akselererte grafiske miljø for Linux, hvor systemet utnytter OpenGL for å tegne opp vinduer og skrivebord. Det mest kjente alternativet er Compiz som utvikles i samarbeid med Novell.[24] Dette gir muligheten til å ta i bruk avanserte effekter med tredimensjonale skrivebord, gjennomsiktige og geleaktige eller roterende vinduer.[25], men det gir også systemet flere tilgjengelige minne og prosessor-ressurser fordi alle grafiske beregninger isteden legges over på grafikkortet. XGL er fritt tilgjengelig og anvendbart også i dag, selv om det fortsatt regnes som eksperimentelt.

Surfe på nettet

Utdypende artikkel: Liste over frie nettlesere

Å surfe på nettet har blitt den kanskje vanligste aktiviteten på personlige datamaskiner i dag, så det er viktig at et operativsystem har en bra nettleser. Mozilla Firefox har blitt en veldig vanlig nettleser, og er standard i mange distribusjoner. GNOMEs standard nettleser er Epiphany, som er en svært god nettleser, basert på samme base som Firefox, men som har en del nytenkning når det gjelder favoritter og surfing. KDE kommer med Konqueror som er basert på Webkit, som også ligger til grunn for Apples Safari. Forøvrig finnes også Opera, som er gratis og annonsefri, men proprietær. Det er også mulig å kjøre Internet Explorer via Wine eller Crossover, men det er mest anvendbart til webdesign og -utvikling. Det finnes forsåvidt også en rekke tekstbaserte nettlesere, som Lynx, w3m og Links, som kan være praktiske for de som av en eller annen grunn ikke anvender seg av et skrivebordsmiljø.

E-post

For e-post finnes det et antall programmer å velge mellom. Mozilla Thunderbird er et søsterprosjekt til Firefox og har blant annet innebyggede funksjoner for å håndtere spam-post. Evolution er et program for e-post, kalender og adressebok utviklet av Ximian og Novell og er standard e-postleser i GNOME. Evolution kan koble seg til Microsofts Exchange og har en del innovative funksjoner for sortering og søking i posten. KDE tilbyr klienten KMail og Kontact. Forøvrig finnes det også et antall tekstbaserte klienter, som Mutt og Pine. Dessuten fungerer vevbaserte tjenester som Gmail og Hotmail som vanlig i alle de vanlige nettleserne.

Kontor

OpenOffice.org og avleggeren LibreOffice er fri kontorpakker som kan åpne Microsoft Office-dokumenter og lagre dem tilbake i samme format. De er også blant de vanligste programmene på Linux, da mange moderne skrivebordsdistribusjoner inkluderer dem som en del av standardinstallasjonen, ellers finnes det tilgjengelig for enkel installasjon. KDE har sin egen programvarepakke for kontorarbeid, KOffice som også inkluderer alle vanlige programmer brukeren kan forvente seg. Likeså har GNOME kontorprogrammer i form av AbiWord, Gnumeric og GNUcash. Sistnevnte kombinasjon kalles ofte for GNOME office.

Begge programmvarepakkene kan lagre direkte til PDF uten å bruke utvidelsesprogrammer. Når det gjelder å lese og skrive ut PDF, finnes de frie programmene Evince i GNOME og KPDF i KDE. Evince kan forøvrig lese mer enn PDF, for eksempel Postscript, Powerpoint og komprimerte avisformater, med flere. Dessuten finnes også det proprietære Adobe Reader for Linux.

Chatting og lynmeldingsklienter

De vanligste programmene for å chatte med under Linux er Pidgin i GNOME-baserte systemer og Kopete for KDE. Begge programmene støtter alle de vanligste protokollene, som MSN, ICQ/AIM, Jabber/Google Talk, Yahoo og IRC. I disse programmene kan brukeren ha kontakter fra forskjellige protokoller eller ulike brukerkontoer i samme kontaktliste og slipper dermed å ha flere programmer åpne samtidig.

Det finnes en rekke alternative og spesialiserte programmer, som aMSN, Licq, Centericq eller X-Chat.

Musikk og Video

Juridiske problemer med programvarepatenter

Det finnes et stort antall avanserte og kompetente avspillere for Linux. Men det finnes problemer på dette området når det gjelder ulike formater og codecer som begrenses av programvarepatenter i blant annet USA. Bedrifter som sitter på disse patentene vil ha betalt for retten til å benytte deres format. Linuxdistributører må betale per lisens for at brukeren skal ha rett til å spille av mediene med sin spesifikke variant av Linux. Det gjør blant annet Linspire og Xandros, samt flere av de andre bedriftene som har kommersielle versjoner av sine distribusjoner. Det finnes også amatørvarianter som uttrykkelig sier at at en lisensstrid som foregår langt unna deres land på grunnlag av patenter på en type produkter som på prinsipielt grunnlag ikke burde eller kan patenteres i deres land ikke angår utgiverne, og som derfor gir ut distribusjonen sin inkludert støtte for proprietære medieformater, som for eksempel Sabayon og Linux Mint.

Rhythmbox håndterer musikkbibliotek og vevradio i GNOME.

De som ikke tar betalt eller som ikke vil betale ligger dårligere an. I beste tilfelle befinner brukeren seg i en juridisk gråsone om man gjør noe så elementært som å spille av en DVD eller en MP3[26] i USA. Mange distribusjoner inkluderer derfor ikke støtte for disse og andre kommersielle formater, som for eksempel Microsofts og Apples begrensende formater. Der er allikevel mulig og kanskje også helt vanlig at brukere selv installerer denne støtten i etterkant. I de fleste land (også i Norge) er det nemlig helt lovlig om en privatperson skaffer seg denne støtten for personlig bruk.

I mange tilfeller innebærer altså for eksempel patenterte codecer mest noen ekstra tiltak før systemet fungerer fullt ut. Vil brukeren påvirke situasjonen kan denne selv isteden anvende åpne format som Ogg, Vorbis og Xvid og engasjere seg for å stoppe programvarepatenter i EU.[27]

Musikkspillere

Totem 1.2.1 på svensk i Debian.
  • JuK er en jukebox for KDE.
  • AmaroK er en moderne musikkspiller for KDE.

Videospillere

  • Totem er GNOME-prosjektets mediespiller.
  • MPlayer er en gammel og tro kjenning i UNIX-sammenheng, som kan anvende codecer fra Windows.
  • VLC media player finnes også til Windows og Mac OS, og er kjent for å kunne spille av nesten hva som helst uten å trenge ekstra codecs.
  • xine er en annen vanlig spiller som har vært med lenge. Kan også anvende Windows-codecs.
  • Kaffeine er en spiller for KDE som anvender xine for å spille av film.

Kommandolinje

Kommandolinjen (Terminal) i GNOME viser et enkelt program, skrevet i Ruby.

En stor del av GNU-systemet består av de programmene som brukes for å utføre vanlige Unix-kommandoer. På Linux-system, som på alle andre Unix-liknende systemer, har man tilgang til disse via et tekstgrensesnitt og en kommandolinje eller skall (engelsk: «shell»). Man kan la systemet starte uten grafisk grensesnitt og bare bruke skallet, vanligere er det at man har kommandoskallet tilgjengelig i et eget vindu. De vanlige Unix-kommandoene utfører funksjoner som å flytte, kopiere og slette filer og kontrollere og styre de programmene som kjøres av systemet. Et moderne skrivebordsmiljø kan i prinsippet erstatte kommandoskallet helt, men mange brukere ser at et tekstbasert grensesnitt er kjappere for visse typer jobber.

Administratorer av tjenere kobler seg ofte til andre datamaskiners skall over nettverk eller Internett via grensesnittet SSH. Det er vanlig at vevhoteller som benytter Linux eller BSD tilbyr denne slags tilkobling til sine kunder, hvilket gjør at brukeren kan arbeide smidigere enn via FTP. I visse tilfeller er det dessuten tillatt å kjøre og kompilere programmer; og å ha tidsplanlagte kjøringer i denne kontoen.

Bash er det absolutt vanligste skallet i dag, selv om det finnes et antall andre med spesialisert funksjonalitet, som C skall og Z skall.

Spill

Det fantes tidligere ikke like mange store spill til Linux som til konsollsystemer eller Windows. Det var vanlig å anta at spillutviklere ofte er av den oppfatning at de fleste som hadde tilgang til Linux også hadde tilgang til Windows, slik at de anså kostnaden å være for høy for å utvikle en kompatibel versjon.

Imidlertid kunngjorde den ledende[28] online-distributøren Valve Corporation i 2012 at selskapet ville satse på Linux som spillplattform, siden hverken Windows eller OSX oppfylte kravene som brukbar spillplattform.[29] Newell erkjente at spill ville være en betydelig del av satsingen på Linux.[29] Dette førte til en eksplosiv vekst innenfor markedet, både med hensyn til at eldre spill ble konvertert til Linux og at nye ble utviklet. Både nedlastingsplattformen Steam (programvare) og lanseringen av spesifikasjoner for en egen Linux-basert spillkonsoll, Steam Machine med operativsystemet SteamOS, som er optimalisert for videospill.[30]

Konverteringer

Freeciv er inspirert av Civilization-serien.

Tross alt hender det at konverteringer gjøres, enten at et bedrift av ulike årsaker vil støtte Linux-plattformen eller at de slipper kildekoden fri, og uavhengige hackere porterer spillet. Vanligvis slippes ikke øvrige ressurser som grafikk og lyd fritt, da må spilleren fortsatt eie en kopi av originalarbeidet for å kunne spille konverteringen.

Id Software slapp for noen år siden kildekoden til DOOM under GPL og det finnes et antall prosjekter som har utviklet spillmotoren videre. Samme datafiler som ble benyttet til originalspillet kan derfor nå anvende for å spille Doom på et Linux-system. Siden har Id begynt å slippe flere titler som Quake 4 og Doom 3 direkte i Linux-versjoner og dessuten bruker de å slippe kildekoden til spillene etter at det har gått noen år, blant annet finnes Quake III Arena tilgjengelig på denne måten.[31] I samme sjanger har også Epic Games sluppet flere spill fra Unreal-serien for Linux, men uten kildekode.

I noen tilfeller gjenskaper uavhengige utviklere et spill uten å ha tilgang til kildekoden, et eksempel på dette er OpenTTD som er en helt frittstående implementasjon av Transport Tycoon Deluxe, Freeciv i Civilzation-sjangeren og Lincity-ng. Begge disse har senere blitt utviklet videre med stadig bedre funksjoner og mer balanserte regler enn originalen. The Ur-Quan Masters er et annet eksempel.

Spill laget for Linux

Skjermskudd fra Guitar Hero- klonen Frets on Fire, et musikkspill hvor spilleren "simulerer" gitarspilling

Kommersielle storspill som er laget med Linux i tankene er fortsatt sjeldne. Derimot finnes det en stor mengde spill, kommersielle så vel som frie, skrevet av hobbyister verden over. Det finnes også et og annet prosjekt under utvikling som sikter på å bli stort, PlaneShift for eksempel har som mål å skape et fullskala MMORPG basert helt og holdent på fri kildekode. Verdt å nevne er også åpne og frie danse/rytme/musikkspill som StepMania og Frets on Fire, spesielt da den førstnevnte uttrykkelig er ment å spilles med originalspilltypens kontroller, i dette tilfellet en dansematte. Også Frets on Fire kan ved hjelp av forskjellige adaptere spilles med Guitar Heros gitarliknende kontroller.

Det er få originale frie spill med åpen kildekode som har oppnådd nevneverdig bemerkelse, men noen eksempler er NetHack og Tux Racer.

Windowsspill i Linux

Uavhengige bedrifter har også tatt på seg oppgaven med å portere prominente Windowsspill til Linux etter spillenes initielle slipp. Loki Software var den første slike porteringsbedriften, grunnlagt i 1998 og overgått av Linux Game Publishing i 2001. Wine og den kommersielle avstikkeren Cedega lar mange Windowsspill kjøre under Linux og virtuelle maskiner og arkitekturemulatorer tilbyr kompatibilitet for spill som er laget for andre plattformer. Eksempler på slike er ScummVM og DOSemu.

Mange Windowsspill kan spilles i Linux helt eller nesten helt uten ytelsestap ved hjelp av Wine og Cedega (som baseres på Wine, men har bedre støtte for mange spill, men koster penger). Wine står for «Wine Is Not an Emulator». Begge har en utbredt støtte for DirectX og Cedega har også spesifikke avtaler med spillutviklere for å kunne håndtere kopibeskyttelser korrekt.

Teknologien Proton, som ble utviklet med støtte fra selskapet Valve muliggjør å spille drøyt 6 000 Windows-spill på Linux, deriblant noen av de mest populære titlene. (Status september 2019)[32]

Det finnes også ulike spesifikke emulatorer som MAME, DOSBox og DOSEMU for MS-DOS og ScummVM for LucasArts gamle eventyrspill, som kan hjelpe spilleren å spille eldre spill.

Programmering

I et visst antall år ble Linux utviklet i mangt og meget av programmerere som skrev programmer og funksjoner for å oppfylle sine egne behov, og det er først de senere årene som fokus har blitt lagt på å skape et anvendbart operativsystem for alle og enhver. Dette er noe av bakgrunnen for at det finnes mange programmer for utvikling, og støtte for et utall programmeringsspråk.

Kompilerbare språk

Utdypende artikkel: GCC

GNU Compiler Collection er en samling kompilatorer og tilhørende programmer som kan kompilere et antall ulike programmeringsspråk, som C, C++ (G++), Java (GCJ), Ada (GNAT), Objective-C, Objective-C++ og Fortran (GFortran). Det er også tilgjengelig støtte for Modula-2, Modula-3, Pascal, PL/I, D, Mercury, VHDL gjennom utvidelser. Selv om det finnes flere kompilatorer tilgjengelig for Linux, har GCC blitt standarden, og følger med alle Linux-distribusjoner.

En vanlig installasjon av Linux kommer også støtte for en lang rekke med frie skall-skript, blant andre, BASH, DASH, RC, BeanShell, Python skall, Ruby skall, CSH, KSH, PDKSH, ZSH, ASH.

Kombinasjonen av alle disse frie verktøyene gjør Linux til en egnet plattform for programmering og programvare-utvikling.

Skriptspråk

Linux, som alle UNIX-like miljøer har en sterk tradisjon for å bruke skriptspråk for å gjøre arbeidet og livet lettere. Skript er programmer som er skrevet i språk som kan tolkes under kjøringen, hvilket gir et langsommere program, men mye mer fleksibel og effektiv utvikling. Kjente eksempler som det finnes støtte for i Linux er Perl, Python og Ruby, men også mindre kjente skriptspråk som BASH, DASH, RC, BeanShell, CSH, KSH, PDKSH, ZSH, ASH finnes det støtte for.

Programmering for Internett

Nvu som redigerer svensk wikipedias hovedside.

Da Internett ble vanligere[når?], begynte mange å bruke skript for å skape dynamiske nettsider og koble innholdet til databaser og logikk. Dette er fortsatt vanlig, selv om spesialiserte språk som PHP har blitt vanligere. Linux og Perl, Python eller PHP, sammen med vevtjeneren Apache og databasetjeneren MySQL blir ofte forkortet til LAMP og er en av de vanligste plattformene for vevhotell og nettsider. Nå for tiden skrives til og med ganske mange programmer direkte i skriptspråk, da det finnes koblinger til forhåndskompilerte grafikk- og vindusbiblioteker, og selve logikken som skriptet har ansvaret for utgjør en forsvinnende liten del av kjøretiden. For de som av en eller annen grunn sverger til asp, finnes dessuten Mono.

Utviklingsmiljøer og andre programmer

Samtidig finnes det kraftige frie programmeringsverktøy, slik som Emacs og Vim, og nyere integrerte utviklingsmiljø, slik som KDevelop, MonoDevelop, Eclipse, Gambas. En standard Linux Mint-installasjon hadde i november 2014 rundt 46 000 tilgjengelige støttebibliotek via pakkesystemet.

Det finnes et antall utviklingsmiljø for Linux, blant andre KDevelop, MonoDevelop, Eclipse, Anjunta og Gambas, selv om mange isteden anvender seg av avanserte tekstredigerere som Emacs, Vim og Kate.

For å jobbe med HTML og designe nettsider finnes Nvu og Quanta Plus, som kan jobbe med WYSIWYG («hva du ser er hva du får») eller direkte med koden, eller veksle mellom disse metodene. For den som bare vil skrive ren kode direkte, finnes blant annet Bluefish som har mange funksjoner for HTML og PHP. Dessuten har de fleste avanserte tekstredigeringsprogrammene mer eller mindre støtte for dette.

Kjøring av Windows-programmer i Linux

Utdypende artikkel: Wine

Mange brukere har behov for å kjøre Windows-programmer. De enkleste løsningene er Wine, som er fritt og gratis, og de kommersielle programmene Crossover og Cedega. Disse gjør programmene kompatible ved å reimplementere Windows' API innenfor Linux. Mange programmer kan i dette miljøet kjøre like raskt som på en Windows-maskin, og i enkelte tilfeller raskere. Styrken ved denne løsningen er at programmene ikke krever en installasjon av Windows, og dermed heller ingen Windowslisens. Svakhetene er at det ikke er et 100 % kompatibelt system.

En annen mulighet er Win4Lin, et kommersielt program som konverterer Windows' API slik at den kjører innenfor Linux fremfor å reimplementere denne. Dette krever at Windows er installert, ikke som operativsystem men som et program i Linux. Windows kjøres så i et vindu, og i dette vinduet kan man åpne alle Windows-applikasjoner. Programmet støtter alle versjoner av Windows, til og med XP, men det er per august 2005 fortsatt problemer med å bruke det i et nettverksmiljø dersom man må gjennom en mellomleddstjener.

Et tredje alternativ er å bruke en virtuell maskin, hvor man kjører hele Windows fra Linux. Svakheten med en slik emulatorløsning er at man kan få kraftig nedsatt hastighet. Man må installere Windows for at dette skal fungere. Windows-programmer som kjøres på denne måten kan ikke integreres i Linux-skrivebordet, slik at man for eksempel ikke kan kopiere tekst fra et Windows-program til et Linux-program slik man kan i Wine og i Win4Lin.

Brukerstøtte

Linux har et aktivt brukermiljø. Mange Linux-brukere organiserer seg i brukergrupper, der de jevnlig møtes og arrangerer for eksempel foredrag eller presentasjoner.

Det finnes mange nettforum hvor brukere kan legge ut problemene sine. Et par eksempler er engelskspråklige LinuxQuestions.org[33] og Ubuntu Forums.[34] Man kan også bruke IRC for å komme i kontakt med Linux-brukere. Ved å gå inn i kanalen #linux, som finnes på de aller fleste nettverk, vil man kunne treffe folk som er villige til å hjelpe.

Det finnes få brukerstøtteløsninger som er tilgjengelig for alle, og de fleste forutsetter at man stiller spørs,mål på åpne fora. Microsofts Alistair Baker har spilt på dette sammen med Bill Gates i et BBC-intervju, hvor han spør om man virkelig vil ha sikkerhetsproblemet med PC-en sin lagt ut og drøftet av allmennheten.[35]

Opphavsrett

Utdypende artikler: GNU General Public License og Copyleft

Både Linuxkjernen og GNU-systemet er lisensiert under GNU General Public License (GPL). Dette innebærer at programvaren kan spres fritt (gratis eller mot betaling), så lenge kildekoden gjøres tilgjengelig og distribuerte programmer og eventuelle endringer fortsatt blir underlagt GPL. Det er en bred oppfatning om at denne lisenspraksisen, kalt copyleft, er årsaken til GNU/Linux-kombinasjonens framgang. Liknende systemer, som for eksempel BSD, har en lisens som tillater spredning av endrede versjoner, men krever ingenting i forhold til hvorvidt endringer gjøres fritt tilgjengelig. Linus Torvalds har i et intervju sagt om avgjørelsen å slippe Linux-kjernen under GPL at det var «det beste han noengang har gjort».[36]

Distribusjoner

Utdypende artikler: Liste over større Linuxdistribusjoner og Liste over Linuxdistribusjoner

Et Linux-system består av svært mange programmer – inntil flere tusen. En distribusjon er en samling av slik programvare i tillegg til selve Linux-kjernen.

I hovedsak finnes det to typer distribusjoner, generelle og spesialiserte. Generelle distribusjoner er en type distribusjoner som er ment å kunne brukes til alle slags oppgaver. Disse inkluderer vanligvis bare det aller viktigste man trenger for å komme i gang i standardinstallasjonen. Debian, Gentoo og Slackware er eksempler på generelle distribusjoner. De generelle distribusjonene anbefales vanligvis ikke til nybegynnere, fordi de krever en betydelig høyere terskel å sette seg inn i. Nybegynnere kan gjøre tilværelsen lettere for seg selv, og bedre sjansene sine for å trives med distribusjonsvalget om de velger en spesialisert distribusjon, slik som Ubuntu, OpenSUSE eller Sabayon.

De ulike spesialiserte distribusjonene har ulikt fokus; noen er spesielt tilpasset bruk på tjenermaskiner, mens andre er rettet mot hjemmebrukere. Disse distribusjonene inneholder et rikt utvalg av programvare i standard-installasjonen. De ulike distribusjonene, prøver i forskjellig grad å tilpasses til forskjellige brukergrupper, for eksempel kontormennesker, barn og de som er vant til Windows. Dermed oppleves forskjellige distribusjoner forskjellig av ulike brukere i forhold til brukervennlighet.

De fleste Linux-distribusjonene er fritt tilgjengelig og gratis da mesteparten av programvaren som er inkludert er lisensiert under GNU GPL, mens resten av programvaren vanligvis er lisensiert under andre frie lisenser.

For å forhindre at de forskjellige distribusjonene fjerner seg fra hverandre i løpet av utviklingen er Free Standards Group opprettet. Denne organisasjonen setter en felles standard for alle distribusjonene, Linux Standard Base (LSB). LSB blir støttet blant annet av Red Hat, Novell (SUSE), og Asianux.

Distributørøkonomi

Konkurransemarked

Det som karakteriserer det økonomiske markedet for Linux-distribusjoner er at prisen på selve programvaren ofte er svært nær grensekostnaden ved å lage én ekstra kopi og distribuere den videre. Internett har ført til at denne grensekostnaden er null for programvare som distribueres via Internett. Lisensbetingelsene i GPL og andre fri programvare-lisenser gir hvem som helst som har mottatt en kopi av programvaren rett til å distribuere en ny kopi videre til hvem som helst. Dette har ført til at Linux-distribusjoner i dag, vanligvis kan distribueres helt gratis. Denne sammenhengen mellom grensekostnad og pris er det som karakteriserer et økonomisk konkurrerende marked. Fordi en distributør som tar seg betalt programvaren i dette markedet vil bli utkonkurrert av distributører som gir bort den samme programvaren gratis, tilbyr de fleste distributørene programvaren sin gratis. Linux-distributørene tjener pengene sine ved å tilby komplementære tjenester og produkter.

Kundestøtte

De fleste Linux-distributørene tjener pengene sine ved å tilby kommersiell kundestøtte. Denne bedriftsmodellen medfører at det er en direkte sammenheng mellom kvaliteten på programvaren og behovet for å utnytte forsikringen som kundestøtten gir. For bedrifter er kundestøtte en forsikring mot nedetid. Det bedriftene ønsker er derfor kombinasjonen god programvare og god kundestøtte, fordi én av delene vil ikke være tilstrekkelig for å sikre seg mot nedetid. Risikoaverse bedrifter kjøper både produkter og forsikring. Å tilby kundestøtte skaper dermed et incentiv til å øke kvaliteten på programvaren, fordi distributørene lever av kvaliteten til programvaren.

Lisenskostnader

Imidlertid er ikke alle distribusjonene gratis. Det kommer vanligvis av at de fleste proprietære medieformater, slik som MP3 og Windows Media, i USA krever at alle som leverer støtte for disse må betale en lisensavgift til patentholderen. Noen amerikanske distributører forsøker å skaffe seg et konkurransefortrinn over konkurrentene ved å tilby støtte for slike formater. (Se Linspire og Xandros). Det innebærer at disse distribusjonene i alle tilfeller må koste penger, fordi grensekostnaden ved å distribuere én ekstra kopi vil øke fra null. Og da vil distributøren tape penger og gå konkurs ved å gi bort programvaren gratis. Disse distributørene forsøker å konkurrere på andre vilkår enn gratis-distributørene og kan derfor legge inn en profittmargin mellom grensekostnaden og prisen slik at de faktisk tjener penger på salget av programvaren. Disse distributørene kan i tillegg tilby andre komplementære tjenester og produkter, slik som kundestøtte.

Installasjon / Pakkesystem

Utdypende artikkel: Pakkesystem

De fleste Linux-distribusjonene baserer seg på et pakkesystem som lar brukeren søke etter og installere programmer, drivere, temaer, fonter og andre utvidelser enten direkte fra internett eller fra lokale kilder som minnepinner, CD-rom eller DVD. Noen av de mest kjente pakkesystemene er APT, RPM og Portage. Blant pakkebehandlere med grafiske grensesnitt finner man Synaptic og YaST.

Sikkerhet

Ifølge en studie gjort ved universitetet i Stanford i perioden 2000–2004 inneholdt Linux-kjernen 0,17 feil per 1000 linjer med kode. Totalt var det 985 feil i 5,7 millioner linjer med kode.[37]Rapporten viser også at 90 % av disse ligger i enhetsdrivere som er statisk lenket til kjernen.[38]Ifølge William Guttman, direktør i Sustainable Computing Consortium, inneholder typisk proprietær lukket kildekode mellom 20 og 30 feil per tusen linjer med kode.[39]Det betyr at kildekoden i Linux-kjernen inneholder 150 ganger færre feil enn typisk gjennomsnittlig proprietær programvare.

Linux er et fiendtlig miljø å være i for virus. For at et Linux-virus skal kunne infisere kjørbare filer, må brukeren som aktiverer viruset ha skrivetilgang til filen. Det er vanligvis aldri tilfelle. Vanligvis eies programmer av «root» og brukeren kjører programmer fra en uprivilegert brukerkonto. Jo mindre erfaring brukeren har, desto mindre sannsynlig er det at brukeren har skrivetilgang til noen kjørbare filer. Selv hvis viruset infiserer et program som eies av brukeren, vil det bare kunne spre seg til andre filer som eies av brukeren, og er begrenset til brukerens egen hjemmemappe. Programvare til Linux er vanligvis fri kildekode, og spres derfor ikke i noen særlig grad ukontrollert i binærform, og kildekode er et tøft gjemmested for et virus som ikke ønsker å bli oppdaget. For at et datavirus, som biologiske virus, skal kunne spre seg effektivt må spredningsraten være høyere enn eliminasjonsraten. Hvis reproduksjonsraten faller under grensen for hva som er nødvendig for å erstatte den eksisterende populasjonen, er viruset dømt fra begynnelsen av, selv før nyhetene begynner å øke bekymringsnivået til potensielle ofre.[40]

Gjenutviklingskostnader

En studie fra 2001 av Red Hat Linux 7.1 fant at denne distribusjonen inneholdt 30 millioner linjer med kildekode. Ved å bruke en konstruktiv kostnadsmodell, fant studien at Red Hat Linux 7.1 ville krevd omtrent åtte tusen årsverk om den skulle blitt utviklet ved konvensjonelle proprietære metoder. Ifølge studien ville all denne programvaren kostet omtrent 1,08 milliarder år-2000-US-dollar å utvikle ved konvensjonelle proprietære metoder. Det tilsvarer omtrent 8,1 milliarder norske kroner.[41]

Mesteparten av koden (71 %) var skrevet i programmeringsspråket C, men mange andre programmeringsspråk var også benyttet: C++, Lisp, assembler, Perl, Fortran, Python og forskjellige skall skript-språk. Litt over halvparten av alle linjene var kode som var lisensiert under GPL. Selve Linux-kjernen var 2,4 millioner linjer med kode eller ca. 8 % av totalen.[41]

I en senere studie viste de samme analysene for Debian versjon 2.2 at denne inneholdt femtifem millioner kodelinjer og ville kostet 1,9 milliarder år-2000-US-dollar eller 14 milliarder norske kroner å utvikle med konvensjonelle metoder.[42] En tilsvarende SLOC studie for Debian anno 2005 viste at den inneholdt 215 millioner linjer med kode, som tilsvarer en utviklingskostnad på ca. 58 milliarder norske kroner.[43]

Debian Etch inneholdt ifølge en SLOC-studie fra 17. juni 2007 283 millioner linjer med kildekode (76,5 milliarder kroner), som til sammenligning ifølge den samme studien er 7 ganger flere linjer enn Windows XP sine 40 millioner linjer med kildekode (10,8 milliarder kroner).[44]

Se også

Referanser

Eksterne lenker

Wikibøker: Boken_Om_Linux – bøker