Linux (ydin)

Kohteesta Wikipedia
Loikkaa: valikkoon, hakuun
Tämä artikkeli käsittelee käyttöjärjestelmän ydintä. Artikkeli Linux käsittelee kokonaisia tietokoneohjelmistoja.
Linux ydin

Tux


Kehittäjä Linus Torvalds ja tuhansia kehittäjiä
Kehityshistoria
Julkaistu 0.0.1, 17. syyskuuta 1991
Vakaa versio 4.12 / 2.7.2017 [1][2][3]
Kehitystilanne Aktiivinen
Tiedot
Ohjelmistotyyppi Käyttöjärjestelmän ydin
Ohjelmointikielet C, Assembly
Lisenssi GPLv2
Verkkosivu www.kernel.org
Linux ydin on tuettu useilla alustoilla.

Linux on alun perin suomalaisen Linus Torvaldsin kehittämä käyttöjärjestelmäydin, joka on lisensoitu GPLv2-lisenssillä. Ydin eli kerneli (engl. kernel) on tietokoneen käyttöjärjestelmän alin osa, joka mahdollistaa kaikkien muiden tietokoneen ohjelmien toiminnan. Torvalds julkaisi ensimmäisen Linuxin version vuonna 1991.

Arkikielessä Linuxilla tarkoitetaan usein kokonaista käyttöjärjestelmää, jonka ytimenä Linux toimii, eli Linux-jakelua, joka sisältää ytimen lisäksi muun muassa erilaisia kirjastoja, apuohjelmia, käyttöliittymiä ja sovelluksia valmiiksi paketoituna loppukäyttäjää varten, helpottamaan tietokoneen käyttöönottoa. Pelkästä Linux-ytimestä erottamiseen jakeluista käytetään toisinaan nimitystä GNU/Linux, sillä käyttöjärjestelmä ja sovellukset sisältävät paljon GNU-projektin tuottamia ohjelmistoja.

Historiaa[muokkaa | muokkaa wikitekstiä]

Helsingin yliopistossa tietojenkäsittelytiedettä opiskellut Linus Torvalds aloitti Linuxin kehittämisen 21-vuotiaana vuonna 1990. Linux lähti liikkeelle töiden jakamisen (engl. scheduler) harjoitustyöstä, jota Torvalds kehitteli tehtävänantoa monipuolisemmaksi. Työstä kehkeytyi kokonaisen käyttöjärjestelmän toimintoja sisältävä ohjelma.

Torvalds oli tyytymätön MS-DOS-käyttöjärjestelmään, joka hyödynsi huonosti hänen vasta hankkimansa 386 -koneen edistyneitä ominaisuuksia. Häntä kiinnosti Unix, sillä se oli vakaa ja siinä oli sellaisia ominaisuuksia, joita hän halusi. Unix oli suosittu ja sitä pidettiin hakkerien keskuudessa ainoana oikeana käyttöjärjestelmänä. Se oli kuitenkin liian vaativa ja kallis PC-käyttöön. Unixin lähdekoodi ei myöskään ollut enää vapaasti saatavilla.

Torvalds sai yliopistosta käsiinsä Andrew Tanenbaumin ohjelmoiman Minixin. Se oli PC:lle tarkoitettu, Unixia muistuttava käyttöjärjestelmä, joka oli suunniteltu opetuskäyttöön. Minixin lähdekoodi oli vapaasti kaikkien niiden saatavilla, joilla oli kopio Tanenbaumin kirjasta. Ohjelmoijat pystyivät näin opiskelemaan olemassa olevaa käyttöjärjestelmää ensimmäisen kerran sitten Unixin alkuaikojen.

Minixkään ei ollut sitä, mitä Torvalds oli hakemassa. Se kuitenkin mahdollisti ja inspiroi Linuxin ohjelmoinnin aloittamisen. Torvalds asensi Minixin koneeseensa ja kirjoitti uutta ydintä koko kesän. Vähitellen hän kokosi konekielellä ja C-ohjelmointikielellä käyttöjärjestelmän ytimen. Työ eteni hitaasti eikä hän kertonut hankkeestaan vielä muille. Torvaldsin alkuperäisenä tarkoituksena ei ollut luoda käyttöjärjestelmää koko maailmalle, vaan ainoastaan omiin tarpeisiinsa. Jos hän olisi jatkanut yksin, Linuxia olisi tuskin julkaistu, sillä sen kehittäminen olisi pysähtynyt Torvaldsin omien tarpeiden täytyttyä. Torvalds julkisti projektinsa 25. elokuuta 1991 kirjoittamalla comp.os.minix-uutisryhmään[4]. Versio 0.01 valmistui saman vuoden syyskuussa.[5] Torvalds oli itse tehnyt käännökset bash-komentorivitulkista ja GCC-kääntäjästä.[4][5]

Lokakuussa 1991 versio 0.02 oli valmis ja Torvalds päätti laittaa sen vapaasti kaikkien saataville. 5. lokakuuta Internetin keskusteluryhmään lähettämässään viestissä Torvalds kertoi lähdekoodin löytyvän FTP-palvelimen nic.funet.fi hakemistosta /pub/OS/Linux ja antoi ohjeita kääntämistä varten.[6] Hän varoitti, että ohjelma oli hakkerilta hakkereille. Sen toimintakuntoon saattaminen saattoi siis vaatia hakkerin taitoja. Lisäksi hän rohkaisi muuttamaan ohjelmaa vapaasti ja toivoi kommentteja mahdollisista muiden Minixille kirjoittamista apuohjelmista ja funktioista. Toimiakseen Linux vaati vielä Minixin siinä koneessa, jossa sitä haluttiin käyttää. Myöhemmin samassa kuussa julkaistiin versio 0.03.

Alun perin Linus Torvalds oli suunnitellut antavansa ohjelmansa nimeksi Freax, joka olisi johdettu sanoista free Unix (vapaa Unix) tai freaks (omituiset, intoilijat, friikit). FTP-palvelimen ylläpitäjä Ari Lemmke ei kuitenkaan ollut pitänyt nimestä. Hän oli perustanut omalle xgw:n palvelimelleen Linux-nimisen käyttöalueen Torvaldsia varten.

Palautetta ja virheraportteja tuli valtavasti. Internetin ja avoimesti saatavilla olleen lähdekoodin ansiosta ihmiset eri puolilla maailmaa pääsivät kehittämään Linuxia. Ytimen versio 0.10 julkaistiin marraskuun alussa 1991, jolloin käyttäjiä oli 10–20. 0.10 oli ensimmäinen versio, joka oli käyttökelpoinen ilman Minixiä, jolloin Linus päätti nostaa versionumeron suoraan 0.03:sta 0.10:iin. 8. joulukuuta 1991 julkaistu versio 0.11 oli jo täysin itsenäisesti käytettävissä: ydin voitiin kääntää Linuxissa itsessään. Version 0.12 yhteydessä Linus kertoi aikomuksesta käyttää GPL-lisenssiä.[7] Kun versio 0.12 julkaistiin tammikuussa 1992, Linuxin parissa työskenteli aktiivisesti lähes kaksisataa ihmistä. Tuolloin ydin oli jo vakaa ja toimiva. Yhdessä GNU-hankkeen luomien työkalujen kanssa siitä oli rakennettavissa kokonainen käyttöjärjestelmä. Linux alkoi levitä nopeasti. Vielä samana vuonna saatiin valmiiksi toimiva ja graafisella käyttöliittymällä varustettu työpöytä-Linux PC-koneisiin. Näihin aikoihin Linuxista kiinnostuttiin myös yliopistomaailman ulkopuolella.

Linuxin varhaiset versiot oli julkaistu Torvaldsin itse kirjoittamalla lisenssillä, joka ei sallinut ytimen levitystä rahaa vastaan. Linus ilmoitti version 0.12 julkistuksen yhteydessä siirtyvänsä käyttämään GNU GPL -lisenssiä 1. helmikuuta 1992 lähtien.[8] Nykyinen lisenssi on GPL versio 2 ja Torvalds on sanonut vastustavansa siirtymistä versioon 3 sen lisäämien käyttörajoituksien vuoksi.[9]

Torvalds on kuvaillut päätöstään julkaista Linux-ydin GPL-lisenssillä parhaaksi tekemäkseen asiaksi.[10]

Torvalds johtaa edelleen Linuxin ohjelmointityötä. Linux on avoimen lähdekoodin ohjelmisto ja siihen voi kuka tahansa tehdä muutoksia. Mikäli haluaa omat muutoksensa Linuxin viralliseen versioon, ne tulee toimittaa Linux Kernel -postituslistalle, jolloin ohjelmakoodi kulkee Torvaldsin tai hänen luottohenkilöidensä kautta.

Linux-aikajana[muokkaa | muokkaa wikitekstiä]

Linux-ytimen versioita:[11]

  • Linux 0.01 julkaistiin 17. syyskuuta 1991.
  • Linux 0.02 julkaistiin 5. lokakuuta 1991.
  • Linux 0.03 julkaistiin lokakuussa 1991.
  • Linux 0.10 julkaistiin marraskuussa 1991.
  • Linux 0.11 julkaistiin 8. joulukuuta 1991: itsenäisesti toimiva versio, jossa kerneli voitiin kääntää ajamalla samaa versiota Linuxista.
  • Linux 1.0 julkaistiin maaliskuussa 1994.
  • Linux 1.2 maaliskuussa 1995 lisäsi tuen Alpha-, SPARC- ja MIPS-suorittimille ja ELF-binääritiedostomuodolle.
  • Linux 2.0 kesäkuussa 1996 mahdollisti käytön usealla suorittimella yhtä aikaa (monisuoritintuki) sekä tuen m68k- ja PowerPC-arkkitehtuureille.
  • Linux 2.2 tammikuussa 1999 lisäsi televisiokorttien tuen, bittikarttagrafiikkaa tukevan konsolin ja IPv6-tuen.
  • Linux 2.2.13 joulukuussa 1999 lisäsi tuen IBM:n S/390 suurtietokoneille[12]
  • Linux 2.4 tammikuussa 2001 lisäsi ISA-PnP-, USB- ja PCMCIA-tuen, sekä tuen yli 2 GiB tiedostoille (LFS) ja ext3- ja ReiserFS-tiedostojärjestelmät (ReiserFS versiossa 2.4.1). Versio 2.4.6 lisäsi Bluetooth-tuen.
  • Linux 2.5.43 lokakuussa 2002 lisäsi Read-Copy-Update (RCU) mekanismin tuen[11][13]
  • Linux 2.6 joulukuussa 2003 lisäsi XFS- ja JFS-tiedostojärjestelmät, sisälsi uudet ALSA-ääni- ja syöttölaitteiden ajurit, NPTL-säikeistyksen tuen ja tehosti käyttöä suurissa järjestelmissä.
  • Linux 3.0 heinäkuussa 2011. Torvalds ilmoitti muuttavansa versionumeroa Linuxin 20-vuotispäivien kunniaksi.[14]
  • Linux 3.1 lokakuussa 2011 lisäsi tuen OpenRISC-suorittimelle ja NFC-siruille.[15]
  • Linux 3.7 vuonna 2012 yhtenäisti tuen ARM-pohjaisille järjestelmäpiireille[16]
  • Linux 3.8 vuonna 2013 lisäsi tuen käyttäjien nimiavaruuksille[17]
  • Linux 4.0 huhtikuussa 2015 lisäsi tuen ytimen korjauspäivityksille ilman tarvetta koko järjestelmän uudelleenkäynnistykselle (live patching), tuki Intelin Skylake-alustalle, tuki Intelin Quark-piireille, tuki PlayStation 3 -konsolille, tuki äänelle DisplayPort-väylän kautta AMD:n Radeon-ohjainten avoimissa ajureissa.[18]
  • Linux 4.11 huhtikuussa 2017 lisäsi tuen muun muassa liitännäisille IO-skedulereille.[19]

Arvo[muokkaa | muokkaa wikitekstiä]

Linux-ytimen uudelleenkehittämisen arvosta on esitetty useita arvioita: maaliskuussa 2011 sen arvioitiin olevan 3 miljardia Yhdysvaltain dollaria ja kasvavan.[20][21]

Kesällä 2015 ytimen versiossa 4.1 oli yli 19,5 miljoonaa lähdekoodiriviä.[22]

Kehittäjät[muokkaa | muokkaa wikitekstiä]

Linux Foundationin julkaiseman raportin mukaan kehitykseen on osallistunut yli 13 500 kehittäjää yli 1 300 yrityksestä.[23]

Katso myös[muokkaa | muokkaa wikitekstiä]

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. https://www.kernel.org
  2. Torvalds, Linus: Linux 4.12 Viitattu 3.7.2017.
  3. Torvalds, Linus: Linux 4.12 Viitattu 3.7.2017.
  4. a b Torvalds, Linus: What would you like to see most in minix? Viitattu 5.8.2017.
  5. a b Torvalds, Linus: Notes for linux release 0.01 Viitattu 5.8.2017.
  6. Torvalds, Linus: Free minix-like kernel sources for 386-AT Viitattu 5.8.2017.
  7. Torvalds, Linus: RELEASE NOTES FOR LINUX v0.12 Viitattu 5.8.2017.
  8. http://www.kernel.org/pub/linux/kernel/Historic/old-versions/RELNOTES-0.12
  9. Linus Torvalds says GPL v3 violates everything that GPLv2 stood for Viitattu 3.7.2017.
  10. Hiroo Yamagata: The Pragmatist of Free Software, Linus Torvalds Interview, 30 September 1997
  11. a b LinuxVersions KernelNewbies. Viitattu 6.8.2017.
  12. Linux/390 - Notes and Observations Viitattu 6.8.2017. (englanniksi)
  13. McKenney, Paul: What is RCU, Fundamentally? LWN.net. Viitattu 6.8.2017.
  14. Torvalds, Linus: Linux 3.0 release LWN.net. Viitattu 6.8.2017.
  15. Linux 3.1 Released With Support for the OpenRISC CPU Slashdot. Viitattu 6.8.2017.
  16. One Linux for all ARM systems ZDNet. Viitattu 6.8.2017.
  17. Namespaces in operation, part 5: User namespaces Viitattu 14.2.2017.
  18. Linux 4.0 released Viitattu 6.8.2017. (englanniksi)
  19. Linux 4.11 Kernelnewbies. Viitattu 6.8.2017. (englanniksi)
  20. Wheeler, David A.: The Linux Kernel: It’s Worth More! Viitattu 6.8.2017. (englanniksi)
  21. The Cost of Linux Viitattu 6.8.2017. (englanniksi)
  22. Larabel, Michael: Linux Kernel At 19.5 Million Lines Of Code, Continues Rising Phoronix. Viitattu 6.8.2017.
  23. Linux Kernel Development Report 2016 Linux Foundation. Viitattu 6.8.2017. (englanniksi)

Kirjallisuutta[muokkaa | muokkaa wikitekstiä]

  • Bovet, Daniel P.; Cesati, Marco: Understanding the Linux Kernel. O'Reilly, 2005 (2000). ISBN 0-596-00565-2.
  • Corbet, Jonathan; Rubini, Alessandro; Kroah-Hartman, Greg: Linux Device Drivers. O'Reilly, 2005 (1998). ISBN 0-596-00590-3.
  • Benvenuti, Christian: Understanding Linux Network Internals. O'Reilly, 2006. ISBN 0-596-00255-6.
  • Hallinan, Christopher: Embadded Linux Primer: A Practical, Real-World Approach. Prentice-Hall, 2007. ISBN 0-13-167984-8.

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

Commons
Wikimedia Commonsissa on kuvia tai muita tiedostoja aiheesta Linux (ydin).
  • [1] Torvaldsin ilmoitus Linuxin versiosta 0.02 Internetin postituslistalla vuonna 1991 (englanniksi)
  • kernel.org Linux-ydin (englanniksi)
  • Linux.fi – suomenkielinen Linux-aiheinen wiki, joka sisältää tietoa ja vinkkejä Linuxiin käyttöön
  • [2] Helsingin yliopiston 4.9.2006 järjestämän Linuxin 15-vuotisseminaarin sivu