한국   대만   중국   일본 
Kernel - Wikipedia Idi na sadr?aj

Kernel

S Wikipedije, slobodne enciklopedije

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 ]

Sistemski pozivi su interfejsi koji omogu?avaju korisni?kim programima da tra?e određene usluge od jezgra (kernela) operativnog sistema. Kada korisni?ki program ?eli pristupiti funkcionalnostima koje su rezervisane za jezgro, koristi sistemski poziv kako bi pre?ao iz re?ima korisnika u re?im jezgra i izvr?io određenu operaciju koja zahteva privilegije jezgra.

Na primer, neki od uobi?ajenih sistemskih poziva uklju?uju:

  1. open : Otvaranje fajla.
  2. read : ?itanje podataka iz fajla.
  3. write : Pisanje podataka u fajl.
  4. fork : Kreiranje novog procesa.
  5. exec : Izvr?avanje programa.
  6. exit : Zavr?etak procesa.
  7. malloc : Alokacija dinami?ke memorije.

Sistemski pozivi pru?aju korisni?kim programima apstrakciju od hardverskih detalja i omogu?avaju im da koriste funkcionalnosti jezgra. Kada se sistemski poziv izvr?i, kontrola se prenosi u jezgro, gde se operacija sprovodi sa potrebnim privilegijama, a rezultati se vra?aju korisni?kom programu.

Implementacija sistema za sistemski poziv mo?e varirati između razli?itih operativnih sistema, ali su?tina ostaje ista: omogu?avanje bezbednog i kontrolisanog pristupa funkcionalnostima jezgra iz korisni?kog prostora.

Reference [ uredi | uredi izvor ]

  1. ^ a b "Kernel" . Linfo . Bellevue Linux Users Group . Pristupljeno 15. 9. 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 ).