Kako saznati više o Linux kernelu sa vlastitog računala



Isprobajte Naš Instrument Za Uklanjanje Problema

Učenje rada s GNU / Linuxom općenito podrazumijeva učenje rada s radnom površinom. Tema tehnologija omogućuje ovim radnim površinama da oponašaju sučelja iOS, Microsoft Windows i OS X uređaja. Ovo pomaže da se ovo svede na minimum. Mnogi ljudi idu dalje i uče Unix administracijsku liniju pomoću školjki Bash ili tcsh. Međutim, poznavanje unutarnjih dijelova jezgre Linuxa može vam pomoći da bolje razumijete kako različiti dijelovi opcode-a međusobno djeluju.



Neki bi ljudi tvrdili da bi bilo najbolje otići nekoliko koraka dalje i dodatno naučiti kako kompajleri transformiraju C kod u strojne instruktore za mikroprocesor. Tada će zagovornici skupštinskog koda tvrditi da je najbolje naučiti ASM kako bi uistinu shvatio programiranje na x86 i x86_64 platformama. Bez obzira na ove položaje, osnovne Linux naredbe mogu pružiti mnoštvo informacija o tome kako kernel vidi vaše računalo. Učenje kroz pogled, ali ne dodirujte paradigmu, sjajan je način za svladavanje same jezgre. Iako je korijenski račun korišten za primjere na ovoj stranici, toplo se preporučuje da direktorije povezane s jezgrom ikad pregledavate samo putem korisničkog računa.



Metoda 1: / proc direktorij

Direktorij / proc nalazi se u jednom od primarnih područja korijenskog direktorija najviše razine u bilo kojoj Unix datotečnoj strukturi. Sadrži ono što se naziva proc datotečni sustav, poznatiji kao procfs, koji sadrži informacije o načinu na koji različiti resursi pristupaju memoriji jezgre. Mapira se / proc u trenutku pokretanja sustava. Budući da ova struktura proxy datoteka služi kao sučelje s unutarnjom strukturom podataka unutar Linux jezgre, još jednom je najbolje to istražiti putem korisničkog računa. Većina datoteka ionako se prema strukturi vidljivih datoteka sustava klasificira kao samo za čitanje, ali najbolje je biti na sigurnoj strani.



To je rečeno, svaka od njih je tekstualna datoteka, tako da ih možete pregledati ako želite. Upotrijebite cd naredbu za ulazak u direktorij / proc, a zatim izdajte ls da biste pogledali što se tamo nalazi. Upotrijebite naredbu mačka, manje ili više s bilo kojom od datoteka da biste ih pogledali. Datoteka cpuinfo dobro je mjesto za početak jer prikazuje kako kernel gleda na vaš mikroprocesor. Pogledajte datoteku stat za prikaz pokrenutih procesa.

2016-11-25_020006

Upisivanje mačjih uređaja pružit će vam uvid u stvari koje su pričvršćene na vaš stroj.



2016-11-25_020109

Usput, uvijek možete izdati naredbu man proc za detaljni opis odnosa strukture / proc datoteke prema jezgri. Poslužena stranica dolazi iz Priručnika za Linux programera.

2016-11-25_020156

2. metoda: / sys direktorij

Sljedeća stanica u obilasku jezgre je / sys, što je još jedan direktorij mapiran u strukturu datoteke koja se pretvara. Ovo slijedi isti opći Unix koncept kao i / proc, ali umjesto toga aktivno izvozi informacije o povezanim pogonima uređaja i brojnim podsustavima jezgre. Ako ste ikad radili sa sustavom temeljenim na BSD-u, možda vam je poznatiji sysctl koji pruža ove funkcije. Uređaji sabirnice PCI, USB i S / 390 mapiraju se u direktorij / sys.

Upotrijebite cd / sys da prijeđete u direktorij, a zatim izdate naredbu ls ili dir. Možda imate direktorije s naslovom blok, klasa, uređaji, fs, kernel i možda drugi. Možete ih istražiti za daljnje ravne datoteke koje sadrže informacije o sustavu, ali još jednom to učinite s korisničkog računa i pripazite, ali ne dirajte mentalitet o sebi.

3. metoda: / dev direktorij

Upotrijebite cd / dev naredbu da prijeđete u direktorij / dev, koji je možda virtualna struktura jedra koja vam je već najpoznatija. Ime znači uređaji i sadrži prikaz datoteka uređaja priključenih na vaš sustav. Naredba ls u ovom direktoriju vratit će mnoge datoteke čak i na najjednostavnijoj poslužiteljskoj distribuciji.

2016-11-25_020242

Nekoliko njih je vrlo posebno. Datoteka / dev / null je nulti uređaj koji ne radi ništa. Ako utipkate cat / dev / null, tada od toga nećete dobiti ništa. Zove se segment bit, a izlaz se može preusmjeriti na njega kako bi zaslon ostao čist. Datoteka pod nazivom / dev / zero ne sadrži ništa osim nula podataka, koje se mogu zapisati na disk da bi se poništile. Slučajne i slučajne datoteke sadrže slučajne bezvrijedne podatke za stvaranje sigurnosnih hashova.

Ako ste ikad formatirali disk, vjerojatno imate barem malo iskustva s načinom na koji ih Linux kernel pregledava. Svaki disk priključen na sustav dobiva ime poput sda, sdb i tako dalje za svaki disk. Različite vrste diska dobivaju različita imena. Imajte na umu da direktorij / dev koristi jednu potencijalnu formalnu informatičku definiciju diska, a ne način na koji bismo obično upotrebljavali taj izraz. To znači da su tvrdi disk, SSD, SD kartica, microSDHC kartica, montirani datotečni sustav pametnog telefona priključen putem USB-a, USB stickovi, pa čak i montirani tableti, svi diskovi u jezgri.

Svako ime diska u Linuxu nakon toga dobiva broj koji označava broj particije. Ako ste imali SSD s dvije primarne particije, tada biste mogli imati / dev / sda1 i / dev / sda2 kao valjane volumene. Više nego vjerojatno ako koristite Linux s radne površine ili prijenosnog računala s particijom MBR stila, tada ste / dev / sda1 postavili na ext4 particiju na kojoj je zapravo instaliran Linux. Više nego vjerojatno / dev / sda2 je proširena particija koja zatim sadrži / dev / sda5 kao swap particiju. Ova je shema uobičajena, ali nikako nije potrebna. Imajte na umu da je swap particija u ovom uobičajenom primjeru logični disk unutar proširene particije, a prima broj 5 umjesto 3 kao svoj broj.

Ako želite saznati više o načinu na koji kernel pregledava i formatira particije, tada zapravo možete pogledati podržani popis particija pomoću naredbe fdisk. Dok fdisk ne piše particijske tablice dok to ne kažete, ipak je najbolje pokušati s nečim što vam nije stalo do nazdravljanja. Preporučuje se da ga usmjerite na nešto poput praznog USB ključa koji biste jednostavno mogli ponovno formatirati.

Recimo da se vaš štapić prikazuje kao / dev / sdc , onda biste mogli koristiti sudo fdisk / dev / sdc da se to natovari. Ako u njoj imate važeću particiju, tada upišite t da biste promijenili tip, a tip L za učitavanje heksadecimalnog popisa kodova. Imajte na umu da MBR i GUID particijske sheme različito razgovaraju s jezgrom i stoga imaju različite zadatke.

2016-11-25_020331

Češće ćete imati pogone postavljene na tip 83, što je za Linux pogone, 82, koji je za Linux swap particije, ili jednu od vrsta datoteka FAT. FAT datira u jednom ili drugom obliku iz 1977. godine i još uvijek je poželjan za mnoge vrste mobilnih uređaja, kao i za mnoge prijenosne pogone. Imajte na umu da neke vrste particija, poput tipa 0x0c, sadrže nešto što se naziva LBA podrška.

Kada programer dizajnira jezgru za operativni sustav, oni imaju nekoliko različitih načina na koji mogu gledati diskove. Jedan je podijeliti ploče na cilindre, glave i sektore. Ovo je bio klasičan način najdužeg pozivanja na tvrde diskove. Izvorna geometrija diska nikada nije bila važna za Linux, a ovoj shemi nažalost nedostaje adresa nakon približno 8 binarnih Gigabajta. Drugi način je upotreba logičkog C / H / S adresiranja, koje to i čini, ali zatim omogućuje kontroloru diska da mapira cilindre, glavu i sektore gdje god želi. Zbog toga bi operativni sustav teoretski mogao tvrditi da su glave na SD kartici ili USB sticku kad je to fizički nemoguće.

Treća metoda je putem logičkog adresiranja blokova, što je ono što LBA predstavlja. Svaki fizički blok u volumenu dobiva broj u ovoj shemi. Operativni sustav govori kontroloru diska da upiše u određeni numerirani blok, ali zapravo ne zna je li to izravni blok na disku. To je shema koja se danas najviše koristi, a sigurno se koristi na velikoj većini tvrdih diskova od sredine 1990-ih.

Linux nudi podršku za jezgru za montiranje raznih vrsta particija bez izravnog unosa, ali svejedno je najbolje da ne budete previše neobični kada ih odabirete. Možete nazdraviti podacima ako ste odabrali vrlo čudan tip particije za odabir sustava datoteka.

Metoda 4: Sistemski pozivi iz Priručnika za Linux programera

Čitači man stranica na brodu koji su uključeni u većinu distribucija Linuxa zapravo vam mogu pružiti kurs padanja sistemskih poziva, što može neizmjerno pomoći u učenju o jezgri. Pokrenite preglednik grafičkih man stranica xman ili s .desktop veze ako ga imate, ili pak držanjem super tipke i R istovremeno, a zatim tipkanjem xman i pritiskom na enter. Odaberite opciju 'Manual Page', a zatim s padajućeg izbornika odaberite 'Sections' i na kraju '(2) System Calls'.

2016-11-25_020430

Jednom kada opcija glasi „ uvod ”, Odaberite to. Tada će vas pozdraviti stranica iz Priručnika za Linux programera koja će vas poprilično naučiti o sistemskim pozivima.

2016-11-25_020518

6 minuta čitanja