Sådan lærer du mere om Linux-kernen fra din egen maskine



Prøv Vores Instrument Til At Fjerne Problemer

At lære at arbejde med GNU / Linux indebærer generelt at lære at arbejde med et skrivebordsmiljø. Temateknologi giver disse desktop-miljøer mulighed for at efterligne grænsefladerne til iOS-, Microsoft Windows- og OS X-enheder. Dette hjælper med at minimere dette som det var. Mange mennesker går længere og lærer Unix kommandolinjeadministration med Bash eller tcsh-skaller. At blive vidende om internerne i Linux-kernen kan dog hjælpe dig med bedre at forstå, hvordan forskellige stykker opcode interagerer med hinanden.



Nogle mennesker hævder, at det ville være bedst at gå flere skridt videre og desuden lære, hvordan kompilatorer transmitterer C-kode til maskininstruktører til en mikroprocessor. Forsvarere for forsamlingskoder argumenterer derefter for, at det er bedst at lære ASM at virkelig forstå programmering på x86- og x86_64-platformene. Uanset disse positioner kan basale Linux-kommandoer give et væld af oplysninger om, hvordan kernen ser din computer. At lære gennem et blik, men ikke røre ved paradigme, er en fantastisk måde at mestre selve kernen på. Mens rodkontoen blev brugt til eksemplerne på denne side, anbefales det stærkt, at du kun nogensinde ser kernelinkede mapper via en brugerkonto.



Metode 1: / proc Directory

Kataloget / proc sidder i en af ​​de primære regioner i det øverste rodkatalog i enhver Unix-filstruktur. Den indeholder det, der kaldes proc-filsystemet, bedre kendt som procfs, der indeholder oplysninger om, hvordan forskellige ressourcer får adgang til kernenhukommelse. Det er kortlagt til / proc på det tidspunkt, systemet starter. Da denne proxy-filstruktur fungerer som en grænseflade til den interne datastruktur inde i Linux-kernen, er det endnu engang bedst kun at udforske dette via en brugerkonto. De fleste filer klassificeres alligevel efter den synlige systemfilstruktur som skrivebeskyttet, men det er bedst at være på den sikre side.



Når det er sagt, er hver af disse en tekstfil, så du kan se dem, hvis du ønsker det. Brug cd-kommandoen til at gå ind i / proc-biblioteket, og udgiv derefter ls for at se, hvad der er der. Brug katten, mindre eller mere kommando med nogen af ​​filerne til at se på dem. Cpuinfo-filen er et godt sted at starte, da den viser, hvordan kernen ser din mikroprocessor. Se på stat-filen for en visning af kørende processer.

2016-11-25_020006

At skrive kattenheder giver dig et kig på, hvilke ting der er knyttet til din maskine.



2016-11-25_020109

Forresten kan du altid udstede kommandomanden proc for en gennemgang af, hvordan / proc-filstrukturen relaterer til kernen. Den viste side kommer fra Linux Programmer's Manual.

2016-11-25_020156

Metode 2: / sys-kataloget

Dit næste stop på rundvisningen i din kerne er / sys, som er en anden mappe tilknyttet en foregivende filstruktur. Dette følger det samme generelle Unix-koncept som / proc gør, men det eksporterer i stedet aktivt information om tilknyttede enhedsdrev og et antal kernedelsystemer. Hvis du nogensinde har arbejdet med et BSD-baseret system, er du måske mere fortrolig med sysctl, der leverer disse funktioner. PCI-, USB- og S / 390-busenheder er alle tilknyttet til / sys-biblioteket.

Brug cd / sys til at gå over til biblioteket og derefter udstede kommandoen ls eller dir. Du har muligvis mapper med titlen block, class, devices, fs, kernel og måske andre. Du kan udforske disse for yderligere flade filer, der indeholder information om systemet, men gør det igen fra en brugerkonto og hold et kig, men rør ikke mentaliteten om dig selv.

Metode 3: / dev-kataloget

Brug cd / dev-kommandoen til at gå over til / dev-biblioteket, som muligvis er den ene kerne virtuelle struktur, du allerede er mest fortrolig med. Navnet betyder enheder og indeholder filrepræsentation af enheder, der er knyttet til dit system. En ls-kommando i denne mappe returnerer mange filer på selv den enkleste serverdistribution.

2016-11-25_020242

Et par af disse er meget specielle. Filen / dev / null er en null-enhed, der ikke gør noget. Hvis du skriver cat / dev / null, får du intet ud af det. Det kaldes bit spand, og output kan omdirigeres til det for at holde skærmen ren. En fil kaldet / dev / zero indeholder intet andet end nul data, som kan skrives til en disk for at nulstille dem. De tilfældige filer og urandom-filer indeholder tilfældige uønskede data til oprettelse af sikkerhedshash.

Hvis du nogensinde har formateret en disk, har du sandsynligvis i det mindste noget erfaring med den måde, Linux-kernen ser dem på. Hver disk, der er knyttet til systemet, får et navn som sda, sdb og så videre for hver disk. Forskellige disktyper får forskellige navne. Husk, at / dev-biblioteket bruger en potentiel formel datalogisk definition af disk snarere end den måde, vi normalt bruger dette udtryk på. Dette betyder, at en harddisk, en SSD, et SD-kort, et microSDHC-kort, et monteret smartphone-filsystem, der er tilsluttet via USB, USB-sticks og endda monterede tabletter er alle diske til kernen.

Hvert disknavn i Linux modtager derefter et tal efter det, der angiver et partitionsnummer. Hvis du havde en SSD med to primære partitioner, har du muligvis / dev / sda1 og / dev / sda2 som gyldige diskenheder. Mere end sandsynligt, hvis du kører Linux fra en stationær eller bærbar computer med MBR-stilpartitionering, så har du / dev / sda1 indstillet til ext4-partitionen, der faktisk har Linux installeret på den. Mere end sandsynligt / dev / sda2 er en udvidet partition, som derefter indeholder / dev / sda5 som en swap-partition. Denne ordning er almindelig, men på ingen måde nødvendig. Bemærk, at da swap-partitionen i dette almindelige eksempel er en logisk disk inde i en udvidet partition, modtager den 5 i stedet for 3 som sit tal.

Hvis du vil lære mere om, hvordan kernen ser og formaterer partitioner, kan du faktisk se en understøttet partitionsliste med kommandoen fdisk. Mens fdisk skriver ikke partitionstabeller, før du fortæller det, det er stadig bedst at prøve dette med noget, du ikke er ligeglad med at skåle. Det anbefales at pege på noget som en tom USB-nøgle, som du let kan omformatere.

Lad os sige, at din pind vises som / dev / sdc , så kunne du bruge sudo fdisk / dev / sdc for at få det indlæst. Hvis du har en gyldig partition i den, skal du skrive t for at ændre typen og typen L for at indlæse en hex-kodeliste. Bemærk, at MBR- og GUID-partitionsordninger taler til kernen forskelligt og derfor har forskellige tildelinger.

2016-11-25_020331

Oftere end ikke har du drev indstillet til type 83, som er til Linux-drev, 82, som er til Linux-swap-partitioner eller en af ​​FAT-filtyperne. FAT går i en eller anden form tilbage til 1977 og foretrækkes stadig for mange typer mobile enheder såvel som mange flytbare drev. Bemærk, at nogle partitionstyper, f.eks. Type 0x0c, har noget, der kaldes LBA-support.

Når en programmør designer en kerne til et operativsystem, har de et par forskellige måder, de kan se på diske. Den ene er at opdele pladerne i cylindre, hoveder og sektorer. Dette var den klassiske måde at henvise til harddiske i længst tid. Ægte diskgeometri har aldrig rigtig været vigtig for Linux, og denne ordning løber desværre tør for adresser efter ca. 8 binære gigabyte. Den anden måde er at bruge logisk C / H / S-adressering, som gør dette, men derefter giver diskcontrolleren mulighed for at kortlægge cylinder-, hoved- og sektornumre, hvor de helst vil. Dette er grunden til, at et operativsystem teoretisk kunne hævde, at der var hoveder på et SD-kort eller en USB-nøgle, når dette er fysisk umuligt.

Den tredje metode er gennem logisk blokadressering, hvilket LBA står for. Hver fysiske blok i et bind modtager et tal i dette skema. Operativsystemet beder diskcontrolleren om at skrive til en bestemt nummereret blok, men ved faktisk ikke, om det er den direkte blok på disken. Dette er den ordning, der er mest brugt i dag, og den er bestemt blevet brugt på langt størstedelen af ​​harddiske siden midten af ​​1990'erne.

Linux tilbyder kernesupport til montering af en lang række partitionstyper uden direkte input, men det er stadig bedst ikke at være for fremmed, når du vælger dem. Du kan skåle dine data, hvis du lavede en meget mærkelig partitionstype til filsystemets matchende valg.

Metode 4: Systemopkald fra Linux Programmer's Manual

Onboard man sider-læsere inkluderet med et flertal af Linux-distributioner kan faktisk give dig et nedbrudskursus på systemopkald, som kan hjælpe enormt med at lære om kernen. Start den grafiske xman-browser til mandsider, enten fra et .desktop-link, hvis du har en, eller alternativt ved at holde supertasten og R nede på samme tid og derefter skrive xman og trykke på enter. Vælg 'Manuel side' og vælg derefter 'Sektioner' og til sidst '(2) Systemopkald' i rullemenuen.

2016-11-25_020430

Når en mulighed læser “ intro ”Vises, vælg det. En side fra Linux Programmer's Manual, der vil lære dig en hel del om systemopkald, vil derefter hilse på dig.

2016-11-25_020518

6 minutter læst