logo

Što je Kernel?

U informatici, Kernel je računalni program koji je jezgra ili srce operativnog sustava. Prije detaljne rasprave o jezgri, prvo ćemo razumjeti njenu osnovu, tj. operativni sustav u računalu.

Operacijski sustav

Operativni sustav ili OS je sistemski softver koji radi kao sučelje između hardverskih komponenti i krajnjeg korisnika. Omogućuje pokretanje drugih programa. Svaki računalni sustav, bilo da se radi o stolnom računalu, prijenosnom računalu, tabletu ili pametnom telefonu, svi moraju imati operativni sustav za pružanje osnovnih funkcija za uređaj. Neki naširoko korišteni operativni sustavi su Windows , Linux , MacOS, Android , iOS itd.

Što je kernel u operativnom sustavu?

Što je Kernel
  • Kao što je gore objašnjeno, kernel je temeljni dio OS-a (operativnog sustava); stoga ima potpunu kontrolu nad svime u sustavu. Svakom operacijom hardvera i softvera upravlja i upravlja jezgra.
  • Djeluje kao most između aplikacija i obrade podataka na hardverskoj razini. To je središnja komponenta OS-a.
  • To je dio OS-a koji se uvijek nalazi u memoriji računala i omogućuje komunikaciju između softverskih i hardverskih komponenti.
  • To je računalni program koji se prvi učitava pri pokretanju sustava (nakon bootloadera). Nakon što se učita, upravlja preostalim pokretanjima. Također upravlja memorijskim, perifernim i I/O zahtjevima softvera. Štoviše, prevodi sve I/O zahtjeve u upute za obradu podataka za CPU. Upravlja i drugim zadacima kao upravljanje memorijom, upravljanje zadacima i upravljanje diskom .
  • Kernel se čuva i obično učitava u poseban memorijski prostor, poznat kao zaštićen prostor kernela. Zaštićen je od pristupa aplikacijskim programima ili manje važnim dijelovima OS-a.
  • Ostali aplikacijski programi kao što su preglednik, program za obradu teksta, audio i video player koriste odvojeni memorijski prostor poznat kao korisnički prostor.
  • Zbog ova dva odvojena prostora, korisnički podaci i kernel podaci ne ometaju jedni druge i ne uzrokuju nikakvu nestabilnost i sporost.

Funkcije kernela

Jezgra OS-a odgovorna je za izvođenje raznih funkcija i ima kontrolu nad sustavom. Neke glavne odgovornosti Kernela navedene su u nastavku:

    Upravljanje uređajem
    Za izvođenje različitih radnji procesi zahtijevaju pristup perifernim uređajima poput miša, tipkovnice itd. koji su povezani s računalom. Kernel je odgovoran za kontrolu ovih uređaja pomoću upravljačkih programa uređaja. Ovdje, a upravljački program uređaja je računalni program koji pomaže ili omogućuje OS-u da komunicira s bilo kojim hardverskim uređajem.
    Kernel održava popis svih dostupnih uređaja, a taj popis može biti već poznat, konfiguriran od strane korisnika ili otkriven od strane OS-a tijekom izvođenja.Upravljanje memorijom
    Kernel ima punu kontrolu nad pristupom memoriji računala. Svaki proces zahtijeva nešto memorije za rad, a kernel omogućuje procesima siguran pristup memoriji. Za dodjelu memorije, prvi korak je poznat kao virtualno adresiranje, što se radi straničenjem ili segmentacijom. Virtualno adresiranje je proces pružanja virtualnih adresnih prostora procesima. To sprječava da se aplikacije međusobno ruše.Upravljanje resursima
    Jedna od važnih funkcionalnosti Kernela je dijeljenje resursa između različitih procesa. Mora dijeliti resurse na način da svaki proces ravnomjerno pristupa resursu.
    Kernel također nudi način za sinkronizaciju i međuprocesna komunikacija (IPC). Odgovoran je za prebacivanje konteksta između procesa.Pristup računalnim resursima
    Kernel je odgovoran za pristup računalnim resursima kao što su RAM i I/O uređaji. RAM ili memorija s izravnim pristupom koristi se za sadržavanje podataka i uputa. Svaki program mora pristupiti memoriji za izvođenje i uglavnom želi više memorije od dostupne. U tom slučaju Kernel igra svoju ulogu i odlučuje koju će memoriju svaki proces koristiti i što učiniti ako potrebna memorija nije dostupna.
    Kernel također dodjeljuje zahtjeve aplikacija za korištenje I/O uređaja kao što su tipkovnice, mikrofoni, pisači itd.

Vrste kernela

Postoji uglavnom pet tipova kernela, koji su navedeni u nastavku:

Što je Kernel

1. Monolitne jezgre

U monolitnoj jezgri, isti memorijski prostor koristi se za implementaciju korisničkih usluga i usluga jezgre.

Što je Kernel

To znači da u ovoj vrsti kernela ne postoji različita memorija koja se koristi za korisničke usluge i kernel usluge.

Budući da koristi isti memorijski prostor, veličina kernela se povećava, povećavajući ukupnu veličinu OS-a.

Izvršenje procesa također je brže od drugih vrsta kernela jer ne koristi odvojeni prostor za korisnike i kernel.

Primjeri monolitnih jezgri su Unix, Linux, Open VMS, XTS-400 itd.

Prednosti:

  • Izvršenje procesa također je brže jer nema odvojenog korisničkog prostora i prostora jezgre te je uključeno manje softvera.
  • Budući da se radi o jednom dijelu softvera, i izvori i sastavljeni obrasci su manji.

Nedostaci:

ima sljedeću javu
  • Ako bilo koja usluga generira bilo kakvu pogrešku, može se srušiti cijeli sustav.
  • Ove jezgre nisu prenosive, što znači da se za svaku novu arhitekturu moraju ponovno pisati.
  • Veliki su i stoga je teško njima upravljati.
  • Za dodavanje nove usluge potrebno je modificirati cijeli operativni sustav.

2. Mikrojezgra

Što je Kernel

Mikrokernel se također naziva MK , i razlikuje se od tradicionalnog kernela ili monolitnog kernela. u ovom, korisničke usluge i usluge jezgre implementirane su u dva različita adresna prostora: korisnički prostor i prostor jezgre . Budući da koristi različite prostore za obje usluge, veličina mikrojezgre je smanjena, što također smanjuje veličinu OS-a.

Mikrokernelima je lakše upravljati i održavati ih u usporedbi s monolitnim kernelima. Ipak, ako će postojati veći broj sistemskih poziva i prebacivanja konteksta, to bi moglo smanjiti performanse sustava tako što će ga usporiti.

Ovi kerneli koriste sustav prosljeđivanja poruka za rukovanje zahtjevima s jednog poslužitelja na drugi poslužitelj.

Samo neke bitne usluge pružaju mikrojezgre, kao što je definiranje memorijskih adresnih prostora, IPC (Interprocess Communication) i upravljanje procesima. Ostale usluge kao što je umrežavanje ne pruža Kernel i njima upravlja program korisničkog prostora poznat kao poslužitelji .

Jedan od glavnih nedostataka monolitnih kernela, a to je da greška u kernelu može srušiti cijeli sustav, može se ukloniti u mikrokernelu. Kao i kod mikrojezgre, ako se proces jezgre sruši, rušenje cijelog sustava još uvijek se može spriječiti ponovnim pokretanjem servisa uzrokovanih greškom.

Primjeri od Microkernela su L4, AmigaOS, Minix, K42 itd.

Prednosti

  • Mikrokernelima se može lako upravljati.
  • Nova usluga može se jednostavno dodati bez izmjene cijelog OS-a.
  • U mikrojezgri, ako se proces jezgre sruši, još uvijek je moguće spriječiti rušenje cijelog sustava.

Nedostaci

  • Postoji više zahtjeva za softverom za sučelje, što smanjuje performanse sustava.
  • Upravljanje procesima je vrlo komplicirano.
  • Greške u slanju poruka teško je popraviti.

3. Hibridna jezgra

Što je Kernel

Hibridne jezgre poznate su i kao modularne jezgre , a to je kombinacija Monolithic i Microkernela. Iskorištava prednosti brzine monolitnih kernela i modularnosti mikrokernela.

Hibridnu jezgru možemo shvatiti kao proširenu verziju mikrojezgre s dodatnim svojstvima monolitne jezgre. Ove jezgre naširoko se koriste u komercijalnim OS-ima, kao što su različite verzije MS Windows-a.

Vrlo je sličan mikrojezgri, ali također uključuje neki dodatni kod u prostoru jezgre za poboljšanje performansi sustava.

Hibridne jezgre omogućuju pokretanje nekih usluga kao što su mrežni stog u prostoru jezgre kako bi se smanjila izvedba u usporedbi s tradicionalnom mikrojezgrom, ali još uvijek dopušta pokretanje koda jezgre (kao što su upravljački programi uređaja) kao poslužitelji u korisničkom prostoru.

Primjeri hibridnog kernela su Windows NT, Netware, BeOS itd.

Prednosti:

  • Nema zahtjeva za ponovnim pokretanjem radi testiranja.
  • Tehnologija treće strane može se brzo integrirati.

Nedostaci:

  • Postoji mogućnost više grešaka s više sučelja kroz koja treba proći.
  • Nekim administratorima može biti zbunjujući zadatak održavanja modula, osobito kada se radi o problemima kao što su razlike u simbolima.

4. Nanojezgra

Kao što naziv govori, u Nanokernelu, kompletan kod kernela je vrlo malen, što znači da je kod koji se izvršava u privilegiranom načinu rada hardvera vrlo malen . Ovdje pojam nano definira kernel koji podržava nanosekundnu rezoluciju sata.

Primjeri nanojezgre su EROS itd.

Prednosti

  • Omogućuje hardverske apstrakcije čak i uz vrlo malu veličinu.

Nedostaci

  • Nanokernelu nedostaju sistemske usluge.

5. Egzokernel

Exokernel se još uvijek razvija i eksperimentalni je pristup dizajniranju OS-a.

što je podnošenje imenika

Ova vrsta kernela razlikuje se od ostalih kernela kao što je ovo; zaštita resursa odvojena je od upravljanja, što nam omogućuje izvođenje prilagodbe specifične za aplikaciju.

Prednosti:

  • Sustav temeljen na egzokernelu može uključivati ​​više operacijskih sustava knjižnice. Svaka biblioteka izvozi drugačiji API, na primjer jedan se može koristiti za razvoj korisničkog sučelja na visokoj razini, a drugi se može koristiti za kontrolu u stvarnom vremenu .

Nedostaci:

  • Dizajn egzokernela je vrlo složen.

Što je Kernel Panics?

Kao što smo već spomenuli, ta jezgra kontrolira cijeli računalni sustav; dakle, ako se sruši, može srušiti cijeli sustav. U MacOS-u i Linuxu takav neželjeni događaj poznat je kao ' Kernel panika.' Za oporavak od kernel Panic, moramo ponovno pokrenuti sustav.

Obično su ove panike u kernelu uzrokovane problemima s hardverskom komunikacijom. Stoga, ako se ponavlja panika kernela, pokušajte isključiti manje potrebne ili nepotrebne uređaje i provjerite je li problem riješen ili ne.