Ydin on keskeinen osa käyttöjärjestelmää, joka hallitsee tietokoneen ja laitteiston toimintaa. Se pohjimmiltaan hallitsee muistin ja suorittimen ajan toimintoja. Se on käyttöjärjestelmän ydinkomponentti. Ydin toimii siltana sovellusten ja laitteistotasolla suoritetun tietojenkäsittelyn välillä käyttämällä prosessien välistä viestintää ja järjestelmäkutsuja.
Ydin latautuu ensin muistiin, kun käyttöjärjestelmä ladataan, ja pysyy muistissa, kunnes käyttöjärjestelmä suljetaan uudelleen. Se vastaa erilaisista tehtävistä, kuten levynhallinnasta, tehtävienhallinnasta ja muistinhallinnasta.
Ytimessä on prosessitaulukko, joka pitää kirjaa kaikista aktiivisista prosesseista
• Prosessitaulukko sisältää prosessikohtaisen aluetaulukon, jonka sisääntulo osoittaa aluetaulukon merkintöihin.
Ydin lataa suoritettavan tiedoston muistiin 'exec'-järjestelmäkutsun aikana.
Se päättää, mikä prosessi tulee varata suoritettavalle suorittimelle ja mikä prosessi tulee säilyttää päämuistissa suoritettavaa varten. Se toimii periaatteessa käyttöliittymänä käyttäjäsovellusten ja laitteiston välillä. Ytimen päätavoite on hallita ohjelmistojen eli käyttäjätason sovellusten ja laitteiston eli suorittimen ja levymuistin välistä viestintää.
Ytimen tavoitteet:
- Luodaan tiedonsiirto käyttäjätason sovelluksen ja laitteiston välille.
- Päättää saapuvien prosessien tilasta.
- Levynhallinnan hallintaan.
- Muistinhallinnan ohjaamiseen.
- Hallitsemaan tehtävien hallintaa.
Ytimen tyypit:
1. Monoliittinen ydin –
Se on yksi ytimen tyypeistä, joissa kaikki käyttöjärjestelmäpalvelut toimivat ydintilassa. Sillä on riippuvuuksia järjestelmän komponenttien välillä. Siinä on valtavat koodirivit, jotka ovat monimutkaisia.
Esimerkki:
Unix, Linux, Open VMS, XTS-400 etc.>
Etu:
1. Tehokkuus: Monoliittiset ytimet ovat yleensä nopeampia kuin muun tyyppiset ytimet, koska niiden ei tarvitse vaihtaa käyttäjän ja ytimen tilan välillä jokaista järjestelmäkutsua varten, mikä voi aiheuttaa ylimääräisiä kustannuksia.
2. Tiivis integrointi: Koska kaikki käyttöjärjestelmäpalvelut toimivat ydintilassa, ne voivat kommunikoida tehokkaammin toistensa kanssa, mikä helpottaa monimutkaisten toimintojen ja optimointien toteuttamista.
3. Yksinkertaisuus: Monoliittiset ytimet ovat yksinkertaisempia suunnitella, toteuttaa ja korjata kuin muun tyyppiset ytimet, koska niillä on yhtenäinen rakenne, joka helpottaa koodin hallintaa.
4. Alempi latenssi: Monoliittisilla ytimillä on alhaisempi latenssi kuin muilla ytimillä, koska ydin voi käsitellä järjestelmäkutsut ja keskeytykset suoraan.
Haitta:
1. Vakausongelmat: Monoliittiset ytimet voivat olla vähemmän vakaita kuin muun tyyppiset ytimet, koska mikä tahansa ydinpalvelun virhe tai tietoturvaheikkous voi vaikuttaa koko järjestelmään.
2. Tietoturvahaavoittuvuudet: Koska kaikki käyttöjärjestelmän palvelut toimivat ydintilassa, minkä tahansa palvelun tietoturvaheikkous voi vaarantaa koko järjestelmän.
3. Huollon vaikeudet: Monoliittisia ytimiä voi olla vaikeampi ylläpitää kuin muun tyyppisiä ytimiä, koska kaikki muutokset yhdessä palvelussa voivat vaikuttaa koko järjestelmään.
4. Rajoitettu modulaarisuus: Monoliittiset ytimet ovat vähemmän modulaarisia kuin muun tyyppiset ytimet, koska kaikki käyttöjärjestelmän palvelut on integroitu tiiviisti ydintilaan. Tämä vaikeuttaa toimintojen lisäämistä tai poistamista vaikuttamatta koko järjestelmään.
2. Mikroydin –
Ydintyypeillä on minimalistinen lähestymistapa. Siinä on virtuaalimuisti ja säikeiden ajoitus. Se on vakaampi, kun ydintilassa on vähemmän palveluita. Se lepää käyttäjätilassa.
Sitä käytetään pienissä käyttöjärjestelmissä.
Esimerkki:
Mach, L4, AmigaOS, Minix, K42 etc.>
Edut:
1. Luotettavuus: Mikroydinarkkitehtuuri on suunniteltu luotettavammaksi kuin monoliittiset ytimet. Koska useimmat käyttöjärjestelmäpalvelut toimivat ydintilan ulkopuolella, palvelun virhe- tai tietoturvahaavoittuvuudet eivät vaikuta koko järjestelmään.
2. Joustavuus : Mikroydinarkkitehtuuri on joustavampi kuin monoliittiset ytimet, koska sen avulla voidaan lisätä tai poistaa erilaisia käyttöjärjestelmäpalveluita vaikuttamatta koko järjestelmään.
3. Modulaarisuus: Mikroydinarkkitehtuuri on modulaarisempi kuin monoliittiset ytimet, koska jokainen käyttöjärjestelmäpalvelu toimii itsenäisesti muista. Tämä helpottaa järjestelmän ylläpitoa ja virheenkorjausta.
4. Siirrettävyys: Mikroydinarkkitehtuuri on kannettavampi kuin monoliittiset ytimet, koska useimmat käyttöjärjestelmäpalvelut toimivat ydintilan ulkopuolella. Tämä helpottaa käyttöjärjestelmän siirtämistä erilaisiin laitteistoarkkitehtuureihin.
Haitat:
1. Suorituskyky: Mikroydinarkkitehtuuri voi olla hitaampi kuin monoliittiset ytimet, koska se vaatii enemmän kontekstin vaihtoa käyttäjätilan ja ydintilan välillä.
2. Monimutkaisuus: Mikroydinarkkitehtuuri voi olla monimutkaisempi kuin monoliittiset ytimet, koska se vaatii enemmän viestintä- ja synkronointimekanismeja eri käyttöjärjestelmäpalvelujen välillä.
3. Kehittämisvaikeus: Mikroydinarkkitehtuuriin perustuvien käyttöjärjestelmien kehittäminen voi olla vaikeampaa kuin monoliittisten ytimien kehittäminen, koska se vaatii enemmän huomiota yksityiskohtiin suunniteltaessa eri palveluiden välisiä viestintä- ja synkronointimekanismeja.
4. Suurempi resurssien käyttö: Mikroydinarkkitehtuuri voi käyttää enemmän järjestelmäresursseja, kuten muistia ja CPU:ta, kuin monoliittiset ytimet, koska se vaatii enemmän viestintä- ja synkronointimekanismeja eri käyttöjärjestelmäpalvelujen välillä.
3. Hybridiydin –
Se on sekä monoliittisen ytimen että mikroytimen yhdistelmä. Siinä on monoliittisen ytimen nopeus ja muotoilu sekä mikroytimen modulaarisuus ja vakaus.
Esimerkki:
Windows NT, Netware, BeOS etc.>
Edut:
1. Suorituskyky: Hybridiytimet voivat tarjota paremman suorituskyvyn kuin mikroytimet, koska ne vähentävät käyttäjätilan ja ydintilan välillä tarvittavien kontekstikytkimien määrää.
2. Luotettavuus: Hybridiytimet voivat tarjota paremman luotettavuuden kuin monoliittiset ytimet, koska ne eristävät ajurit ja muut ytimen komponentit erillisiin suojausalueisiin.
3. Joustavuus: Hybridiytimet voivat tarjota parempaa joustavuutta kuin monoliittiset ytimet, koska ne mahdollistavat eri käyttöjärjestelmän palvelujen lisäämisen tai poistamisen vaikuttamatta koko järjestelmään.
4. Yhteensopivuus: Hybridiytimet voivat olla yhteensopivampia kuin mikroytimet, koska ne voivat tukea laajempaa valikoimaa laiteajureita.
Haitat:
1. Monimutkaisuus: Hybridiytimet voivat olla monimutkaisempia kuin monoliittiset ytimet, koska ne sisältävät sekä monoliittisia että mikroydinkomponentteja, mikä voi vaikeuttaa suunnittelua ja toteutusta.
2. Turvallisuus: Hybridiytimet voivat olla vähemmän turvallisia kuin mikroytimet, koska niillä on suurempi hyökkäyspinta monoliittisten komponenttien vuoksi.
3. Huolto: Hybridiytimiä voi olla vaikeampi ylläpitää kuin mikroytimiä, koska niiden suunnittelu ja toteutus on monimutkaisempi.
4. Resurssien käyttö: Hybridiytimet voivat käyttää enemmän järjestelmäresursseja kuin mikroytimet, koska ne sisältävät sekä monoliittisia että mikroytimen komponentteja.
4. Exo-ydin –
Se on ytimen tyyppi, joka noudattaa päästä päähän -periaatetta. Siinä on mahdollisimman vähän laitteiston abstraktioita. Se jakaa fyysisiä resursseja sovelluksille.
Esimerkki:
Nemesis, ExOS etc.>
Edut:
1. Joustavuus: Exokernelit tarjoavat korkeimman tason joustavuutta, minkä ansiosta kehittäjät voivat mukauttaa ja optimoida käyttöjärjestelmän omien sovellustarpeidensa mukaan.
2. Suorituskyky: Exokernelit on suunniteltu tarjoamaan parempaa suorituskykyä kuin perinteiset ytimet, koska ne eliminoivat tarpeettomia abstraktioita ja antavat sovelluksille pääsyn suoraan laitteistoresursseihin.
3. Turvallisuus: Exokernelit tarjoavat paremman suojan kuin perinteiset ytimet, koska ne mahdollistavat järjestelmän resurssien, kuten muistin ja suorittimen ajan, allokoinnin tarkan hallinnan.
4. Modulaarisuus: Exokernelit ovat erittäin modulaarisia, mikä mahdollistaa käyttöjärjestelmäpalvelujen helpon lisäämisen tai poistamisen.
Haitat:
1. Monimutkaisuus: Exokernelien kehittäminen voi olla monimutkaisempaa kuin perinteiset ytimet, koska ne vaativat enemmän huomiota yksityiskohtiin ja huolellista järjestelmän resurssien allokointia.
2. Kehittämisvaikeus: Sovellusten kehittäminen eksokerneleille voi olla vaikeampaa kuin perinteisille ytimille, koska sovellukset on kirjoitettava päästäkseen suoraan laitteistoresursseihin.
3. Rajoitettu tuki: Exokernelit ovat edelleen kehittymässä oleva tekniikka, eikä niillä välttämättä ole samaa tukitasoa ja resursseja kuin perinteisillä ytimillä.
4. Vianetsintävaikeus: Sovellusten ja käyttöjärjestelmäpalvelujen virheenkorjaus exokerneleissä voi olla vaikeampaa kuin perinteisissä ytimissä, koska niillä on suora pääsy laitteistoresursseihin.
5. Nano-ydin –
Se on tyyppinen ydin, joka tarjoaa laitteiston abstraktion mutta ilman järjestelmäpalveluita. Micro Kernelillä ei myöskään ole järjestelmäpalveluita, joten Micro Kernelistä ja Nano-ytimestä on tullut analogisia.
Esimerkki:
EROS etc.>
Edut:
1. Pieni koko: Nanoytimet on suunniteltu erittäin pieniksi, ja ne tarjoavat vain tärkeimmät toiminnot, joita tarvitaan järjestelmän käyttämiseen. Tämä voi tehdä niistä tehokkaampia ja nopeampia kuin muut ydintyypit.
2. Korkea modulaarisuus: Nanoytimet ovat erittäin modulaarisia, mikä mahdollistaa käyttöjärjestelmäpalveluiden helpon lisäämisen tai poistamisen, mikä tekee niistä joustavampia ja muokattavampia kuin perinteiset monoliittiset ytimet.
uskontojen luettelo
3. Turvallisuus: Nanoytimet tarjoavat paremman suojan kuin perinteiset ytimet, koska niillä on pienempi hyökkäyspinta ja pienempi virheiden tai bugien riski koodissa.
4. Siirrettävyys: Nanoytimet on suunniteltu erittäin kannettaviksi, mikä mahdollistaa niiden käytön monenlaisissa laitteistoarkkitehtuureissa.
Haitat:
1. Rajoitettu toiminnallisuus: Nanoytimet tarjoavat vain tärkeimmät toiminnot, joten ne eivät sovellu monimutkaisempiin sovelluksiin, jotka vaativat laajempaa palveluvalikoimaa.
2. Monimutkaisuus: Koska nanoytimet tarjoavat vain välttämättömiä toimintoja, niiden kehittäminen ja ylläpito voi olla monimutkaisempaa kuin muiden ydintyyppien.
3. Suorituskyky: Vaikka nanoytimet on suunniteltu tehokkuutta varten, niiden minimalistinen lähestymistapa ei välttämättä pysty tarjoamaan samaa suorituskykyä kuin muut ydintyypit tietyissä tilanteissa.
4. Yhteensopivuus: Minimalistisen suunnittelunsa vuoksi nanoytimet eivät välttämättä ole yhteensopivia kaikkien laitteisto- ja ohjelmistokokoonpanojen kanssa, mikä rajoittaa niiden käytännön käyttöä tietyissä yhteyksissä.