Jezgra (računarstvo)
Jezgra (eng. kernel) operacijskog sustava jest srž operacijskog sustava i najniži apstracijski sloj koji je izveden programski. Jezgra je most između programa koji se izvode (procesa) i svega u njihovoj okolini, dakle za međusobnu komunikaciju između procesa, tako i između njih i ostatka računala ili vanjskog svijeta. Jezgra ima sve ovlasti i može pristupiti svakom resursu računala, dok se programima koji se izvode uskraćuje da izravno pristupaju željenim resursima, već u tu svrhu programi moraju pozivati funkcionalnosti jezgre. Time se postiže da se na jednom mjestu (u jezgri) mogu nametnuti sigurnosna i druga pravila važna za osiguranje smislenog ponašanja računala i svih programa u njemu kao cjeline. Jezgra može i ovlastiti neki program da pristupa određenom resursu računala i izravno, bez posredovanja jezgre. Ovo se obično koristi da se programu dâ izravan pristup određenom dijelu memorije (kako privatne memorije koju koristi samo taj program, tako i dijeljene memorije koju istovremeno koristi više programa); za pristup u druge resurse ovo se to rjeđe koristi, prvenstveno zato što je preduvjet za to odgovarajuća sklopovska podrška.
Ovisno kako je dizajner operacijskog sustava pristupio problemu, te tehnološkim dostignućima do sada (2006.), jezgre su podjeljene na sljedeće podvrste:
- monolitne jezgre - sadrže sve predviđene dijelove i stoga su tipično velike
- mikro jezgre - neki funkcionalni dijelovi nisu dio jezgre, već se naknadno pokreću kao posebno privilegirani programi
- hibridne jezgre - funkcionalni nadskup monolitnih i mikro jezgri
- nano jezgre
- atipične jezgre
- egzo jezgre
Jezgra operacijskog sustava obavlja sve kritične funkcije operacijskog sustava, kao:
- upravljanje memorijom: primarnom i sekundarnom
- upravljanje sklopovljem: upuštanje, pogonjenje, gašenje
- upravljanje procesima: stvaranje, pokretanje, izvođenje, zaustavljanje, gašenje, sinkronizacija, prioritizacija
- upravljanje vremenom: osiguravanje da kritični poslovi dobiju dovoljno vremena
- zamjenu konteksta (eng. context switch)
- međuprocesna komunikacija
- upravljanje prekidima
- kontrola prava pristupa: svi programi mogu od jezgre tražiti neku radnju, pravo pristupa ili slično, ali jezgra će voditi računa koje od toga će programu dopustiti, a koje neće
- datotečne funkcionalnosti: jezgre tipično uključuju sve potrebno za podršku jednog ili više tipova datotečnih sustava
- mrežne funkcionalnosti: također, jezgre obično implementiraju i podršku za jedan ili više mrežnih protokola (npr. sve funkcionalne slojeve za TCP/IP)
- upravljanje modulima: mikro jezgre i hibridne jezgre ukljujuču mogućnost da se neki funkcionalni dijelovi jezgre naknadno učitaju i aktiviraju, te nakon prestanka potrebe, deaktiviraju i odbace
- zbirke funkcija: neke jezgre, kao neobavezni dio, sadrže i zbirke fukcionalnosti koje nisu kritične za ponašanje sustava, ali su često korištene, te su smještene u jezgri da su na raspolaganju svim programima
- http://kernelnewbies.org/ - (engleski) programiranje Linux jezgre za početnike