Ce kernel-ul Linux, losst
Dar ceea ce face nucleul Linux? Cum funcționează? Care sunt principalele sale sarcini? Acesta este un subiect foarte larg și încercăm să o înțelegem în acest articol.
Ceea ce face nucleul Linux?
Dar, înainte de a examina modul în care una sau altă funcție a kernel-ului sistemului de operare, să ne uităm la ce tot ce întâlnește. Nucleul oferă o abstracție pentru programatori care dezvolta software pentru platforma Linux. Această abstractizare simplifică sarcinile complexe. Abstractizarea pe termen lung în calculator înseamnă și ascunde complexitatea algoritmilor pentru o caracteristică simplă și dotare standard.
În mod firesc, miezul - nu este singurul software care oferă o abstracție, mult mai important este nivelul de abstractizare furnizate de către conducătorul auto. Kernel nu trebuie să știe cum să lucreze cu un anumit dispozitiv, deoarece este responsabil pentru șofer. Prin urmare, kernel-ul poate rula pe hardware diferite.
Luați, de exemplu, citirea și scrierea datelor în memorie. Fiecare placa de baza pot avea diferite controlere de memorie, iar computerul poate rula pe un procesor ARM, Intel, AMD, SPARC, PowerPC sau MIPS. Dar nu va conta pentru programul Hello World, precum și de bază oferă o interfață unificată pentru toate aceste platforme.
Acum, să ne uităm la ce fel de caracteristici oferă miezului sau, cu alte cuvinte, ceea ce obținem abstractizare:
- RAM - Citirea și scrierea datelor în memoria;
- Stocare permanentă - Citirea și scrierea datelor la un read-only amintiri;
- Sistemul de fișiere virtuale;
- Lucrul cu rețelele fizice (Ethernet, wireless, LTE, switch-uri, Bluetooth;
- rețele virtuale;
- Punerea în comun a programelor de timp CPU;
- prioritățile de echilibrare a sarcinii și CPU;
Suport pentru dispozitive externe:
- drive-uri USB detașabile;
- Camere web;
- Mouse și tastatură;
- Fișier permisiuni de acces pentru utilizatori și grupuri;
- Permiterea accesului la resursele sistemului;
Datorită caracteristicilor de mai sus ale programelor de dezvoltare Linux devine mai ușor nucleu. Nucleul oferă toate acestea cu ajutorul apelurilor de sistem. În continuare ne vom uita la mai in detaliu multe dintre funcțiile.
Stocare de date
În plus, nucleul izolează fiecare proces într-un spațiu de memorie separat, ceea ce înseamnă că procesul nu are nevoie să știe dacă acesta aparține memoria lui, pentru că toată memoria disponibilă îi aparține. Această separare mărește siguranța sistemului.
Se pare că lucrurile cu stocare persistent. Nucleul a software-ului ascunde diferențele dintre interfețele SATA, PATA, SCSI, USB, M2 și alte protocoale de stocare. Un program poate lucra cu orice operator de transport și orice sistem de fișier acceptat fără nicio modificare a programului. Acest lucru crește reutilizarea codului și productivitatea dezvoltator.
accesul la rețea
Din fericire, în acest moment cele mai populare protocoale este atât IPv4 și IPv6. În ceea ce privește alte protocoale de rețea, cum ar fi DECnet, IPX, AppleTalk, acestea sunt susținute de kernel, dar face cu greu sens să le folosească în programele actuale.
programarea sarcinilor
CPU Programarea este un subiect foarte mare și complex. Noi nu afectează algoritmii de planificare, ne interesează doar în sarcinile de kernel Linux în ceea ce privește gestionarea fiecărui proces.
Înainte de apariția multi-core calculatoare de proces ar putea efectua doar o singură sarcină la un moment dat. Fiecare proces devine propriul său, un pic echitabil de timp, și după timpul dat la un alt proces. Acest lucru a fost pus în aplicare atât de repede încât a creat iluzia proceselor care rulează simultan. Acum, odată cu apariția procesoarelor multi-core de productivitate a crescut foarte mult, dar timpul programarea procesorului nu va merge departe.
Fiecare proces are nevoie de timp CPU, iar kernel-ul se asigură că fiecare proces le primește, la rândul său. În plus, unele procese au nevoie de întârziere sau de așteptare pentru I / O, și este de asemenea implicat în miez. În timp ce procesul este în așteptare pe procesorul va executa un alt proces, iar apoi procesul original va primi timpul său. Planificarea permite programatorului nu-i pasă de numărul de procese care rulează.
Nucleul Linux conține un număr mare de abstracții, și este prea mare, că o persoană obișnuită ar putea înțelege totul. Cu toate acestea, în cazul în care nu au fost, fiecare dezvoltator ar trebui să pună în aplicare totul cu mâna, și ar dura mai multe ori mai mult. Sper că informațiile cu privire la funcția kernel Linux a fost util pentru tine.
La sfârșitul unui scurt istoric al Linux: