Kernel

S Wikipedije, slobodne enciklopedije
Jump to navigation Jump to search

Kernel je računarski program koji je samo jezgro operativnog sistema, sa potpunom kontrolom nad svime u sistemu.[1] Na većini sistema, to je jedan od prvih programa koji se učitava prilikom pokretanja (nakon bootloadera). Kernel upravlja ostatkom pokretanja, kao i ulaznim/izlaznim zahtjevima iz softvera, pretvarajući ih u uputstva za obradu podataka za centralnu procesnu jedinicu. On upravlja memorijom i periferijom kao što su tastatura, monitor, štampač itd.

Kernel povezuje aplikativni softver sa hardverom računara.

Kritični kod kernela se obično učitava u zasebnu oblast memorije, koja je zaštićena od pristupa aplikativnom softveru ili drugim, manje kritičnim dijelovima operativnog sistema. Kernel izvršava svoje zadatke, kao što su pokrenuti procesi, upravljanje hardverskim uređajima kao što je tvrdi disk i rukovanje prekidima, u zaštićenom prostoru kernela. Nasuprot tome, sve što korisnik radi je u korisničkom prostoru: pisanje u uređivaču teksta, pokretanje programa u GUI-u itd. Ovo razdvajanje sprječava miješanje podataka korisnika i kernel.[1] kao i sprječavanje neispravnih aplikativnih programa da ruše čitav operativni sistem.

Programski interfejs kernela je apstrakcijski sloj niskog nivoa. Kada proces pravi zahtjeve kernela, to se naziva sistemskim pozivom. Monolitni kernel pokreće sve instrukcije operativnog sistema u istom adresnom prostoru što je puno brže. Mikrokernel pokreće većinu procesa u korisničkom prostoru,[2] što je bolje za modularnost.[3]

Funkcije[uredi | uredi izvor]

Primarna funkcija kernela je da bude posrednik između korisnika i računarskih resursa, uključujući: [4]

Centralna procesorska jedinica (CPU)
Ova komponenta računarskog sistema je odgovorna za pokretanje ili izvršavanje programa. Kernel preuzima odgovornost za odlučivanje u bilo kojem trenutku koji od mnogih pokrenutih programa treba biti dodijeljen procesoru ili procesorima.
Memorija nasumičnog pristupa (RAM)
Memorija nasumičnog pristupa koristi se za pohranjivanje programskih uputa i podataka. Kernel je odgovoran za odlučivanje koju i koliko memorije svaki proces može da koristi i za određivanje šta da uradi kada nema dovoljno memorije.
Ulazno/izlazni uređaji
U/I uređaji uključuju periferne uređaje kao što su tastature, miševi, diskovi, štampači, USB uređaji, mrežni adapteri i grafički izlazni uređaji. Kernel dodjeljuje zahtjeve od aplikacija za izvođenje U/I odgovarajućem uređaju i osigurava prikladne metode za korištenje uređaja

Upravljanje resursima[uredi | uredi izvor]

Ključni stvar u upravljanju resursima je definicija adresnog prostora i mehanizam zaštite koji se koristi za posredovanje u pristupu resursima unutar domena.[4] Kernel također obezbjeđuje metode za sinhronizaciju i međuprocesnu komunikaciju (IPC).

Upravljanje memorijom[uredi | uredi izvor]

Kernel ima potpuni pristup memoriji sistema i mora omogućiti procesima da sigurno pristupaju ovoj memoriji onako kako oni to zahtijevaju. Često je prvi korak u tome virtualno adresiranje, koje se obično postiže straničenjem i/ili segmentacijom.

Upravljanje uređajima[uredi | uredi izvor]

Da bi se izvršavale funkcije, procesima je potreban pristup perifernim uređajima koji su povezani s računarom, a kojima upravlja kernel kroz upravljačke programe uređaja. Upravljački program uređaja je računarski program koji operativnom sistemu omogućava interakciju sa hardverskim uređajem.

1. Sa strane hardvera:

  • Direktno povezivanje.
  • Korištenje interfejsa visokog nivoa (Video BIOS).
  • Korištenje upravljačkog programa uređaja nižeg nivoa
  • Simulacija rada sa hardverom, dok se radi nešto sasvim drugo.

2. Sa strane softvera:

  • Omogućavanje operativnom sistemu da direktno pristupa hardverskim resursima.
  • Implementacija interfejsa za softver koji nije upravljački program (Primjer: TWAIN).
  • Implementacija jezika, ponekad visokog nivoa (Primjer: PostScript).

Sistemski pozivi[uredi | uredi izvor]

U računarstvu, sistemski poziv je način kako proces traži uslugu od kernela operativnog sistema. Sistemski pozivi pružaju interfejs između procesa i operativnog sistema.

Reference[uredi | uredi izvor]

  1. ^ a b "Kernel". Linfo. Bellevue Linux Users Group. Pristupljeno 15 September 2016. 
  2. ^ cf. Daemon (computing)
  3. ^ Roch 2004
  4. ^ a b Wulf 1974 pp.337–345

Dalje čitanje[uredi | uredi izvor]

  • Andrew Tanenbaum, Operativni sistemi - Dizajn i implementacija (Treće izdanje) ;
  • Andrew Tanenbaum, Moderni operativni sistemi (drugo izdanje) ;
  • Daniel P. Bovet, Marco Cesati, Linux kernel ;
  • David A. Peterson, Nitin Indurkhya, Patterson, Organizacija i dizajn računara, Morgan Koffman ( ISBN 1-55860-428-6) ;
  • BS Chalk, Organizacija računara i arhitektura, Macmillan P. ( ISBN 0-333-64551-0).