Ce este de bază și de ce are nevoie, știri, lecții, ajutor, sprijin

Linux kernel - unul dintre cele mai mari proiecte open source, cu mai mult de 13 milioane de linii de cod, dar ceea ce este și de ce ai nevoie pentru a?

Deci, ce este kernel-ul?

Core - nivelul cel mai scăzut ușor de a înlocui software-ul care interacționează cu hardware-ul computerului. Acesta este responsabil pentru comunicarea între aplicațiile care rulează în modul de utilizare, cu echipamente reale și permite un proces cunoscut sub numele de „servere“ pentru a primi informații de la alții, folosind comunicarea interprocese (IPC).

portabilitate
Necesită puțin spațiu pentru instalare
Ei ocupă puțin spațiu în memorie
siguranță

Drivere ca un strat de abstracție pentru hardware
Echipamentul poate avea întârzieri lungi, deoarece conducătorii auto se execută în modul de utilizare
Procesele trebuie să aștepte rândul lor pentru a obține informații
Procesele nu pot avea acces la alte procese fără a aștepta

boabe monolitice Microkernel opus - ele includ nu numai sistemul de control al procesorului, memoria, și IPC, dar, de asemenea, drivere de dispozitiv, gestionarea sistemului de fișiere și apeluri de sistem de service. nucleele monolitice câștigă de obicei în lucrul cu echipamentul și multi-tasking, pentru că, dacă programul trebuie să primească informații din memorie sau de la un alt proces care rulează, nu are nevoie să aștepte la coadă - pentru că este o modalitate directă și simplă de a obține necesar. Cu toate acestea, acest lucru poate cauza probleme, deoarece mai multe programe necesită drepturi extinse de acces, cu atât mai mare pericolul de sistem „picătură“, în cazul în care una dintre ele nu funcționează corect.

Acces direct hardware-ului pentru aplicații
Procese mai ușor să interacționeze unii cu alții
În cazul în care dispozitivul este acceptat - acesta va funcționa fără prea mult tam-tam
Procese mai receptive, deoarece nu există nici o coada de așteptare pentru timpul de procesor (de fapt, nu este atât de procesul de mai receptiv, deoarece mai puține procese care rulează în coada de așteptare utilizator fir modul există într-un nucleu monolitic - .. așa-numitele preemptiv preemptive multitasking -.. o bandă).

La instalare ocupă o mulțime de spațiu
Este nevoie de o mulțime de memorie
Mai puțin sigur, deoarece mai multe procese care rulează în modul kernel

Cariopsele hibride aleg ceea ce vor rula în modul de utilizare, și că - în modul nucleu. Frecvent componente, cum ar fi driverele de dispozitiv și I / O sistem de fișiere rula în modul de utilizare, în timp ce apelurile IPC și lucrările de service în modul nucleu. Acest lucru oferă avantajele ambelor abordări, dar de multe ori necesită mai multă muncă din partea producătorilor, deoarece responsabilitatea pentru conducătorii auto este trecut pe ele. De asemenea, există defecte ascunse care sunt inerente în microkernel.

Dezvoltatorul poate alege care componente pentru a rula în modul de utilizare, și care - în modul kernel
Este nevoie de mai puțin spațiu decât un nucleu monolitic
Mai flexibil decât alte abordări

Pot suferi de aceeași întârziere procesele care microkernel
drivere de dispozitiv - se referă de utilizator (de obicei)
Unde sunt fișierele kernel Linux?

fișier de bază în Ubuntu este / boot partiție se numește vmlinuz-<версия>. Vmlinuz numele vine de la șaizeci de ani din lume UNIX lui. în care nucleele au fost pur și simplu numite „unix“, rezultând la începutul anilor nouăzeci, când un nucleu devenit cunoscut sub numele „Linux“.

Atunci când pentru a simplifica multi-tasking a fost dezvoltat de memorie virtuală (memoria virtuală), se adaugă „vm“ a început să arate sprijinul pentru începutul fișierului. Cu ceva timp a fost numit kernel-ul vmlinux, dar atunci a crescut prea mult pentru a încăpea în memoria disponibilă la pornirea sistemului, și a început să se micșoreze, iar „x“ la sfârșitul numelui a fost schimbat la „Z“, pentru a arăta că acesta este comprimat folosind zlib. Nu utilizați întotdeauna acest tip de compresie și este adesea înlocuit cu LZMA sau bzip2, și, uneori, nucleu numit zImage (sau bzImage - un culoar ..).

Numărul versiunii are formatul ABCD în care AB, este probabil să fie 2,6 (familia de bază chiar și figura B prezintă o familie stabilă -. 2.0, 2.2, 2.4, 2.6 - și ciudat - pe versiunile pentru dezvoltatori - 2.1, 2.3, 2.5 Început. 2.6 cu acest sistem este abolită - un comentariu Lane) ... C este versiunea dvs. și D va afișa patch-uri și remedieri dumneavoastră.

De asemenea, în directorul / boot există un fișier foarte important numit initrd.img-<версия>, system.map-<версия>, și configura cam<версия>. fișier initrd, este folosit ca un mic RAM-disc, care despachetează și execută kernel-ul real. fișier system.map este utilizat pentru a controla memoria înainte de puncte de kernel-ul este complet încărcat și fișiere de configurare pentru kernel, care opțiuni și module încărcate în kernel-ul în timpul procesului de construcție.

Linux Kernel Arhitectura

Din cauza kernel-ului Linux monolitică are cea mai mare dimensiune și complexitate maximă a tuturor nucleelor. A fost caracteristica de design Linux, în jurul căreia o mare de controverse fiert la foc mic în versiunile anterioare. și în nucleul au încă unele dezavantaje nucleele monolitice.

Pentru a evita aceste neajunsuri, dezvoltatorii Linux kernel create modulele de kernel, care pot fi încărcate și descărcate în timpul funcționării, astfel încât să puteți adăuga și elimina funcțiile de kernel pe zbor. Acest lucru permite nu numai să adăugați suport pentru hardware nou în kernel-ul prin adăugarea de module care se execută proces server, cum ar fi virtualizarea la nivel redus, dar, de asemenea, posibilitatea de a înlocui intregul nucleu, fără a fi nevoie să repornească, în unele cazuri.

Imaginați-vă că puteți instala noul pachet de servicii pe Windows, chiar fără să reporni.

Imaginați-vă că într-un Windows proaspăt instalat este deja instalat toate driverele necesare, și tot ce trebuie să faci - includ doar cei care au nevoie de tine? Deci, vedeți cum modulele de kernel rulează pe Linux. modulelor de kernel, de asemenea, cunoscut sub numele de module de kernel incarcabile (modulul de kernel descărcabilă - LKM), joacă un rol-cheie în menținerea funcționării nucleului cu toate dispozitivele fără a consuma toată memoria disponibilă.

Core - nu ceva magic, este absolut esențială pentru orice calculator pentru funcționarea normală. Nucleul Linux este diferit de kernel Windows și OS X prin aceea că acesta include drivere de dispozitiv în kernel și suportă mai mult „din cutie.“ Din fericire, acum știi un pic mai mult despre operarea în comun a software-ului și hardware-ul, precum și ce fișiere sunt necesare pentru a porni calculatorul.