Så här lär du dig mer om Linux-kärnan från din egen maskin



Prova Vårt Instrument För Att Eliminera Problem

Att lära sig att arbeta med GNU / Linux innebär i allmänhet att lära sig att arbeta med en skrivbordsmiljö. Temateknik gör att dessa skrivbordsmiljöer kan efterlikna gränssnitten för iOS-, Microsoft Windows- och OS X-enheter. Detta hjälper till att minimera detta som det var. Många människor går längre och lär sig Unix kommandoradsadministration med Bash eller tcsh-skalen. Att bli kunnig om internt i Linux-kärnan kan dock hjälpa dig att bättre förstå hur olika delar av opcode interagerar med varandra.



Vissa människor skulle argumentera för att det vore bäst att gå flera steg längre och dessutom lära sig hur kompilatorer överför C-kod till maskininstruktörer för en mikroprocessor. Förespråkar för församlingskod skulle sedan hävda att det är bäst att lära sig ASM för att verkligen förstå programmering på x86- och x86_64-plattformarna. Oavsett dessa positioner kan grundläggande Linux-kommandon ge en mängd information om hur kärnan ser din dator. Att lära sig genom en titt men inte röra vid paradigm är ett utmärkt sätt att bemästra själva kärnan. Medan rotkontot användes för exemplen på den här sidan rekommenderas det starkt att du bara ser kärnlänkade kataloger via ett användarkonto.



Metod 1: / proc-katalogen

Katalogen / proc sitter i en av de primära regionerna i rotkatalogen på högsta nivå i valfri Unix-filstruktur. Den innehåller det som kallas proc-filsystemet, bättre känt som procfs som innehåller information om hur olika resurser får åtkomst till kärnminnet. Det mappas till / proc när systemet startas. Eftersom denna proxyfilstruktur fungerar som ett gränssnitt till den interna datastrukturen inuti Linux-kärnan är det återigen bäst att bara utforska detta via ett användarkonto. De flesta filer klassificeras ändå av den synliga systemfilstrukturen som skrivskyddad, men det är bäst att vara på den säkra sidan.



Med detta sagt, var och en av dessa är en textfil, så du kan se dem om du vill. Använd cd-kommandot för att komma in i / proc-katalogen och utfärda ls för att se vad som finns där. Använd katten, mindre eller mer kommando med någon av filerna för att titta på dem. Cpuinfo-filen är ett bra ställe att börja på eftersom den visar hur kärnan ser din mikroprocessor. Titta på stat-filen för en vy över pågående processer.

2016-11-25_020006

Att skriva kattapparater ger dig en titt på vilka saker som är anslutna till din maskin.



2016-11-25_020109

Förresten kan du alltid utfärda kommandot man proc för en genomgång av hur / proc-filstrukturen relaterar till kärnan. Sidan som visas kommer från Linux Programmer's Manual.

2016-11-25_020156

Metod 2: Katalogen / sys

Ditt nästa stopp på turnén i din kärna är / sys, som är en annan katalog mappad till en låtsande filstruktur. Detta följer samma allmänna Unix-koncept som / proc gör, men det exporterar istället aktivt information om tillhörande enhetsenheter och ett antal kärnsubsystem. Om du någonsin har arbetat med ett BSD-baserat system kanske du är mer bekant med sysctl som tillhandahåller dessa funktioner. PCI-, USB- och S / 390-bussenheter mappas till katalogen / sys.

Använd cd / sys för att gå över till katalogen och sedan ge kommandot ls eller dir. Du kan ha kataloger med titeln block, class, devices, fs, kernel och kanske andra. Du kan utforska dessa för ytterligare platta filer som innehåller information om systemet, men gör det igen från ett användarkonto och titta, men rör inte mentaliteten om dig själv.

Metod 3: / dev-katalogen

Använd kommandot cd / dev för att gå över till / dev-katalogen, vilket kan vara den virtuella kärnstrukturen som du redan är mest bekant med. Namnet betyder enheter och innehåller filrepresentation av enheter som är anslutna till ditt system. Ett ls-kommando i den här katalogen returnerar många filer till och med den enklaste serverdistributionen.

2016-11-25_020242

Några av dessa är mycket speciella. Filen / dev / null är en null-enhet som inte gör något. Om du skriver cat / dev / null får du inget ut av det. Det kallas bitskopan och utdata kan omdirigeras till den för att hålla skärmen ren. En fil som heter / dev / zero innehåller ingenting annat än noll data, som kan skrivas till en disk för att nollställa den. Slumpmässiga filer och urandom-filer innehåller slumpmässiga skräpdata för att skapa säkerhetshash.

Om du någonsin har formaterat en disk har du förmodligen åtminstone lite erfarenhet av hur Linux-kärnan ser dem. Varje disk som är ansluten till systemet får ett namn som sda, sdb och så vidare för varje disk. Olika skivtyper får olika namn. Tänk på att / dev-katalogen använder en potentiell formell datavetenskaplig definition av disk snarare än det sätt som vi brukar använda den termen. Det betyder att en hårddisk, en SSD, ett SD-kort, ett microSDHC-kort, ett monterat smarttelefonsfilsystem anslutet via USB, USB-minnen och till och med monterade surfplattor är alla skivor till kärnan.

Varje disknamn i Linux får sedan en siffra efter det som anger ett partitionsnummer. Om du hade en SSD med två primära partitioner kan du ha / dev / sda1 och / dev / sda2 som giltiga volymer. Mer än troligt om du kör Linux från en stationär eller bärbar dator med MBR-stilpartitionering, har du / dev / sda1 inställt på ext4-partitionen som faktiskt har Linux installerad på den. Mer än troligt / dev / sda2 är en utökad partition som sedan innehåller / dev / sda5 som en swap-partition. Detta schema är vanligt, men inte alls nödvändigt. Observera att eftersom swap-partitionen i detta vanliga exempel är en logisk skiva inuti en utökad partition, får den 5 istället för 3 som siffra.

Om du vill lära dig mer om hur kärnvyn och formaterar partitioner, kan du faktiskt visa en partitionslista som stöds med kommandot fdisk. Medan fdisk skriver inte partitionstabeller förrän du berättar det, det är fortfarande bäst att prova detta med något du inte bryr dig om att rosta. Det rekommenderas att peka på något som ett tomt USB-minne som du enkelt kan formatera om.

Låt oss säga att din pinne visas som / dev / sdc , då kan du använda sudo fdisk / dev / sdc för att få den laddad. Om du har en giltig partition i den, skriv t för att ändra typ och typ L för att ladda en hex-kodlista. Observera att MBR- och GUID-partitionsscheman talar till kärnan på olika sätt och därför har olika tilldelningar.

2016-11-25_020331

Oftare har du enheter som är inställda på typ 83, vilket är för Linux-enheter, 82, som är för Linux-bytespartitioner eller en av FAT-filtyperna. FAT går tillbaka i någon form till 1977 och föredras fortfarande för många typer av mobila enheter såväl som för många flyttbara enheter. Observera att vissa partitionstyper, som typ 0x0c, har något som kallas LBA-stöd.

När en programmerare utformar en kärna för ett operativsystem har de några olika sätt att titta på skivor. En är att dela upp tallrikarna i cylindrar, huvuden och sektorer. Detta var det klassiska sättet att hänvisa till hårddiskar under den längsta tiden. Äkta skivgeometri har aldrig varit så viktigt för Linux, och tyvärr har detta schema slut på adresser efter cirka 8 binära gigabyte. Det andra sättet är att använda Logical C / H / S-adressering, som gör detta, men sedan tillåter skivkontrollen att mappa cylinder-, huvud- och sektornummer varhelst de vill. Det är därför ett operativsystem teoretiskt sett kan hävda att det fanns huvuden på ett SD-kort eller ett USB-minne när det är fysiskt omöjligt.

Den tredje metoden är genom logisk blockadressering, vilket är vad LBA står för. Varje fysiskt block i en volym får en siffra i detta schema. Operativsystemet ber hårddiskstyrenheten att skriva till ett visst numrerat block, men vet faktiskt inte om det är det direkta blocket på disken. Detta är det schema som används mest idag, och det har verkligen använts på de allra flesta hårddiskar sedan mitten av 1990-talet.

Linux erbjuder kärnstöd för att montera ett stort antal partitionstyper utan direkt inmatning, men det är fortfarande bäst att inte vara för outlandish när du väljer dem. Du kan rosta dina data om du gjorde en väldigt konstig partitionstyp för filsystemets matchande val.

Metod 4: Systemanrop från Linux Programmer's Manual

Inbyggda man-sidläsare som ingår i en majoritet av Linux-distributioner kan faktiskt ge dig en kraschkurs om systemsamtal, vilket kan hjälpa till enormt med att lära dig mer om kärnan. Starta xmans grafiska man-webbläsare antingen från en .desktop-länk om du har en, eller alternativt genom att hålla ner superknappen och R samtidigt och sedan skriva xman och trycka på enter. Välj alternativet 'Manuell sida' och välj sedan 'Avsnitt' och slutligen '(2) Systemanrop' från rullgardinsmenyn.

2016-11-25_020430

En gång ett alternativ som läser “ intro ”Visas, välj det. En sida från Linux Programmer's Manual som lär dig en hel del om systemanrop hälsar dig sedan.

2016-11-25_020518

6 minuter läst