Kernel

kernel monoliticÎn lumea calculatoarelor kernel-ul este componenta centrală a unui sistem de operare, jucând rolul de punte între programele de tipul aplicaţiilor software şi procesarea de date care se efectuează la nivel hardware. Sau altfel spus, este nucleul sistemului de operare. Printre responsabilităţile kernel-ului se numără managementul resurselor sistemului precum şi asigurarea comunicării dintre componentele hardware şi software.

Kernel-ul este ca un fel de gazdă pentru aplicațiile software care rulează pe calculator. La pornirea unei aplicații, kernel-ul este cel care îi alocă o cotă din resursele sistemului pentru a putea rula, de exemplu îi alocă un anumit spațiu din memoria RAM. În sistemele multitasking» , tot kernelul este responsabil de planificarea execuției aplicațiilor.

Dacă-mi permiți o comparație plastică și ușor stupidă, aplicațiile rulează pe kernel cam la fel cum înoată rățuștele pe un lac (da, știu că nu te ajută prea mult, dar măcar am încercat :P ). OK, să încerc altceva mai inteligent: aplicațiile într-un sistem multitasking au acces la procesor cam ca și mașinile care stau la coadă la McDrive să primească un BigMac, numai că atunci când ajung la punctul de servire nu primesc tot BigMac-ul dintr-o dată, ci numai câte un cartof-pai, după care lasă următoarea mașină și se pun din nou la coadă ca să primească și următorul cartof pai. Dacă vine un cocalar pilos care n-are timp să stea la coadă (a se citi o aplicație cu nivel de prioritate mai ridicat), trece în față și își ia ce-i trebuie (poate chiar un Big Mac întreg dintr-o dată), după care ciclul se continuă normal.

Secvențele de software din cadrul kernel-ului sunt făcute în așa fel încât să fie executate de către procesor (CPU) într-un mod hardware privilegiat, comparativ cu modul în care sunt executate aplicaţiile software, astfel încât kernel-ului îi este permisă orice fel de operație (de exemplu are acces de citire/scriere la orice zonă din memoria RAM sau poate interacționa direct cu hardware-ul). Spre comparație, secvențele de software din cadrul unei aplicații sunt executate în mod neprivilegiat, având acces limitat la resurse. Ele pot accesa doar spațiul din memoria RAM pe care kernel-ul l-a alocat acelei aplicații și nu au posibilitatea de a interacționa direct cu hardware-ul, ci doar prin intermediul apelurilor sistem (care sunt ca niște portițe de comunicare între kernel și aplicații).

Modul de realizare a sarcinilor sistemelor de operare diferă de la kernel la kernel, în funcţie de tipul și structura acestuia. În timp ce kernel-ul de tip monolitic va integra în secvența sa principală de execuție toate serviciile oferite (totul fiind executat de procesor în mod privilegiat și în același spațiu de memorie), micro-kernel-ul implementează numai serviciile esențiale (managementul memoriei, planificarea execuției aplicațiilor și comunicarea dintre acestea), urmând ca restul serviciilor, inclusiv comunicarea în rețea, să fie implementate în exteriorul microkernel-ului, mai exact de către programe-server care rulează la fel ca și aplicațiile (deci sunt rulate de procesor în modul neprivilegiat). Comutarea frecventă din mod privilegiat în mod neprivilegiat face ca micro-kernel-ul să fie mai puțin performant decât kernel-ul monolitic, însă acesta din urmă este mai greu de întreținut și mai predispus la erori din moment ce toate subsistemele rulează “în aceeași oală”, o eroare dintr-un subsistem putând afecta grav întregul sistem.  Există o mai multe tipuri intermediare de kernel-uri între aceste două extreme.

Pentru a putea relaţiona corect cu perifericele unui calculator, kernel-ul are nevoie de drivere. Driverele pot fi definite ca fiind acele componente software de care sistemul de operare are nevoie pentru a putea interacționa cu dispozitivul periferic (metaforic vorbind un fel de translator care-l ajută pe kernel să înţeleagă limba vorbită de perifericul respectiv, fie că e vorba de o placă de reţea, o imprimantă sau o cameră web). Driverul unui periferic este dependent de modelul acestuia (mai ales în cazul în care comunicarea cu perifericul nu este făcută să respecte vreun standard universal acceptat), motiv pentru care driverul se şi livrează de regulă împreună cu perifericul (de exemplu, este foarte probabil ca un driver pentru o imprimantă HP LaserJet 5L să nu funcţioneze în cazul unei imprimante HP LaserJet 6L).

Share on Facebook
Share on LinkedIn

care permit rularea aparent simultană a mai multor aplicații prin faptul că fiecărei aplicații i se alocă pe rând câte o fracțiune de secundă pentru a rula după care e suspendată și procesorul este alocat pentru o nouă fracțiune de secundă următoarei aplicații ș.a.m.d.Powered by Hackadelic Sliding Notes 1.6.5

Publicat în: Glosar

Etichete:

Despre autor: Este fetiţa trupei, cea guralivă şi amuzantă; ne place s-o buzărim de câte ori avem ocazia ca s-o ofticăm, dar nu ne iese întotdeauna pentru că din nefericire ține la glumă. Atenție, deși e fată nu trebuie subestimată pentru că este deţinătoarea unor cunoştinţe solide de IT pe care ştie să le pună în ecuație ca să obțină ce vrea.

RSSComentarii (0)

URL trackback

Comentează




Dacă vrei să apară o poză la comentariul tău, fă-ți rost de un Gravatar.