Cum să aflați mai multe despre nucleul Linux de la propriul dvs. aparat



Încercați Instrumentul Nostru Pentru Eliminarea Problemelor

Învățarea de a lucra cu GNU / Linux implică în general învățarea de a lucra cu un mediu desktop. Tehnologia tematică permite acestor medii desktop să imite interfețele dispozitivelor iOS, Microsoft Windows și OS X. Acest lucru ajută la minimizarea acestui lucru. Mulți oameni merg mai departe și învață administrarea liniei de comandă Unix cu shell-urile Bash sau tcsh. Cu toate acestea, cunoașterea internelor kernel-ului Linux vă poate ajuta să înțelegeți mai bine cum interacționează diferite bucăți de cod de opțiune.



Unii oameni ar argumenta că cel mai bine ar fi să parcurgeți câțiva pași mai departe și să aflați în plus cum compilatoarele transmută codul C în instructori de mașini pentru un microprocesor. Avocații codului de asamblare ar susține că este mai bine să învățați ASM pentru a înțelege cu adevărat programarea pe platformele x86 și x86_64. Indiferent de aceste poziții, comenzile Linux de bază pot oferi o mulțime de informații despre modul în care nucleul vă vede computerul. Învățarea printr-o privire, dar nu atinge paradigma, este o modalitate excelentă de a stăpâni nucleul în sine. În timp ce contul rădăcină a fost utilizat pentru exemplele de pe această pagină, este foarte recomandat să vizualizați întotdeauna directoare legate de nucleu printr-un cont de utilizator.



Metoda 1: Directorul / proc

Directorul / proc se află într-una din regiunile primare ale directorului rădăcină de nivel superior din orice structură de fișiere Unix. Acesta conține ceea ce se numește sistemul de fișiere proc, mai bine cunoscut sub numele de procfs, care conține informații despre modul în care diferite resurse accesează memoria kernel. Este mapat la / proc la momentul pornirii sistemului. Întrucât această structură de fișier proxy servește ca o interfață cu structura internă de date din nucleul Linux, este din nou cel mai bine să explorați acest lucru printr-un cont de utilizator. Majoritatea fișierelor sunt oricum clasificate în funcție de structura vizibilă a fișierelor ca fiind doar în citire, dar cel mai bine este să fii sigur.



Acestea fiind spuse, fiecare dintre acestea este un fișier text, astfel încât să le puteți vizualiza dacă doriți. Utilizați comanda cd pentru a intra în directorul / proc, apoi emiteți ls pentru a vedea ce este acolo. Folosiți comanda cat, mai puțin sau mai mult cu oricare dintre fișiere pentru a le privi. Fișierul cpuinfo este un loc bun pentru a începe, deoarece afișează modul în care nucleul vă vede microprocesorul. Uitați-vă la fișierul stat pentru o vizualizare a proceselor care rulează.

2016-11-25_020006

Tastarea dispozitivelor pentru pisici vă va oferi o privire asupra lucrurilor care sunt atașate mașinii dvs.



2016-11-25_020109

Apropo, puteți emite întotdeauna comanda man proc pentru o descriere a modului în care structura fișierului / proc se referă la nucleu. Pagina servită provine din Manualul programatorului Linux.

2016-11-25_020156

Metoda 2: Directorul / sys

Următoarea dvs. oprire în turul nucleului dvs. este / sys, care este un alt director mapat la o structură de fișier prefăcută. Acesta urmează același concept general Unix ca și / proc, dar în schimb exportă în mod activ informații despre unitățile de dispozitiv asociate și o serie de subsisteme de nucleu. Dacă ați lucrat vreodată cu un sistem bazat pe BSD, atunci este posibil să fiți mai familiarizat cu sysctl care oferă aceste funcții. Dispozitivele PCI, USB și magistrala S / 390 sunt toate mapate în directorul / sys.

Utilizați cd / sys pentru a vă îndrepta către director și apoi lansați comanda ls sau dir. Este posibil să aveți directoare intitulate bloc, clasă, dispozitive, fs, kernel și poate altele. Puteți să le explorați pentru alte fișiere plate care conțin informații despre sistem, dar din nou faceți acest lucru dintr-un cont de utilizator și păstrați o privire, dar nu atingeți mentalitatea despre dvs.

Metoda 3: Directorul / dev

Utilizați comanda cd / dev pentru a vă îndrepta către directorul / dev, care ar putea fi structura virtuală a nucleului cu care sunteți cel mai familiarizat deja. Numele înseamnă dispozitive și conține reprezentarea fișierelor dispozitivelor atașate la sistemul dvs. O comandă ls din acest director va returna multe fișiere chiar și pe cea mai simplă distribuție de server.

2016-11-25_020242

Câteva dintre acestea sunt foarte speciale. Fișierul / dev / null este un dispozitiv nul care nu face nimic. Dacă tastați cat / dev / null, atunci nu veți obține nimic din el. Se numește bucket bit, iar ieșirea poate fi redirecționată către acesta pentru a menține ecranul curat. Un fișier numit / dev / zero nu conține decât date zero, care pot fi scrise pe un disc pentru a le elimina. Fișierele aleatorii și urandom conțin date nedorite aleatorii pentru crearea hashurilor de securitate.

Dacă ați formatat vreodată un disc, atunci probabil că aveți cel puțin o experiență cu modul în care kernelul Linux le vede. Fiecare disc atașat la sistem primește un nume ca sda, sdb și așa mai departe pentru fiecare disc. Diferite tipuri de discuri au nume diferite. Rețineți că directorul / dev utilizează o potențială definiție informatică formală a discului, mai degrabă decât modul în care am folosi de obicei acel termen. Aceasta înseamnă că un hard disk, un SSD, un card SD, un card microSDHC, un sistem de fișiere montat pentru smartphone atașat prin USB, stick-uri USB și chiar tablete montate sunt toate discuri către nucleu.

Fiecare nume de disc din Linux primește apoi un număr după care indică un număr de partiție. Dacă ați avut un SSD cu două partiții principale, atunci s-ar putea să aveți / dev / sda1 și / dev / sda2 ca volume valide. Mai mult ca sigur dacă rulați Linux de pe un desktop sau laptop cu partiționare în stil MBR, atunci aveți / dev / sda1 setat pe partiția ext4 care are de fapt Linux instalat pe el. Mai mult decât probabil / dev / sda2 este o partiție extinsă care apoi conține / dev / sda5 ca o partiție swap. Această schemă este comună, dar nicidecum necesară. Rețineți că, deoarece partiția swap din acest exemplu comun este un disc logic în interiorul unei partiții extinse, primește 5 în loc de 3 ca număr.

Dacă doriți să aflați mai multe despre modul în care nucleul vizualizează și formatează partițiile, atunci puteți vizualiza de fapt o listă de partiții acceptate cu comanda fdisk. In timp ce fdisk nu scrie tabele de partiții până nu îi spuneți, este totuși mai bine să încercați acest lucru cu ceva care nu vă interesează prăjirea. Este recomandat să indicați ceva de genul unui stick USB gol pe care l-ați putea reformata cu ușurință.

Să presupunem că stick-ul tău apare ca / dev / sdc , atunci ai putea folosi sudo fdisk / dev / sdc pentru a-l încărca. Dacă aveți o partiție validă, tastați t pentru a schimba tipul și tipul L pentru a încărca o listă de coduri hex. Rețineți că schemele de partiții MBR și GUID vorbesc cu nucleul diferit și, prin urmare, au atribuții diferite.

2016-11-25_020331

Cel mai adesea veți avea unități setate la tipul 83, care este pentru unitățile Linux, 82, care este pentru partițiile swap Linux sau unul dintre tipurile de fișiere FAT. FAT datează într-o formă sau alta până în 1977 și este încă preferat pentru multe tipuri de dispozitive mobile, precum și pentru multe unități amovibile. Rețineți că unele tipuri de partiții, cum ar fi tipul 0x0c, prezintă ceva numit suport LBA.

Când un programator proiectează un kernel pentru un sistem de operare, acesta are câteva modalități diferite de a privi discurile. Una este împărțirea platanelor în cilindri, capete și sectoare. Acesta a fost modul clasic de a face referire la hard disk-uri pentru cel mai mult timp. Geometria autentică a discului nu a fost niciodată importantă pentru Linux și, din păcate, această schemă rămâne fără adrese după aproximativ 8 gigaocteți binari. A doua modalitate este de a utiliza adresarea logică C / H / S, care face acest lucru, dar permite controlerului de disc să mapeze numerele cilindrului, capului și sectorului oriunde ar dori. Acesta este motivul pentru care un sistem de operare ar putea pretinde teoretic că există capete pe un card SD sau un stick USB atunci când acest lucru este imposibil din punct de vedere fizic.

A treia metodă este prin adresarea blocului logic, ceea ce reprezintă LBA. Fiecare bloc fizic dintr-un volum primește o cifră în această schemă. Sistemul de operare îi spune controlerului de disc să scrie pe un anumit bloc numerotat, dar nu știe de fapt dacă acesta este blocul direct de pe disc. Aceasta este schema cea mai utilizată astăzi și cu siguranță a fost utilizată pe marea majoritate a hard diskurilor de la mijlocul anilor 1990.

Linux oferă suport pentru kernel pentru a monta o mare varietate de tipuri de partiții fără intrare directă, dar este totuși cel mai bine să nu fiți prea ciudat atunci când le selectați. Ați putea să prăjiți datele dvs. dacă ați făcut un tip de partiție foarte ciudat la alegerea potrivirii sistemului de fișiere.

Metoda 4: apeluri de sistem din manualul programatorului Linux

Cititoarele de pagini de la bord incluse în majoritatea distribuțiilor Linux vă pot oferi de fapt un curs de blocare a apelurilor de sistem, ceea ce vă poate ajuta foarte mult la învățarea despre nucleu. Porniți browserul de pagini grafice man xman, fie de pe un link .desktop dacă aveți unul, fie alternativ, ținând apăsată tasta super și R în același timp, apoi tastând xman și apăsând Enter. Selectați opțiunea „Pagină manuală”, apoi alegeți „Secțiuni” și, în final, „(2) Apeluri de sistem” din meniul derulant.

2016-11-25_020430

Odată ce o opțiune citea „ intro ”Apare, selectați că. O pagină din Manualul programatorului Linux care vă va învăța destul de multe despre apelurile de sistem vă va saluta.

2016-11-25_020518

6 minute citite