Mikä on ydin tietokoneessa?

Useimmissa tietokoneiden käyttöjärjestelmissä ydin on keskeinen osa. Se on silta käyttäjän ja sovellusten ja tietokoneen laitteiston välillä. Se on myös mekanismi, jonka avulla tietokone voi käsitellä useita käyttäjiä ja useita tehtäviä samanaikaisesti. Ytimet ovat monoliittinen ydin, mikroydin, hybridiydin, nanokerneli ja eksokerneli.

Ydin hallinnoi kaikkia tietokoneen järjestelmäresursseja. Tämä sisältää pitkäaikaisen tallennuksen, keskusyksikön (CPU), lyhytaikaisen muistin sekä tulo- ja lähtölaitteet. Kun sovellus tarvitsee jonkin näistä resursseista, ydin asettaa resurssin saataville ja suorittaa pyynnön.

Tämä resurssien käsittely mahdollistaa käyttöjärjestelmien sekä monen käyttäjän että moniajon. Käyttöjärjestelmä ei itse asiassa suorita useampaa kuin yhtä tehtävää kerrallaan. Sen sijaan ydin vaihtaa tehtäviä niin suurella nopeudella, että tietokone näyttää suorittavan useita tehtäviä. Ydin on myös vastuussa siitä, että yhden käyttäjän tai prosessin käyttämät resurssit eivät loukkaa toisen käyttäjän tai prosessin pyyntöä.

On olemassa kaksi päätyyppiä ytimiä: monoliittinen ydin ja mikroydin. Monoliittiset ytimet käyttävät resurssienhallinnan valvontamenetelmää, jossa kaikki käyttöjärjestelmäpalvelut suoritetaan samassa osoitetilassa, jota kutsutaan ytimen tilaksi. Jotkut monoliittiset ytimet voivat ladata ja poistaa suoritettavia moduuleja. Tämä laajentaa käyttöjärjestelmän mahdollisuuksia säilyttäen silti minimimäärän koodia, joka on käynnissä ytimen sisällä kerrallaan.

Mikroydimet käyttävät vain vähimmäismäärää käyttöjärjestelmäpalveluja, kuten muistinhallintaa, säikeidenhallintaa ja prosessien välistä viestintää ytimessä. Kaikki muut palvelut, kuten laiteajurit, käyttöliittymät ja tiedostojen hallinta, suoritetaan käyttäjätilassa. Mikroydin minimoi jyrkästi ytimessä käytettävän koodin määrän.

Hybridiydin on monoliittisten ja mikroydinten yhdistelmä. Suurin osa käyttöjärjestelmän järjestelmäpalveluista suoritetaan ytintilassa, kuten monoliittinen ydin. On myös muita palveluita, kuten tiedostojärjestelmä ja ikkunajärjestelmä, joita ajetaan käyttäjätilassa.
Muut ytimet ovat nanokernel ja exokernel. Nanokernel käyttää laiteajureita lähes kaikkien palvelujen käsittelyyn. Exokernel käyttää ohjelmia fyysisten resurssien jakamiseen.