Linux

**Linux** (eða **GNU/Linux**) er UNIX-legt og POSIX-samhæft frjálst stýrikerfi sem samanstendur af Linuxkjarnanum og ýmsum kerfishugbúnaði, þar á meðal GNU-tólum. Stýrikerfið dregur nafn sitt af finnska forritaranum Linus Torvalds sem gaf út fyrstu útgáfu Linuxkjarnans 5. október 1991. Free Software Foundation sem þróuðu GNU-tólin hafa barist fyrir því að stýrikerfið sé kallað „GNU/Linux“ til að leggja áherslu á framlag GNU-verkefnisins til hugbúnaðarins, en það er umdeilt.

Upphaflega var Linux þróað sem stýrikerfi fyrir tölvur með Intel x86-samhæfða örgjörva en það hefur síðan þá verið þýtt fyrir fleiri vélbúnaðarútfærslur en nokkuð annað stýrikerfi. Linux (þ.e. kjarninn) er vinsælasta stýrikerfi í heimi (þó ekki í GNU/Linux formi) vegna Android-stýrikerfisins, sem notast við Linux kjarnann og er mikið notað í snjallsíma og spjaldtölvur. Linux er líka allsráðandi á ofurtölvum (allar á TOP500 nota síðan í nóvember 2017), og er leiðandi stýrikerfi á netþjónum (með fáa keppinauta) en er einungis með 2,3% hlut á borðtölvum. Chrome OS sem líka er byggt á Linux er algengt á ódýrum fartölvum. Linux er líka algengt sem fastbúnaður í ívafskerfum eins og sjónvarpstölvum, beinum og snjallúrum þar sem stýrikerfið er sérsniðið að vélbúnaðinum.

Þróun Linux er eitt þekktasta dæmið um frjálsa og opna hugbúnaðarþróun. Frumkóði stýrikerfisins er aðgengilegur og má nota, breyta og dreifa samkvæmt skilyrðum opinna hugbúnaðarleyfa eins og GNU General Public License, hvort sem er í fjárhagslegum tilgangi eða ekki. Linux fyrir notendatölvur og netþjóna kemur yfirleitt fyrir sem dreifingarútgáfa sem inniheldur Linuxkjarnann, kerfishugbúnað, forritunarsöfn og mikinn fjölda notendaforrita sem eru sniðin að markhópi útgáfunnar. Algengar Linuxútgáfur eru Debian, Ubuntu, Linux Mint, Fedora, openSUSE, Arch Linux og Gentoo og leyfisskyldu útgáfurnar Red Hat Enterprise Linux og SUSE Linux Enterprise Server.

Linuxútgáfur fyrir borðtölvur eru oftast með gluggakerfi eins og X11, eða Wayland, og skjáborðsumhverfi eins og GNOME eða KDE. Sumar útgáfur notast við léttari skjáborð eins og LXDE eða Xfce. Útgáfur fyrir netþjóna eru oft lausar við myndræn notendaskil eða bjóða upp á þau sem valkost en innihalda gjarnan miðbúnað eins og LAMP-hugbúnaðarstæðuna. Þar sem Linux er frjáls hugbúnaður getur hver sem er búið til eigin útgáfu miðað við ætluð not.

## Saga
### Fyrirrennarar
Stýrikerfið Unix var búið til árið 1969 í rannsóknarstofnun bandaríska símafyrirtækisins AT&T, Bell Labs, af Ken Thompson, Dennis Ritchie, Douglas McIlroy og Joe Ossanna. Fyrsta útgáfa þess var forrituð í smalamáli og var gefin út árið 1971. Síðar var stýrikerfið endurskrifað frá grunni í forritunarmálinu C af Dennis Ritchie fyrir utan kjarnann og nokkra viðmótshluta. Með því að skrifa frumkóðann í æðra forritunarmáli var auðveldara að aðlaga kerfið að ólíkum vélbúnaði.

Vegna bandarískra laga um bann við einokun gat AT&T ekki hafið starfsemi í tölvugeiranum og neyddist til að gefa hverjum sem var leyfi til að nota hugbúnaðinn sem Bell Labs þróaði. Notkun Unix breiddist því hratt út meðal fyrirtækja og stofnana. Í kjölfar dómsmála sem neyddu AT&T til að skipta fyrirtækinu upp árið 1984 losaði það sig við Bell Labs sem við það varð sjálfstætt fyrirtæki og laust undan takmörkunum. Bell Labs hófu því að selja Unix sem leyfisskyldan hugbúnað.

Árið 1983 hóf Richard Stallman að þróa GNU-verkefnið sem gekk út á að búa til fullbúið Unix-legt stýrikerfi sem væri eingöngu gert úr frjálsum hugbúnaði. Árið 1985 stofnaði Stallman Free Software Foundation. Hann samdi fyrstu útgáfu GPL-hugbúnaðarleyfisins árið 1989. Um 1990 voru hann og samstarfsfólk hans búin að þróa mikið af grunnhugbúnaði stýrikerfisins eins og þýðanda, textaritla, Unix-skel og gluggakerfi, en vantaði enn kjarna, rekla og púka. 

Um sama leyti voru hjónin Lynne Jolitz og William Jolitz byrjuð að þróa eigin útgáfu af Unix, 386BSD, sem byggði á Berkeley-útgáfu Unix, BSD, sem dreift var innan háskólans. Vegna leyfisvandamála kom fyrsta útgáfa þess ekki út fyrr en árið 1992. Stýrikerfin NetBSD, OpenBSD og FreeBSD eru afkomendur 386BSD.

Linus Torvalds, höfundur Linux, hefur sagt að ef hann hefði haft aðgang að frjálsum stýrikerfiskjarna á borð við hinn vænta GNU-kjarna eða 386BSD hefði hann líklega aldrei byrjað að þróa Linuxkjarnann.

Árið 1987 gaf bandarískur tölvunarfræðikennari við Vrije Universiteit í Amsterdam, Andrew S. Tanenbaum, út kennslubók í forritun stýrikerfa, *[[Operating Systems: Design and Implementation]]*. Bókin innihélt útfærslu á Unix-legu stýrikerfi, MINIX, sem var skrifuð frá grunni og fyrst og fremst hugsuð sem námstæki. Ástæðan var sú að Tanenbaum hafði áður notað frumkóða Unix við kennslu en gat það ekki lengur vegna breytinga á notkunarleyfum Bell Labs. Þótt frumkóði MINIX væri þannig aðgengilegur var einungis heimilt að nota hann til kennslu til ársins 2000 þegar hann kom út með frjálsu leyfi.

### Þróun Linux

Linus Torvalds var nemandi í tölvunarfræði við Helsinkiháskóla og hóf að þróa eigin stýrikerfiskjarna árið 1991 vegna þess að hann var óánægður með takmarkanirnar sem giltu um notkun MINIX-kóðans í bók Tanenbaums. Kerfið var þróað fyrir 80386-örgjörvann í tölvu Torvalds og hann notaði GNU C-þýðandann. 25. ágúst 1991 setti hann kerfið sem hann hafði skrifað á Usenet-hópinn comp.os.minix og óskaði eftir tillögum að úrbótum. 

Upphaflega var kjarninn með notkunarleyfi sem takmarkaði notkun í fjárhagslegum tilgangi en árið eftir var hann gefinn út með sama GPL-leyfi og GNU-hugbúnaðurinn sem hann notaði. Ýmsir urðu til þess að taka þátt í þróun kjarnans og aðlaga allan GNU-hugbúnaðinn fyrir hann sem gerði Linux að fullbúnu stýrikerfi. 

Upphaflega vildi Torvalds kalla kerfið Freax en Ari Lemmke, einum af samstarfsmönnum hans, líkaði ekki við það nafn og tók upp á því að kalla það Linux.

### Almenn notkun
Notkun stýrikerfisins í vinnsluumhverfi hófst eftir miðjan 10. áratug 20. aldar. Stofnanir á borð við NASA hófu að skipta út dýrum ofurtölvum fyrir tölvuklasa sem notuðu Linux. Í kjölfarið hófu fyrirtæki á borð við Dell, IBM og Hewlett-Packard að bjóða stuðning við Linux til að komast undan ofurvaldi Microsoft á borðtölvumarkaðnum. 

Linux náði fljótlega miklum vinsældum sem stýrikerfi fyrir netþjóna þar sem það bauð upp á frjálsa hugbúnaðarstæðu fyrir vefþjónustur með Apache-vefþjóninum, gagnaþjóna á borð við MySQL og PostgreSQL og vefforritunarmálin PHP, Perl og Python, svokallaða LAMP-hugbúnaðarstæðu. Talið er að tæp 60% allra netþjóna keyri á Linux.

Notkun Linux á notendatölvum óx hins vegar hægt en þar hefur Microsoft Windows lengi verið með yfirburðastöðu. Linux hefur verið lýst sem of tæknilegu kerfi fyrir almenna notendur auk þess sem takmarkaður stuðningur við jaðartæki stóð notkun þess fyrir þrifum. Lengi vel var hlutur Linux á borðtölvum talinn vera innan við 1% en er nú talinn vera milli 2,5% og 3,5% (um 2,5% á Íslandi). Nýjar notendavænni dreifingarútgáfur á borð við Ubuntu (frá 2004) og Linux Mint (frá 2006) áttu stóran þátt í að auka almenna notkun stýrikerfisins á notendatölvum.

Árið 2008 setti Google Android-stýrikerfið á markað, en það notast við Linuxkjarna og sérstakt notendaviðmót sem er skrifað að hluta í Java. Það er því umdeilt hvort Android telst sérstakt stýrikerfi eða útgáfa af Linux. Android er með tæplega 60% markaðshlutdeild á snjallsíma- og spjaldtölvumarkaðnum (tæp 40% á Íslandi). Chrome OS, sem líka er frá Google, notar líka Linuxkjarnann.

## Uppbygging
Linux-kerfi er einingaskipt Unix-legt stýrikerfi sem byggist að mestu á þeim hönnunarviðmiðum sem höfð voru til hliðsjónar við hönnun Unix á 7. og 8. áratug 20. aldar. Linux er með samfelldan stýrikerfiskjarna, Linux-kjarnann, sem sér um ferlastýringu og aðgang að jaðartækjum og skráarkerfum. Reklar eru ýmist felldir inn í kjarnann eða hlaðið inn eftir þörfum á keyrslutíma. 

Stór hluti af virkni Linux-kerfa kemur úr hugbúnaði sem þróaður er af öðrum aðilum og sem er samhæfður fyrir Linux-kjarnann. Hugbúnaður frá GNU-verkefninu er mikilvægur hluti af Linux-kerfum. Þaðan kemur algengasta útfærsla aðgerðasafns forritunarmálsins C, algeng skipanalínuskel og mörg Unix-tól sem sjá um algengar grunnaðgerðir stýrikerfisins. Myndræn notendaskil í Linux byggja á einni útfærslu X-gluggakerfisins. Wayland-staðallinn hefur rutt sér til rúms í stað X, á t.d. Fedora og frá og með Ubuntu 17.10, þar sem mikið af virkni X-kerfisins er nú orðin hluti af Linux-kjarnanum.

Í dæmigerðri Linux-uppsetningu er eftirtalinn hugbúnaður:

* Ræsir (til dæmis GNU GRUB, LILO, SYSLINUX og Gummiboot) sem hleður kjarnann inn í vinnsluminni þegar kveikt er á tölvunni eftir að búið er að ræsa fastbúnaðinn.
* Frumstillingarforrit (til dæmis sysvinit, systemd, OpenRC og Upstart) sem er fyrsta ferlið sem Linuxkjarninn setur í gang og er við upptök ferlatrésins. Frumstillingarforritið setur þannig alla aðra ferla í gang eins og kerfisþjónustur og innskráningarviðmót.
* Aðgerðasöfn með kóða sem hugbúnaðurinn getur notað við keyrslu. Í Linux-kerfum sem nota ELF-keyrsluskrár sér tengiforritið `ld-linux.so` um tengingu forrita við aðgerðasöfn. Þegar kerfið er sett upp þannig að notendur geti sjálfir þýtt frumkóða forrita fylgja aðgerðasöfnunum hausskrár sem lýsa viðmóti þeirra. Mest notaða aðgerðasafnið er GNU-útfærslan á C-staðalaðgerðasafninu GNU lib C (`glibc`) en dæmigerð Linux-uppsetning er með mörg hundruð aðgerðasöfn.
** C-staðalaðgerðasafnið er nauðsynlegt til að hægt sé að keyra C-forrit á hvaða tölvu sem er. Í Linux-kerfum er GNU C-staðalaðgerðasafnið oftast notað þótt nokkrar aðrar útfærslur séu til, eins og EGLIBC og uClibc.
** Viðfangasöfn eru aðgerðasöfn sem gera hugbúnaði kleift að setja upp myndræn notendaskil. Fjöldi slíkra safna er til fyrir Linux eins og GTK+ og Clutter (úr GNOME-verkefninu), Qt og Enlightenment Foundation Libraries (EFL).
* Notendaskil eins og skipanalínuviðmót eða gluggakerfi.

### Notendaskil
Notendaskilin í Linux, líka kölluð skelin, er annað hvort skipanalínuviðmót, myndræn notendaskil eða vélræn stjórntæki í ívafskerfum. Á borðtölvum eru myndræn notendaskil  oftast sjálfgefin en skipanalínuviðmótið er aðgengilegt í gegnum útstöðvarhermi eða sýndarútstöð. 

Skipanalínuviðmót eru textaviðmót sem notast við texta fyrir bæði inntak og úttak. Langalgengasta Linux-skelin er bash (*Bourne-Again Shell*) sem var upphaflega þróuð á vegum GNU-verkefnisins. Mest af grunnhugbúnaði Linux, þar á meðal mikið af notendahugbúnaði, notast eingöngu við skipanalínuviðmót. Slíkt viðmót hentar sérstaklega vel fyrir sjálfvirka keyrslu og samkeyrslu margra forrita og gerir milliferlasamskipti einföld.

Á borðtölvum er algengast að notast við myndræn notendaskil sem sett eru saman í heildstæð skjáborðsumhverfi eins og KDE, GNOME, MATE, Cinnamon, Unity, LXDE, Pantheon og Xfce. Algengustu notendaskilin byggja á X-gluggakerfinu (kallað „X“ eða „X11“) sem er netgagnsætt og leyfir forriti sem keyrir á einu kerfi að birta notendaskil á öðru. Sumar viðbætur X-kerfisins virka þó ekki yfir net. Gluggastjóri eins og Mutter, KWin eða Xfwm, er hluti af dæmigerðu skjáborðsumhverfi.

Wayland-staðallinn er nýr staðall fyrir gluggaþjóna sem hugmyndin er að taki við af X11-þjóninum, en árið 2016 var X11 enn útbreiddastur. Ólíkt X11 þarf Wayland ekki utanaðkomandi gluggastjóra og gluggasetjara. Staðlaða útfærsla Wayland er Weston, en verið er að aðlaga bæði KWin (KDE) og Mutter (GNOME) fyrir Wayland-staðalinn. Enlightenment var aðlagaður í útgáfu 19.

## Nokkrar útgáfur GNU/Linux
* Ubuntu
* Slackware
* Debian GNU/Linux
* Fedora
* Gentoo
* Mandrake
* Red Hat
* Arch Linux

## Tilvísanir