logo

Jedro v operacijskem sistemu

Jedro je osrednja komponenta operacijskega sistema, ki upravlja delovanje računalnika in strojne opreme. V bistvu upravlja operacije pomnilnika in časa procesorja. Je glavna komponenta operacijskega sistema. Jedro deluje kot most med aplikacijami in obdelavo podatkov, ki se izvaja na ravni strojne opreme z uporabo medprocesne komunikacije in sistemskih klicev.

Jedro se najprej naloži v pomnilnik, ko se naloži operacijski sistem, in ostane v pomnilniku, dokler se operacijski sistem znova ne zaustavi. Odgovoren je za različne naloge, kot so upravljanje diska, upravljanje opravil in upravljanje pomnilnika.



Kernel ima tabelo procesov, ki spremlja vse aktivne procese
• Tabela procesov vsebuje regijsko tabelo za vsak proces, katere vstop kaže na vnose v regijski tabeli.

Jedro naloži izvršljivo datoteko v pomnilnik med sistemskim klicem »exec«.

Odloča, kateri proces je treba dodeliti procesorju za izvedbo in kateri proces naj se ohrani v glavnem pomnilniku za izvedbo. V bistvu deluje kot vmesnik med uporabniškimi aplikacijami in strojno opremo. Glavni cilj jedra je upravljanje komunikacije med programsko opremo, tj. aplikacijami na ravni uporabnika, in strojno opremo, tj. CPU in diskovnim pomnilnikom.



Cilji jedra:

  • Za vzpostavitev komunikacije med aplikacijo na ravni uporabnika in strojno opremo.
  • Za določitev stanja vhodnih procesov.
  • Za nadzor upravljanja diskov.
  • Za nadzor upravljanja pomnilnika.
  • Za nadzor upravljanja nalog.

Vrste jedra:

1. Monolitno jedro



Je ena od vrst jedra, kjer vse storitve operacijskega sistema delujejo v prostoru jedra. Ima odvisnosti med komponentami sistema. Ima ogromno vrstic kode, ki je zapletena.

primer:

Unix, Linux, Open VMS, XTS-400 etc.>

Prednost:
1. Učinkovitost: Monolitna jedra so na splošno hitrejša od drugih vrst jeder, ker jim ni treba preklapljati med uporabniškim in jedrnim načinom za vsak sistemski klic, kar lahko povzroči preobremenitev.

2. Tesna integracija: Ker se vse storitve operacijskega sistema izvajajo v prostoru jedra, lahko učinkoviteje komunicirajo med seboj, kar olajša izvajanje kompleksnih funkcionalnosti in optimizacij.

3. Enostavnost: Monolitna jedra so enostavnejša za načrtovanje, implementacijo in odpravljanje napak kot druge vrste jeder, ker imajo enotno strukturo, ki olajša upravljanje kode.

4. Nižja latenca: Monolitna jedra imajo nižjo zakasnitev kot druge vrste jeder, ker lahko sistemske klice in prekinitve obravnava neposredno jedro.

Slabost:

1. Težave s stabilnostjo: Monolitna jedra so lahko manj stabilna kot druge vrste jeder, ker lahko vsak hrošč ali varnostna ranljivost v storitvi jedra vpliva na celoten sistem.

2. Varnostne ranljivosti: Ker se vse storitve operacijskega sistema izvajajo v prostoru jedra, lahko vsaka varnostna ranljivost v eni od storitev ogrozi celoten sistem.

3. Težave pri vzdrževanju: Monolitna jedra je lahko težje vzdrževati kot druge vrste jeder, ker lahko vsaka sprememba v eni od storitev vpliva na celoten sistem.

4. Omejena modularnost: Monolitna jedra so manj modularna kot druge vrste jeder, ker so vse storitve operacijskega sistema tesno integrirane v prostor jedra. Zaradi tega je težje dodati ali odstraniti funkcionalnost, ne da bi to vplivalo na celoten sistem.
2. Mikro jedro
Vrste jedra imajo minimalističen pristop. Ima navidezni pomnilnik in razporejanje niti. Bolj je stabilen z manj storitvami v prostoru jedra. Počiva v uporabniškem prostoru.

Uporablja se v majhnih os.

Primer:

Mach, L4, AmigaOS, Minix, K42 etc.>

Prednosti:

1. Zanesljivost: Arhitektura mikrojeder je zasnovana tako, da je zanesljivejša od monolitnih jeder. Ker se večina storitev operacijskega sistema izvaja zunaj prostora jedra, nobena napaka ali varnostna ranljivost v storitvi ne bo vplivala na celoten sistem.

java primerjava

2. Prilagodljivost : Arhitektura mikrojeder je bolj prilagodljiva kot monolitna jedra, ker omogoča dodajanje ali odstranjevanje različnih storitev operacijskega sistema brez vpliva na celoten sistem.

3. Modularnost: Arhitektura mikrojeder je bolj modularna kot monolitna jedra, ker vsaka storitev operacijskega sistema deluje neodvisno od drugih. To olajša vzdrževanje in odpravljanje napak v sistemu.

4. Prenosljivost: Arhitektura mikrojedra je bolj prenosljiva kot monolitna jedra, ker večina storitev operacijskega sistema deluje zunaj prostora jedra. To olajša prenos operacijskega sistema na različne arhitekture strojne opreme.

Slabosti:

1. Zmogljivost: Arhitektura mikrojedra je lahko počasnejša od monolitnih jeder, ker zahteva več kontekstnih preklopov med prostorom uporabnika in prostorom jedra.

2. Kompleksnost: Arhitektura mikrojedra je lahko bolj zapletena kot monolitna jedra, ker zahteva več komunikacijskih in sinhronizacijskih mehanizmov med različnimi storitvami operacijskega sistema.

3. Razvojne težave: Razvoj operacijskih sistemov, ki temeljijo na arhitekturi mikrojeder, je lahko težji od razvoja monolitnih jeder, ker zahteva več pozornosti do podrobnosti pri načrtovanju komunikacijskih in sinhronizacijskih mehanizmov med različnimi storitvami.

4. Večja poraba virov: Arhitektura mikrojedra lahko uporablja več sistemskih virov, kot sta pomnilnik in CPE, kot monolitna jedra, ker zahteva več komunikacijskih in sinhronizacijskih mehanizmov med različnimi storitvami operacijskega sistema.

3. Hibridno jedro –
Je kombinacija monolitnega jedra in mikrojedra. Ima hitrost in zasnovo monolitnega jedra ter modularnost in stabilnost mikrojedra.

Primer:

Windows NT, Netware, BeOS etc.>

Prednosti:

1. Zmogljivost: Hibridna jedra lahko ponudijo boljšo zmogljivost kot mikrojedra, ker zmanjšajo število potrebnih kontekstnih preklopov med prostorom uporabnika in prostorom jedra.

2. Zanesljivost: Hibridna jedra lahko ponudijo boljšo zanesljivost kot monolitna jedra, ker izolirajo gonilnike in druge komponente jedra v ločenih zaščitnih domenah.

3. Prilagodljivost: Hibridna jedra lahko ponudijo boljšo prilagodljivost kot monolitna jedra, ker omogočajo dodajanje ali odstranjevanje različnih storitev operacijskega sistema, ne da bi to vplivalo na celoten sistem.

4. Združljivost: Hibridna jedra so lahko bolj združljiva kot mikrojedra, ker lahko podpirajo širši nabor gonilnikov naprav.

Slabosti:

1. Kompleksnost: Hibridna jedra so lahko bolj zapletena kot monolitna jedra, ker vključujejo tako monolitne kot mikrojedrne komponente, kar lahko oteži načrtovanje in izvedbo.

2. Varnost: Hibridna jedra so lahko manj varna kot mikrojedra, ker imajo večjo napadalno površino zaradi vključitve monolitnih komponent.

3. Vzdrževanje: Hibridna jedra je lahko težje vzdrževati kot mikrojedra, ker imajo bolj zapleteno zasnovo in izvedbo.

4. Poraba virov: Hibridna jedra lahko porabijo več sistemskih virov kot mikrojedra, ker vključujejo tako monolitne komponente kot mikrojedra.

4. Jedro Exo –
To je vrsta jedra, ki sledi načelu od konca do konca. Ima čim manj abstrakcij strojne opreme. Aplikacijam dodeli fizične vire.

Primer:

Nemesis, ExOS etc.>

Prednosti:

1. Prilagodljivost: Exokernels ponujajo najvišjo stopnjo prilagodljivosti, kar omogoča razvijalcem, da prilagodijo in optimizirajo operacijski sistem za svoje posebne potrebe aplikacij.

2. Zmogljivost: Exokernels so zasnovana tako, da zagotavljajo boljšo zmogljivost kot tradicionalna jedra, ker odpravljajo nepotrebne abstrakcije in aplikacijam omogočajo neposreden dostop do virov strojne opreme.

3. Varnost: Exokernels zagotavljajo boljšo varnost kot tradicionalna jedra, ker omogočajo natančen nadzor nad dodeljevanjem sistemskih virov, kot sta pomnilnik in čas procesorja.

4. Modularnost: Exokernels so zelo modularni, kar omogoča enostavno dodajanje ali odstranjevanje storitev operacijskega sistema.

Slabosti:

1. Kompleksnost: Zunanja jedra so lahko bolj zapletena za razvoj kot tradicionalna jedra, ker zahtevajo večjo pozornost do podrobnosti in skrbno upoštevanje dodeljevanja sistemskih virov.

2. Razvojne težave: Razvijanje aplikacij za eksojedra je lahko težje kot za tradicionalna jedra, ker morajo biti aplikacije napisane za neposreden dostop do virov strojne opreme.

3. Omejena podpora: Exokernels so še vedno nastajajoča tehnologija in morda nimajo enake ravni podpore in virov kot tradicionalna jedra.

4. Težave pri odpravljanju napak: Razhroščevanje aplikacij in storitev operacijskega sistema na zunanjih jedrih je lahko težje kot na tradicionalnih jedrih zaradi neposrednega dostopa do virov strojne opreme.

5. Nano jedro –
To je tip jedra, ki ponuja abstrakcijo strojne opreme, vendar brez sistemskih storitev. Micro Kernel tudi nima sistemskih storitev, zato sta Micro Kernel in Nano Kernel postala analogna.

Primer:

EROS etc.>

Prednosti:

1. Majhna velikost: Nanojedra so zasnovana tako, da so izjemno majhna in zagotavljajo le najbolj bistvene funkcije, potrebne za delovanje sistema. Zaradi tega so lahko učinkovitejši in hitrejši od drugih vrst jeder.

2. Visoka modularnost: Nanojedra so zelo modularna, kar omogoča enostavno dodajanje ali odstranjevanje storitev operacijskega sistema, zaradi česar so bolj prilagodljiva in prilagodljiva kot tradicionalna monolitna jedra.

3. Varnost: Nanojedra zagotavljajo boljšo varnost kot tradicionalna jedra, ker imajo manjšo napadalno površino in zmanjšano tveganje za napake ali hrošče v kodi.

4. Prenosljivost: Nanojedra so zasnovana tako, da so zelo prenosljiva, kar jim omogoča delovanje na številnih arhitekturah strojne opreme.

Slabosti:

1. Omejena funkcionalnost: Nanojedra zagotavljajo le najnujnejše funkcije, zaradi česar so neprimerna za kompleksnejše aplikacije, ki zahtevajo širši nabor storitev.

2. Kompleksnost: Ker nanojedra zagotavljajo le bistveno funkcionalnost, so lahko bolj zapletena za razvoj in vzdrževanje kot druge vrste jeder.

3. Zmogljivost: Čeprav so nanojedra zasnovana za učinkovitost, njihov minimalistični pristop v določenih situacijah morda ne bo mogel zagotoviti enake ravni zmogljivosti kot druge vrste jeder.

4. Združljivost: Zaradi svoje minimalistične zasnove nanojedra morda niso združljiva z vsemi konfiguracijami strojne in programske opreme, kar omejuje njihovo praktično uporabo v določenih kontekstih.