Leer meer over de Linux-kernel van je eigen machine

Leren werken met GNU / Linux betekent over het algemeen leren werken met een desktopomgeving. Dankzij de thematechnologie kunnen deze desktopomgevingen de interfaces van iOS-, Microsoft Windows- en OS X-apparaten nabootsen. Dit helpt om dit als het ware te minimaliseren. Veel mensen gaan verder en leren Unix-opdrachtregelbeheer met de Bash- of tcsh-shells. Kennis van de interne onderdelen van de Linux-kernel kan je echter helpen om beter te begrijpen hoe verschillende stukjes opcode met elkaar in wisselwerking staan.

Sommige mensen zouden stellen dat het het beste is om een ​​aantal stappen verder te gaan en bovendien te leren hoe compilers C-code omzetten in machineleider voor een microprocessor. Voorstanders van assemblagecode zouden dan betogen dat het het beste is om ASM te leren om echt te begrijpen wat programmeren op de x86- en x86_64-platforms is. Ongeacht deze posities kunnen standaard Linux-commando's een schat aan informatie bieden over hoe de kernel jouw computer ziet. Door een blik te leren, maar paradigma niet aan te raken, is een geweldige manier om de kernel zelf onder de knie te krijgen. Hoewel het root-account werd gebruikt voor de voorbeelden op deze pagina, is het ten zeerste aan te bevelen om alleen kernel-gekoppelde mappen via een gebruikersaccount te bekijken.

Methode 1: De / proc-map

De map / proc bevindt zich in een van de primaire regio's van de hoofddirectory van het hoogste niveau in elke Unix-bestandsstructuur. Het bevat het zogenaamde proc-bestandssysteem, beter bekend als procfs, dat informatie bevat over de manier waarop verschillende bronnen toegang hebben tot kernelgeheugen. Het is toegewezen aan / proc op het moment dat het systeem opstart. Aangezien deze proxy-bestandsstructuur dient als een interface naar de interne datastructuur binnen de Linux-kernel, is het wederom het beste om dit alleen via een gebruikersaccount te verkennen. De meeste bestanden worden door de zichtbare systeembestandsstructuur toch geclassificeerd als alleen-lezen, maar het is het beste om aan de veilige kant te blijven.

Dat gezegd hebbende, elk van deze is een tekstbestand, dus u kunt ze bekijken als u dat wilt. Gebruik de opdracht cd om de / proc-map te openen en vervolgens ls uit te geven om te zien wat er is. Gebruik de kat, minder of meer commando's met een van de bestanden om ernaar te kijken. Het cpuinfo-bestand is een goede plaats om te starten, omdat het laat zien hoe de kernel naar uw microprocessor kijkt. Kijk naar het stat-bestand voor een weergave van lopende processen.

Door apparaten voor katten te typen, kunt u zien welke dingen op uw machine zijn aangesloten.

Overigens kunt u altijd de opdracht man proc uitgeven voor een overzicht van hoe de / proc-bestandsstructuur betrekking heeft op de kernel. De pagina die wordt weergegeven komt uit de Linux Programmer's Manual.

Methode 2: De / sys-directory

Uw volgende stop tijdens de rondleiding door uw kernel is / sys, oftewel een andere map die is toegewezen aan een zogenaamde bestandsstructuur. Dit volgt hetzelfde algemene Unix-concept als / proc, maar in plaats daarvan voert het actief informatie uit over bijbehorende apparaatschijven en een aantal kernelsubsystemen. Als u ooit met een op BSD gebaseerd systeem hebt gewerkt, dan bent u wellicht beter bekend met sysctl met deze functies. PCI-, USB- en S / 390-busapparaten worden allemaal toegewezen aan de map / sys.

Gebruik cd / sys om naar de map te gaan en voer vervolgens de opdracht ls of dir uit. Mogelijk hebt u mappen met de naam block, class, devices, fs, kernel en misschien anderen. Je kunt deze verkennen voor verdere platte bestanden die informatie over het systeem bevatten, maar doe dit opnieuw vanuit een gebruikersaccount en houd een blik, maar raak de mentaliteit over jezelf niet aan.

Methode 3: De / dev-map

Gebruik het cd / dev-commando om naar de / dev-map te gaan, wat misschien de enige kernel-virtuele structuur is waarmee je al het meest vertrouwd bent. De naam betekent apparaten en bevat bestandsrepresentatie van apparaten die op uw systeem zijn aangesloten. Een ls-opdracht in deze map retourneert veel bestanden op zelfs de eenvoudigste serverdistributie.

Een paar hiervan zijn heel bijzonder. Het / dev / null-bestand is een nul-apparaat dat niets doet. Als u cat / dev / null typt, krijgt u er niets meer uit. Het wordt de bit-bucket genoemd en de uitvoer kan er naar worden omgeleid om het scherm schoon te houden. Een bestand met de naam / dev / zero bevat niets dan nul gegevens, die naar een schijf kunnen worden geschreven om het uit te zetten. De willekeurige en urandom-bestanden bevatten willekeurige ongewenste gegevens voor het maken van beveiligingshashes.

PRO TIP: Als het probleem zich voordoet met uw computer of een laptop / notebook, kunt u proberen de Reimage Plus-software te gebruiken die de opslagplaatsen kan scannen en corrupte en ontbrekende bestanden kan vervangen. Dit werkt in de meeste gevallen, waar het probleem is ontstaan ​​door een systeembeschadiging. U kunt Reimage Plus downloaden door hier te klikken

Als je ooit een schijf hebt geformatteerd, heb je waarschijnlijk op zijn minst enige ervaring met de manier waarop de Linux-kernel ze bekijkt. Elke schijf die aan het systeem is gekoppeld, krijgt voor elke schijf een naam als sda, sdb enzovoort. Verschillende schijftypen krijgen verschillende namen. Houd er rekening mee dat de / dev-directory één mogelijke formele computerwetenschappendefinitie van schijf gebruikt in plaats van de manier waarop we die term gewoonlijk gebruiken. Dit betekent een harde schijf, een SSD, een SD-kaart, een microSDHC-kaart, een gekoppeld smartphone-bestandssysteem aangesloten via USB, USB-sticks en zelfs gemonteerde tablets zijn allemaal schijven naar de kernel.

Elke schijfnaam in Linux krijgt dan een cijfer nadat het een partitienummer aangeeft. Als u een SSD met twee primaire partities had, dan heeft u mogelijk / dev / sda1 en / dev / sda2 als geldige volumes. Meer dan waarschijnlijk als je Linux vanaf een desktop of laptop met partitionering in MBR-stijl gebruikt, heb je / dev / sda1 ingesteld op de ext4-partitie waarop Linux is geïnstalleerd. Meer dan waarschijnlijk / dev / sda2 is een uitgebreide partitie die dan / dev / sda5 als een swappartitie bevat. Dit schema is gebruikelijk, maar absoluut niet noodzakelijk. Merk op dat aangezien de swap-partitie in dit algemene voorbeeld een logische schijf is binnen een uitgebreide partitie, deze 5 in plaats van 3 als zijn nummer ontvangt.

Als je meer wilt weten over de manier waarop de kernel partities bekijkt en opmaakt, kun je een ondersteunde partitielijst bekijken met de fdisk-opdracht. Hoewel fdisk geen partitietabellen schrijft totdat u dit zegt, is het toch het beste om dit te proberen met iets waar u niets om geeft. Het wordt aanbevolen om het te richten op zoiets als een lege USB-stick die je eenvoudig opnieuw kunt formatteren.

Laten we zeggen dat je stick wordt weergegeven als / dev / sdc, dan kun je sudo fdisk / dev / sdc gebruiken om het op te laden. Als u een geldige partitie hebt, typt u t om het type en het type L te wijzigen om een ​​hex-codelijst te laden. Merk op dat MBR- en GUID-partitieschema's anders met de kernel praten en daarom verschillende toewijzingen hebben.

Vaker wel dan niet heb je drives ingesteld op type 83, wat voor Linux-schijven is, 82, wat voor Linux-swap-partities of een van de FAT-bestandstypes is. FAT gaat in de een of andere vorm terug tot 1977 en heeft nog steeds de voorkeur voor veel soorten mobiele apparaten, evenals vele verwijderbare schijven. Merk op dat sommige partitietypen, zoals het type 0x0c, iets bevatten met de naam LBA-ondersteuning.

Wanneer een programmeur een kernel voor een besturingssysteem ontwerpt, kunnen deze op verschillende manieren naar schijven kijken. Een daarvan is om de schotels te verdelen in cilinders, koppen en sectoren. Dit was de klassieke manier om voor de langste keer naar harde schijven te verwijzen. Echte schijfgeometrie is nooit echt belangrijk geweest voor Linux, en dit programma heeft jammer genoeg geen adressen meer na ongeveer 8 binaire gigabytes. De tweede manier is om logische C / H / S-adressering te gebruiken, die dit doet, maar laat de schijfcontroller toe om cilinder-, hoofd- en sectornummers te mappen waar ze maar willen. Dit is de reden waarom een ​​besturingssysteem theoretisch zou kunnen beweren dat er koppen op een SD-kaart of USB-stick zitten als dit fysiek onmogelijk is.

De derde methode is via Logical Block Addressing, dat is waar LBA voor staat. Elk fysiek blok in een volume krijgt een cijfer in dit schema. Het besturingssysteem vertelt de schijfcontroller om naar een bepaald genummerd blok te schrijven, maar weet niet echt of dat het directe blok op schijf is. Dit is het schema dat het meest wordt gebruikt, en het is zeker sinds het midden van de jaren negentig op de overgrote meerderheid van de harde schijven gebruikt.

Linux biedt kernel-ondersteuning om een ​​breed scala aan partitietypen te koppelen zonder directe invoer, maar het is nog steeds het beste om niet te bizar te zijn bij het selecteren ervan. Je zou kunnen toasten op je gegevens als je een heel vreemd type partitie hebt gemaakt voor het kiezen van het systeem.

Methode 4: Systeemaanroepen uit de Linux Programmer's Manual

Aan boord van lezers van man-pagina's die bij een meerderheid van Linux-distributies zijn opgenomen, kan je eigenlijk een spoedcursus krijgen over systeemaanroepen, die enorm kunnen helpen bij het leren van de kernel. Start de xman grafische man paginabrowser vanaf een .desktop-link als je die hebt, of anders door de supersleutel en R tegelijkertijd in te drukken en dan xman te typen en op enter te drukken. Selecteer de optie Handmatige pagina en kies vervolgens Secties en ten slotte (2) Systeemoproepen in het vervolgkeuzemenu.

Zodra een intro voor het lezen van opties verschijnt, selecteert u dat. Een pagina uit de Linux Programmer's Manual die je een beetje zal leren over systeemoproepen zal je dan begroeten.

PRO TIP: Als het probleem zich voordoet met uw computer of een laptop / notebook, kunt u proberen de Reimage Plus-software te gebruiken die de opslagplaatsen kan scannen en corrupte en ontbrekende bestanden kan vervangen. Dit werkt in de meeste gevallen, waar het probleem is ontstaan ​​door een systeembeschadiging. U kunt Reimage Plus downloaden door hier te klikken

Facebook Twitter Google Plus Pinterest