137 856
muudatust
Resümee puudub |
PResümee puudub |
||
{{Keeletoimeta|kuu=veebruar|aasta=2022}}
[[Pilt:Kernel Layout.svg|right|thumb| Tuum ja infoedastus ]]
'''Tuum''' ehk '''kernel''' on [[operatsioonisüsteem]]i keskne osa, mis suhtleb vahetult [[riistvara]]ga.
▲'''Tuum''' ehk '''kernel''' on [[operatsioonisüsteem]]i keskne osa, mis suhtleb vahetult [[riistvara]]ga. Kihilise arhitektuuriga arvutisüsteemide puhul võib tuuma vastandiks mõelda [[kest]]a, mille ülesanne on suhelda kasutajaga. Tuum on ka esimene osa operatsioonisüsteemist, mis laetakse arvuti käivitamisel mällu. Oma olulisuse pärast operatsioonisüsteemi ohjamisel, laetakse tuuma lähtekood mälus kaitstud piirkonda, et välistada tuuma ülekirjutamist teiste programmide poolt.<ref>http://www.linfo.org/kernel.html
</ref>
Tuuma peamine ülesanne on hallata arvuti riistvara
Kerneli liideseks operatsioonisüsteemis on madala taseme abstraktsioonikiht ning tuuma hallatavad protsessid peavad küsima tuuma käest ressurssi (mitte otse suhtlema seadmega), tavaliselt läbi [[süsteemikutsung]]ite.
[[Muutmälu]] kasutatakse, et hoiustada nii programmi vaheandmeid kui ka koodi. Tänapäevased operatsioonisüsteemid haldavad mitmeid programme korraga ning mõnikord vajavad programmid rohkem mälu kui riistvaraliselt on saadaval. Tuuma ülesandeks on jagada programmide vahel mälu ning otsustada mida teha, kui piisavalt muutmälu ei ole saadaval
Kernelil on täisligipääs süsteemi muutmälule ja kernel vastutab programmidele mälu jagamise eest. Esimene samm selle tagamiseks on mälu
Tuum jagab ka muutmälu
==Seadmete haldus==
Programmide kasulik töö tagamiseks peab tavaliselt programmil olema ligipääs seadmetele mis on riistvaraga ühendatud. Seadmetega suhtlus kernelis käib läbi seadmedraiveri. [[Seadmedraiver]] on vaheprogramm mis suhtleb riistvaraga ning tõlgib kõrgtaseme keele suhtluse masinkoodiks.
Tuum haldab ka nimekirja riistvaralistest seadmetest ning tekitab vastavad ligipääsupunktid tagamiseks programmide suhtluse seadmetega. Seadmete nimekiri võib olla eelnevalt teada, näiteks sardsüsteemides, kus kerneli ülesanne on spetsiifiline ja riistvara kitsahaardeline. Seadmete nimekirja võib ka käigu pealt tekitada (isehäälestuvalt), kus seadmehaldur (kernel) kõigepealt
==Kernelitüübid==
===Monoliitsed===
Monoliitse kerneli puhul kõik operatsioonisüsteemi protsessid asuvad samas mälusaalis. Monoliitne kernel sisaldab kogu vajalikku koodi mida operatsioonisüsteemil on riistvara kasutamiseks vaja ning mida ei ole pärast kerneli laadimist võimalik teegist võtta.
Monoliitse struktuuriga kernel kasutab oma töös peamiselt süsteemikutsungeid, sest kogu seadme funktsionaalsus on pakitud kerneliga kaasa ning väliseid teeke ei
Monoliitsel disainil peamisteks vigadeks on
* Kerneli arendamine osutub tihtipeale keerulisemaks, sest kogu kerneli kood asub ühes tükis.
* Vead ühes koodiosas väljenduvad tugevalt teises koodiosas. Kogu kernel
* Monoliitsed kernelid on vähem vastuvõtvad riistvaramuudatustele, uue arhitektuuri kasutamiseks tuleb terve kernel üle kirjutada
===Mikrokernel===
Mikrokernel üritab hoida võimalikult palju protsesse kasutajaruumis, tagades süsteemi minimaalse jalajälje mälus. Mikrokernelis
Mikrokerneli peamisteks tugevusteks loetakse hallatavust ja arenduslihtsust. Lisaks loetakse mikrokerneleid stabiilsemateks, kuna ühe koodi krahhi puhul saab selle asendada toimiva koopiaga käigu pealt.
Küll aga on peamiseks mikrokerneli nõrkuseks jõudlus. Suhtlus
===Hübriidkernel===
Hübriidkerneli disainifilosoofia üritab parandada monoliitse ja mikrokerneli vigu. Hübriidkernelis
Hübriidkerneli arendamine on ka hõlpsam, kuna tegu ei ole enam monoliitse koodibaasiga, vaid mooduleid saab vastavalt arendada. Lisaks saab mooduleid ka käigupealt ümber laadida, lubades arendajatel oma muudatusi testida ilma masinat taaskäivitamata.
|