Ero sivun ”Ydin” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
(Historia, toiminta lyhyesti monoliittisesta ytimestä.)
p (linkki korjattu)
 
(8 välissä olevaa versiota 4 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
{{perustietoa}}
{{perustietoa|Käyttöjärjestelmän_ydin}}
'''Monoliittinen Ydin''' eli '''monoliittinen kernel''' on kokonainen [[käyttöjärjestelmä]] yhdessä osoiteavaruudessa ja joka tarjoaa tietokoneen osat sekä oheislaitteet erilaisten ohjelmien käyttöön ja huolehtii käyttöoikeuksista ja resurssien jaosta [[prosessi]]en ja eri [[käyttäjä|käyttäjien]] kesken. Monoliittisen käyttöjärjestelmän, kuten Linuxin, tapauksessa käyttöjärjestelmä toimii kokonaan yksin ydintilassa ([[wikipedia:en:ring 0|ring 0]]) ja suojatussa tilassa ('''supervisor mode'''). Sen tarjotessa muille ohjelmistoille rajapinnat laitteiston käyttämiseksi ja halliten kaikkia muita ohjelmistoja. Monoliittista käyttöjärjestelmää ei pidä sekoittaa Asiakas-Palvelin (Server-Client) -käyttöjärjestelmäarkkitehtuuriin jossa ydin (mikroydin) on vain osa käyttöjärjestelmästä [http://www.amazon.com/gp/reader/0130313580/ref=sib_dp_pt/103-7158569-1619062#reader-link][http://www.topology.org/human/?a=/linux/lingl.html] [http://oreilly.com/catalog/opensources/book/appa.html].
'''Ydin''' eli '''kernel''' on [[käyttöjärjestelmä]]n keskeinen ohjelma, joka muun muuassa tarjoaa tietokoneen osat ohjelmien käyttöön sekä huolehtii käyttöoikeuksista ja resurssien jaosta [[prosessi]]en ja eri [[käyttäjä|käyttäjien]] kesken. Monoliittisen ytimen, kuten Linuxin, tapauksessa ydin toimii ydintilassa ([[wikipedia:en:Protection ring|ring 0]]) yhdessä osoiteavaruudessa. Ydin tarjoaa muille ohjelmille rajapinnat laitteiston ja ytimen luomien datarakenteiden käyttämiseksi.


Monoliittinen arkkitehtuuri eroaa muista käyttöjärjestelmäarkkitehtuureista merkittävästi. Se on alkuperäinen 60-luvulla kehitetty käyttöjärjestelmäarkkitehtuuri, millä ensimmäiset Unixit suunniteltiin. Tuolloin ohjelmisto joka tunnetaan nykyisin käyttöjärjestelmänä, tunnettiin paremmin muilla nimilä kuten ''Supervisor'', ''Master Program'', ''Kernel'', ''Core'' ja ''Operating System''. Myöhemmin monoliittinen rakenne alkoi tuottamaan ongelmia kun käyttöjärjestelmän koko kasvoi miljooniin riveihin eivätkä mahtuneet enää tietokoneen keskusmuistiin. Pahimpia ongelmia olivat kuitenkin bugit. Käyttöjärjestelmän toimiessa yhdessä osoiteavaruudessa tuotti ongelmia, kun käyttöjärjestelmän tietyn osan virheittä ei voitu eristää muista osista. Esimerkiksi virhettä verkkoprotokollassa ei voitu eristää vaan se vaikutti myös kaikkiin muihin käyttöjärjestelmän toimintoihin ja kaatoi käyttöjärjestelmän, jolloin koko ohjelmistojärjestelmä kaatui. Käyttäjä sai vain virheilmoituksen käyttöjärjestelmän kaatumisesta ruudulle, jota kutsuttiin tuolloinkin '''Kernel Panic''':ksi. Myös lähdekoodin ylläpidettävyys muodostoi hyvin hankalaksi, jos ei mahdottomaksi. Hyvin harva pysyi selvillä käyttöjärjestelmän toiminnoista mikä hidasti ja vaikeutti kehitystyötä vielä lisää.[http://www.gridbus.org/~raj/microkernel/chap2.pdf]
[[Jakelu|Linux]]-järjestelmien ytimenä toimii [[Linux (ydin)|Linux]], jonka kehityksen aloitti [[Linus Torvalds|Linus Torvalds]] vuonna 1991 opiskellessaan Helsingin yliopistossa. Linus Torvalds johtaa edelleen Linux-ytimen kehitystä. Mikäli ytimen kehitystyön seuraaminen kiinnostaa, KernelNewbies-sivustolta löytyy paljon dokumentaatiota asiasta, mm. uusimpien ydinversioiden keskeiset muutokset selväkielisenä sivulla


Rinnalle kehittyi uudenlainen käyttöjärjestelmän arkkitehtuuri, niin kutsuttu Palvelin-Asiakas (Server-Client). Palvelin-Asiakas -arkkitehtuurissa monoliittinen käyttöjärjestelmä jaoteltiin moduuleiksi joita kutsuttiin palvelimiksi. Jokainen palvelin suoritti käyttöjärjestelmän eri tehtävät itsenäisesti ja tarjosi palvelunsa niitä tarvitseville prosesseille. Jokaista palvelinta hallitsi mikroydin, hyvin yksinkertaiseksi suunniteltu ydin joka toteutti vain tärkeimmät käyttöjärjestelmän tehtävät. Jokainen palvelin toimi suojattuina prosesseina mikroytimeen ja ne olivat suojattu vielä jokaiselta toiselta palvelimelta, jolloin yhden palvelimen kaatuminen ei teoriassa vaikuttanut muihin mikroytimeen ja muihin palvelimiin [http://www.usenix.org/publications/login/2006-04/openpdfs/herder.pdf].
* https://kernelnewbies.org/LinuxChanges


Monoliittisen ja Asiakas-Palvelin -käyttöjärjestelmäarkkitehtuurien välillä on käyty useita kiistoja. 80- ja 90-luvulla suosiota saaneen Asiakas-Palvelin -arkkitehtuurin ennustettiin hävittävän monoliittisen-arkkitehtuurin. Tuolloin jo yli 90% käyttöjärjestelmistä olivat arkkitehtuuriltaan Asiakas-Palvelin -mallin mukaisia, vain muutamien Unixien säilyessä monoliittisina. Kuuluisin Asiakas-Palvelin -käyttöjärjestelmäarkkitehtuuria toteuttava käyttöjärjestelmä on alkuperäinen Mach 3.0. Myös aikoinaan vain koulutuskäyttöön suunniteltu Minix-käyttöjärjestelmä Professori Andrew S.Tanenbaumilta, on arkkitehtuuriltaan alkuperäisen Asiakas-Palvelin -mallin mukainen. Kuuluisimpia Palvelin-Asiakas / Monoliittinen -väittelyitä käytiin juurikin Linus Torvaldsin ja Andrew S.Tanenbaumin välillä uutisryhmissä. Linus aloitti Linux-käyttöjärjestelmän kehittämisen mm. sen vuoksi että hän ei ollut tyytyväinen Minixiin eikä Microsoftin MS-DOS -käyttöjärjestelmään.[http://oreilly.com/catalog/opensources/book/appa.html]
{{Huomautus|Koska pelkkä ydin ei itsessään ole käyttökelpoinen, Linux-ytimen ympärille rakentuva käyttöjärjestelmä tunnetaan [[jakelu]]na.}}


Andrew S.Tanenbaum väitti Linus Torvaldsin tehneen vakavan virheen kun valitsi käyttöjärjestelmänsä (Linux) arkkitehtuuriksi Monoliittisen eikä modernimpaa Palvelin-Asiakas -mallia. Väittelyssä mm. Minixin ja Machin eduiksi nostettiin vakaus, kehittämisen helppous että tietoturva. Linuxin eduiksi Andrew S.Tanenbaum kertoi vain nopeuden, joka oli eräs Monoliittisen käyttöjärjestelmän merkittäviä etuja. Mutta lopulta kaikki teoriassa kerrotut edut on kumottu teknisesti Monoliittisissa toteutuksissa kuten Linuxissa ja monissa muissa monoliittisissa käyttöjärjestelmissä.
==Versiot==
===Mainline===
''Pääartikkeli: [[Ydin/Mainline]]''


GNU-projektin oma [[HURD]]-käyttöjärjestelmäkin käyttää Asiakas-Palvelin -käyttöjärjestelmäarkkitehtuuria. GNU-projektin oman käyttöjärjestelmälle muodostui ongelma kun Linux kaappasi käyttöjärjestelmäkehittäjät HURD:n parista. HURD:ssa oli valmiina useat käyttöjärjestelmän palvelimet, mutta siitä puuttui mikroydin, jota HURD-kehittäjät ovat vaihtaneet useampaan kertaan. Tällä kertaa vielä HURD:ssa mikroytimenä toimii GNU projektin oma versio Machista, nimeltä GNU Mach. Myöhemmin Richard Stallman on myöntänyt että on ollut virhe valita GNU Mach -ytimeksi ja se on hidastanut HURD-käyttöjärjestelmän kehitystä. Vieläkään ei ole HURD-käyttöjärjestelmälle valittu vakinaista mikroydintä.
Mainline eli uusin saatavilla oleva ydin, joissa on uusimmat ominaisuudet, esim. ajurit ja laitteistotuki.
HURD-käyttöjärjestelmän epäonnisten vuosien aikana Richard Stallman on yrittänyt saada GNU-projektille mainetta väittäen Linuxin olevan oikeasti olevan GNU/Linux koska sen kehittämiseen on käytetty GNU-kehitystyökaluja ja koska käyttäjä ei tee pelkästään Linuxilla mitään vaan tarvitsee kehitystyökalut.
* https://www.kernel.org/


[[wikipedia:fi:Linux|Linux-järjestelmien]] (Linux-jakeluiden) käyttöjärjestelmänä toimii [[wikipedia:fi:Linux (ydin)|Linux]], jonka kehityksen aloitti [[Linus Torvalds|Linus Torvalds]] vuonna 1991 opiskellessaan Helsingin yliopistossa. Linus Torvalds johtaa edelleen Linux-käyttöjärjestelmän kehitystä. Mikäli kehitystyön seuraaminen kiinnostaa, KernelNewbies-sivustolta löytyy paljon dokumentaatiota asiasta, mm. uusimpien versioiden keskeiset muutokset selväkielisenä (sivulla [http://kernelnewbies.org/LinuxChanges LinuxChanges]).
===Stable===
''Pääartikkeli: [[Ydin/Stable]]''
 
Useiden eri jakeluiden ytimenä toimii stable eli vakaa Linux-ydin.
* https://www.kernel.org/
 
===Longterm===
''Pääartikkeli: [[Ydin/Longterm]]''
 
Longterm, eli pitkän ajan tuella varustettu vakaa Linux-ydin sekä moduulit. Näitä on usein useampia eri versioita saatavilla, niin 4.x-ytimellä kuin 5.x-ytimellä. Etenkin palvelimissa suosittu ydin.
* https://www.kernel.org/
 
===Hardened===
''Pääartikkeli: [[Ydin/Hardened]]''
 
Hardened, eli tietoturvasuuntaunut ydin on vahvistettu ytimessä ja [[User space]]ssa olevia haavoittuvuuksia vastaan.
* https://github.com/anthraxx/linux-hardened
 
===Zen===
''Pääartikkeli: [[Ydin/Zen]]''
 
Yhteistyöprojekti Linux-ytimen kehittäjien kesken, jonka tavoitteena on luoda paras Linux-ydin päivittäistä käyttöä varten ja kuten esim. multimediaa sekä pelaamista varten.
* https://liquorix.net/
* https://github.com/zen-kernel/zen-kernel
 
===Linux-libre===
''Pääartikkeli: [[Linux-libre]]''
 
Tavallisen ytimen sekä siihen perustuvien ytimien lisäksi saatavilla ainoastaan [[vapaa]]sta ja [[avoin lähdekoodi|avoimesta lähdekoodista]] koostuva ns. ''puhdistettu'' ydin, Linux-libre.
 
==Muut ytimet==
Jakeluista löytyy myös ei-Linux-ytimiä käyttäviä versioita.
 
===GNU Hurd===
''Pääartikkeli: [[GNU Hurd]]''
 
[[GNU]]-projektin omaksi vapaasta ja avoimesta lähdekoodista kehitetty ydin.
 
===FreeBSD===
''Pääartikkeli: [[FreeBSD]]''
 
FreeBSD:n ydin toimii myös Linux-pohjaisten jakeluiden kanssa.


==Katso myös==
==Katso myös==
Rivi 24: Rivi 67:


==Aiheesta muualla==
==Aiheesta muualla==
*[http://www.kernel.org/ Kernel.org]
*[https://www.kernel.org/ Kernel.org]
*[http://lkml.org/ Kernel-postituslistan arkistot]
*[https://lkml.org/ Kernel-postituslistan arkistot]
*[http://kernelnewbies.org/ Kernelnewbies.org] - tietoa ytimestä sekä ohjeita
*[https://kernelnewbies.org/ Kernelnewbies.org] - tietoa ytimestä sekä ohjeita


[[Luokka:Järjestelmä]]
[[Luokka:Järjestelmä]]
[[Luokka:Ydin]]
[[Luokka:Ydin]]

Nykyinen versio 21. maaliskuuta 2022 kello 19.39

Linux.fi-wikissä artikkelit käsittelevät yleensä aihettaan siltä osin, kuin se koskee Linuxia ja avoimia/vapaita ohjelmistoja. Yleisluontoisemman artikkelin tästä aiheesta löydät tietosanakirja Wikipediasta.

Ydin eli kernel on käyttöjärjestelmän keskeinen ohjelma, joka muun muuassa tarjoaa tietokoneen osat ohjelmien käyttöön sekä huolehtii käyttöoikeuksista ja resurssien jaosta prosessien ja eri käyttäjien kesken. Monoliittisen ytimen, kuten Linuxin, tapauksessa ydin toimii ydintilassa (ring 0) yhdessä osoiteavaruudessa. Ydin tarjoaa muille ohjelmille rajapinnat laitteiston ja ytimen luomien datarakenteiden käyttämiseksi.

Linux-järjestelmien ytimenä toimii Linux, jonka kehityksen aloitti Linus Torvalds vuonna 1991 opiskellessaan Helsingin yliopistossa. Linus Torvalds johtaa edelleen Linux-ytimen kehitystä. Mikäli ytimen kehitystyön seuraaminen kiinnostaa, KernelNewbies-sivustolta löytyy paljon dokumentaatiota asiasta, mm. uusimpien ydinversioiden keskeiset muutokset selväkielisenä sivulla

Huomautus: Koska pelkkä ydin ei itsessään ole käyttökelpoinen, Linux-ytimen ympärille rakentuva käyttöjärjestelmä tunnetaan jakeluna.


Versiot[muokkaa]

Mainline[muokkaa]

Pääartikkeli: Ydin/Mainline

Mainline eli uusin saatavilla oleva ydin, joissa on uusimmat ominaisuudet, esim. ajurit ja laitteistotuki.

Stable[muokkaa]

Pääartikkeli: Ydin/Stable

Useiden eri jakeluiden ytimenä toimii stable eli vakaa Linux-ydin.

Longterm[muokkaa]

Pääartikkeli: Ydin/Longterm

Longterm, eli pitkän ajan tuella varustettu vakaa Linux-ydin sekä moduulit. Näitä on usein useampia eri versioita saatavilla, niin 4.x-ytimellä kuin 5.x-ytimellä. Etenkin palvelimissa suosittu ydin.

Hardened[muokkaa]

Pääartikkeli: Ydin/Hardened

Hardened, eli tietoturvasuuntaunut ydin on vahvistettu ytimessä ja User spacessa olevia haavoittuvuuksia vastaan.

Zen[muokkaa]

Pääartikkeli: Ydin/Zen

Yhteistyöprojekti Linux-ytimen kehittäjien kesken, jonka tavoitteena on luoda paras Linux-ydin päivittäistä käyttöä varten ja kuten esim. multimediaa sekä pelaamista varten.

Linux-libre[muokkaa]

Pääartikkeli: Linux-libre

Tavallisen ytimen sekä siihen perustuvien ytimien lisäksi saatavilla ainoastaan vapaasta ja avoimesta lähdekoodista koostuva ns. puhdistettu ydin, Linux-libre.

Muut ytimet[muokkaa]

Jakeluista löytyy myös ei-Linux-ytimiä käyttäviä versioita.

GNU Hurd[muokkaa]

Pääartikkeli: GNU Hurd

GNU-projektin omaksi vapaasta ja avoimesta lähdekoodista kehitetty ydin.

FreeBSD[muokkaa]

Pääartikkeli: FreeBSD

FreeBSD:n ydin toimii myös Linux-pohjaisten jakeluiden kanssa.

Katso myös[muokkaa]

Aiheesta muualla[muokkaa]