Hvordan lære mer om Linux-kjernen fra din egen maskin



Prøv Instrumentet Vårt For Å Eliminere Problemer

Å lære å jobbe med GNU / Linux innebærer generelt å lære å jobbe med et skrivebordsmiljø. Tema-teknologi gjør at disse skrivebordsmiljøene kan etterligne grensesnittene til iOS-, Microsoft Windows- og OS X-enheter. Dette bidrar til å minimere dette som det var. Mange går lenger og lærer Unix kommandolinjeadministrasjon med Bash eller tcsh-skallene. Imidlertid kan det å bli kjent med det indre av Linux-kjernen hjelpe deg med å forstå bedre hvordan forskjellige deler av opcode samhandler med hverandre.



Noen mennesker vil hevde at det er best å gå flere skritt videre og i tillegg lære hvordan kompilatorer overfører C-kode til maskininstruktører for en mikroprosessor. Advokatene for monteringskoder hevder da at det er best å lære ASM å virkelig forstå programmering på x86- og x86_64-plattformene. Uavhengig av disse posisjonene, kan grunnleggende Linux-kommandoer gi et vell av informasjon om hvordan kjernen ser datamaskinen din. Å lære gjennom et blikk, men ikke berør paradigmet, er en fin måte å mestre selve kjernen på. Mens rotkontoen ble brukt til eksemplene på denne siden, anbefales det sterkt at du bare ser kjernekoblede kataloger gjennom en brukerkonto.



Metode 1: / proc Directory

/ Proc-katalogen ligger i en av de primære regionene i rotkatalogen på toppnivå i en hvilken som helst Unix-filstruktur. Den inneholder det som kalles proc-filsystemet, bedre kjent som procfs, som inneholder informasjon om hvordan forskjellige ressurser får tilgang til kjerneminnet. Den er kartlagt til / proc på det tidspunktet systemet starter opp. Siden denne proxy-filstrukturen fungerer som et grensesnitt til den interne datastrukturen inne i Linux-kjernen, er det nok en gang best å bare utforske dette via en brukerkonto. De fleste filer blir klassifisert av den synlige systemfilstrukturen uansett som skrivebeskyttet, men det er best å være på den sikre siden.



Når det er sagt, er hver av disse en tekstfil, slik at du kan se dem hvis du ønsker det. Bruk cd-kommandoen til å gå inn i / proc-katalogen, og gi deretter ls for å se på hva som er der. Bruk katten, mindre eller mer kommando med noen av filene for å se på dem. Cpuinfo-filen er et godt sted å starte, siden den viser hvordan kjernen ser på mikroprosessoren din. Se på stat-filen for en oversikt over prosesser som kjører.

2016-11-25_020006

Å skrive kattenheter vil gi deg en titt på hvilke ting som er festet til maskinen din.



2016-11-25_020109

Forresten, du kan alltid utstede kommandomannen proc for en oversikt over hvordan / proc-filstrukturen forholder seg til kjernen. Siden som vises kommer fra Linux Programmer's Manual.

2016-11-25_020156

Metode 2: / sys Directory

Neste stopp på turen til kjernen din er / sys, som er en annen katalog som er kartlagt til en late filstruktur. Dette følger det samme generelle Unix-konseptet som / proc gjør, men det eksporterer aktivt informasjon om tilknyttede enhetsstasjoner og en rekke kjernedelsystemer. Hvis du noen gang har jobbet med et BSD-basert system, kan du være mer kjent med sysctl som gir disse funksjonene. PCI-, USB- og S / 390-bussenheter er alle tilordnet til / sys-katalogen.

Bruk cd / sys til å gå over til katalogen, og gi deretter kommandoen ls eller dir. Du kan ha kataloger med tittelen blokk, klasse, enheter, fs, kjerne og kanskje andre. Du kan utforske disse for ytterligere flate filer som inneholder informasjon om systemet, men gjør det igjen fra en brukerkonto og hold øye, men ikke berør mentalitet om deg selv.

Metode 3: / dev-katalogen

Bruk cd / dev-kommandoen til å gå over til / dev-katalogen, som kan være den virtuelle strukturen til kjernen du allerede er mest kjent med. Navnet betyr enheter, og inneholder filrepresentasjon av enheter som er koblet til systemet ditt. En ls-kommando i denne katalogen vil returnere mange filer til og med den enkleste serverdistribusjonen.

2016-11-25_020242

Noen få av disse er veldig spesielle. / Dev / null-filen er en null-enhet som ikke gjør noe. Hvis du skriver cat / dev / null, får du ingenting ut av det. Det kalles bitbøtte, og utdata kan omdirigeres til den for å holde skjermen ren. En fil kalt / dev / zero inneholder ingenting annet enn null data, som kan skrives til en disk for å nullstille den. Tilfeldige filer og urandom-filer inneholder tilfeldige søppeldata for å opprette sikkerhetshash.

Hvis du noen gang har formatert en disk, har du sannsynligvis i det minste litt erfaring med måten Linux-kjernen ser på dem. Hver disk festet til systemet får et navn som sda, sdb og så videre for hver disk. Ulike disktyper får forskjellige navn. Husk at / dev-katalogen bruker en potensiell formell informatikkdefinisjon av disk i stedet for måten vi vanligvis bruker det begrepet på. Dette betyr at en harddisk, en SSD, et SD-kort, et microSDHC-kort, et montert smarttelefonfilsystem som er festet via USB, USB-pinner og til og med monterte nettbrett er alle disker til kjernen.

Hvert disknavn i Linux får deretter et tall etter at det indikerer et partisjonsnummer. Hvis du hadde en SSD med to primære partisjoner, kan du ha / dev / sda1 og / dev / sda2 som gyldige volumer. Mer enn sannsynlig hvis du kjører Linux fra en stasjonær eller bærbar PC med MBR-stilpartisjonering, har du / dev / sda1 satt til ext4-partisjonen som faktisk har Linux installert på den. Mer enn sannsynlig / dev / sda2 er en utvidet partisjon som deretter inneholder / dev / sda5 som en byttepartisjon. Denne ordningen er vanlig, men på ingen måte nødvendig. Merk at siden byttepartisjonen i dette vanlige eksemplet er en logisk disk inne i en utvidet partisjon, mottar den 5 i stedet for 3 som tallet.

Hvis du vil lære mer om hvordan kjernen viser og formaterer partisjoner, kan du faktisk se en støttet partisjonsliste med fdisk-kommandoen. Samtidig som fdisk skriver ikke partisjonstabeller før du forteller det, det er fortsatt best å prøve dette med noe du ikke bryr deg om å riste. Det anbefales å peke den mot noe som en tom USB-pinne som du enkelt kan formatere på nytt.

La oss si at pinnen din dukker opp som / dev / sdc , så kan du bruke sudo fdisk / dev / sdc for å få den lastet opp. Hvis du har en gyldig partisjon i den, skriv deretter t for å endre typen og typen L for å laste inn en hex-kodeliste. Merk at MBR- og GUID-partisjonsskjemaer snakker med kjernen på en annen måte, og derfor har forskjellige oppgaver.

2016-11-25_020331

Oftere enn ikke har du stasjoner satt til type 83, som er for Linux-stasjoner, 82, som er for Linux-byttepartisjoner, eller en av FAT-filtypene. FAT dateres tilbake i en eller annen form til 1977, og er fortsatt foretrukket for mange typer mobile enheter, så vel som mange flyttbare stasjoner. Merk at noen partisjonstyper, for eksempel type 0x0c, har noe som kalles LBA-støtte.

Når en programmerer designer en kjerne for et operativsystem, har de noen forskjellige måter de kan se på disker på. Den ene er å dele platene i sylindere, hoder og sektorer. Dette var den klassiske måten å referere til harddisker i lengst tid. Ekte diskgeometri har aldri vært viktig for Linux, og denne ordningen går dessverre tom for adresser etter omtrent 8 binære gigabyte. Den andre måten er å bruke Logisk C / H / S-adressering, som gjør dette, men deretter lar diskkontrolleren kartlegge sylinder-, hode- og sektornumre hvor de vil. Dette er grunnen til at et operativsystem teoretisk kunne hevde at det var hoder i et SD-kort eller en USB-pinne når dette er fysisk umulig.

Den tredje metoden er gjennom Logical Block Addressing, som LBA står for. Hver fysiske blokk i et volum får et tall i dette skjemaet. Operativsystemet ber diskkontrolleren om å skrive til en bestemt nummerert blokk, men vet faktisk ikke om det er den direkte blokken på disken. Dette er ordningen som er mest brukt i dag, og det er absolutt blitt brukt på de aller fleste harddisker siden midten av 1990-tallet.

Linux tilbyr kjernestøtte for å montere et bredt utvalg av partisjonstyper uten direkte inngang, men det er fortsatt best å ikke være for outlandish når du velger dem. Du kan skåle dataene dine hvis du laget en veldig merkelig partisjonstype til valg av filsystem.

Metode 4: Systemanrop fra Linux Programmer's Manual

Onboard man sides lesere inkludert med et flertall av Linux-distribusjoner kan faktisk gi deg et krasjkurs på systemanrop, noe som kan hjelpe enormt med å lære om kjernen. Start xman grafiske nettleser for manussider enten fra en .desktop-lenke hvis du har en, eller alternativt ved å holde nede supertasten og R samtidig og deretter skrive xman og trykke enter. Velg alternativet 'Manuell side' og velg deretter 'Seksjoner' og til slutt '(2) Systemanrop' fra rullegardinmenyen.

2016-11-25_020430

En gang et alternativ som leser “ intro ”Vises, velg det. En side fra Linux Programmer's Manual som vil lære deg ganske mye om systemanrop, vil hilse på deg.

2016-11-25_020518

6 minutter lest