Как да научите повече за ядрото на Linux от вашата собствена машина



Опитайте Нашия Инструмент За Премахване На Проблемите

Да се ​​научиш да работиш с GNU / Linux обикновено предполага да се научиш да работиш с работна среда. Тематичната технология позволява на тези настолни среди да имитират интерфейсите на устройства с iOS, Microsoft Windows и OS X. Това помага да се сведе до минимум това като че ли. Много хора отиват по-далеч и се учат на администриране на командния ред на Unix с черупки Bash или tcsh. Познаването на вътрешните елементи на ядрото на Linux обаче може да ви помогне да разберете по-добре как различните парчета opcode взаимодействат помежду си.



Някои хора биха спорили, че е най-добре да отидат няколко стъпки по-нататък и допълнително да научат как компилаторите преобразуват C кода в машинни инструктори за микропроцесор. Тогава защитниците на кода на събранието ще твърдят, че е най-добре да научите ASM, за да разберете наистина програмирането на платформите x86 и x86_64. Независимо от тези позиции, основните команди на Linux могат да предоставят богата информация за това как ядрото вижда вашия компютър. Ученето чрез поглед, но не докосвайте парадигмата е чудесен начин да овладеете самото ядро. Въпреки че основният акаунт беше използван за примерите на тази страница, силно се препоръчва да преглеждате директории, свързани с ядрото, само чрез потребителски акаунт.



Метод 1: Директорията / proc

Директорията / proc се намира в един от основните региони на коренната директория от първо ниво във всяка Unix файлова структура. Той съдържа така наречената файлова система proc, по-известна като procfs, която съдържа информация за начина, по който различните ресурси имат достъп до паметта на ядрото. То се съпоставя с / proc в момента, в който системата се стартира. Тъй като тази прокси файлова структура служи като интерфейс към вътрешната структура на данни в ядрото на Linux, отново е най-добре да се изследва това чрез потребителски акаунт. Повечето файлове така или иначе се класифицират от видимата структурна файлова структура като само за четене, но най-добре е да сте на сигурно място.



Като се има предвид това, всеки от тях е текстов файл, така че можете да ги видите, ако желаете. Използвайте командата cd, за да влезете в директорията / proc и след това издайте ls, за да видите какво има там. Използвайте командата cat, по-малко или повече с някой от файловете, за да ги разгледате. Файлът cpuinfo е добро място за стартиране, тъй като показва как ядрото гледа на вашия микропроцесор. Погледнете файла stat за изглед на работещи процеси.

2016-11-25_020006

Устройствата за въвеждане на котки ще ви дадат поглед върху нещата, които са прикрепени към вашата машина.



2016-11-25_020109

Между другото, винаги можете да издавате командата man proc за подробна информация за това как файловата структура / proc е свързана с ядрото. Сервираната страница идва от Ръководството за програмист на Linux.

2016-11-25_020156

Метод 2: Директорията / sys

Следващата ви спирка в обиколката на вашето ядро ​​е / sys, което е друга директория, съпоставена с претендираща файлова структура. Това следва същата обща концепция на Unix като / proc, но вместо това активно експортира информация за свързани устройства и редица подсистеми на ядрото. Ако някога сте работили със система, базирана на BSD, може би сте по-запознати със sysctl, предоставящ тези функции. Устройствата за шина PCI, USB и S / 390 са картографирани в директорията / sys.

Използвайте cd / sys, за да преминете към директорията и след това да издадете командата ls или dir. Може да имате директории, озаглавени блок, клас, устройства, fs, ядро ​​и може би други. Можете да ги изследвате за по-нататъшни плоски файлове, които съдържат информация за системата, но за пореден път го направете от потребителски акаунт и запазете поглед, но не докосвайте манталитета за себе си.

Метод 3: Директорията / dev

Използвайте командата cd / dev, за да преминете към директорията / dev, която може да е виртуалната структура с едно ядро, с която вече сте най-запознати. Името означава устройства и съдържа файлово представяне на устройства, свързани към вашата система. Командата ls в тази директория ще върне много файлове дори в най-простата сървърна дистрибуция.

2016-11-25_020242

Някои от тях са много специални. Файлът / dev / null е нулево устройство, което не прави нищо. Ако въведете cat / dev / null, тогава няма да получите нищо от това. Нарича се бит кофа и изходът може да бъде пренасочен към него, за да поддържа екрана чист. Файл, наречен / dev / zero, не съдържа нищо друго освен нулеви данни, които могат да бъдат записани на диск, за да бъдат нулирани. Случайните и случайните файлове съдържат случайни нежелани данни за създаване на хешове за сигурност.

Ако някога сте форматирали диск, вероятно имате поне известен опит с начина, по който ядрото на Linux ги разглежда. Всеки диск, прикачен към системата, получава име като sda, sdb и така нататък за всеки диск. Различните типове дискове получават различни имена. Имайте предвид, че директорията / dev използва една потенциална официална дефиниция на компютърните науки за диск, а не по начина, по който обикновено използваме този термин. Това означава, че твърдият диск, SSD, SD картата, microSDHC картата, монтираната файлова система на смартфон, прикрепена чрез USB, USB стикове и дори монтирани таблети, са всички дискове към ядрото.

След това всяко име на диск в Linux получава цифра след него, указваща номер на дял. Ако сте имали SSD с два основни дяла, тогава може да имате / dev / sda1 и / dev / sda2 като валидни томове. Повече от вероятно, ако използвате Linux от настолен компютър или лаптоп с MBR стил разделяне, тогава имате / dev / sda1 настроен на дял ext4, който всъщност има инсталиран Linux на него. Повече от вероятно / dev / sda2 е разширен дял, който след това съдържа / dev / sda5 като суап дял. Тази схема е често срещана, но в никакъв случай не е необходима. Имайте предвид, че тъй като суап дялът в този често срещан пример е логически диск вътре в разширен дял, той получава 5 вместо 3 като своя цифра.

Ако искате да научите повече за начина, по който ядрото преглежда и форматира дялове, тогава всъщност можете да видите поддържан списък с дялове с командата fdisk. Докато fdisk не пише таблици на дялове, докато не го кажете, все пак е най-добре да опитате това с нещо, което не ви е грижа за препичане. Препоръчително е да го насочите към нещо като празен USB стик, който можете лесно да преформатирате.

Да приемем, че пръчката ви се показва като / dev / sdc , тогава можете да използвате sudo fdisk / dev / sdc за да го заредите. Ако имате валиден дял в него, тогава напишете t, за да промените типа, а типа L, за да заредите списък с шестнадесетичен код. Имайте предвид, че MBR и GUID схемите на дялове говорят с ядрото по различен начин и следователно имат различни задания.

2016-11-25_020331

По-често ще имате устройства, настроени на тип 83, което е за Linux дискове, 82, което е за Linux суап дялове, или един от файловите типове FAT. FAT датира в някаква или друга форма от 1977 г. и все още е предпочитан за много видове мобилни устройства, както и за много сменяеми устройства. Имайте предвид, че някои типове дялове, като тип 0x0c, имат нещо, наречено LBA поддръжка.

Когато програмист проектира ядро ​​за операционна система, те имат няколко различни начина, по които могат да гледат дисковете. Единият е да разделите плочите на цилиндри, глави и сектори. Това беше класическият начин да се отнасят до твърдите дискове за най-дълго време. Истинската геометрия на диска никога не е била важна за Linux и тази схема за съжаление свършва с адреси след приблизително 8 бинарни гигабайта. Вторият начин е да се използва логическо C / H / S адресиране, което прави това, но след това позволява на дисковия контролер да картографира номера на цилиндри, глави и сектори, където пожелаят. Ето защо операционната система може теоретично да твърди, че има глави в SD карта или USB стик, когато това е физически невъзможно.

Третият метод е чрез логическо блоково адресиране, за което LBA означава. Всеки физически блок в том получава цифра в тази схема. Операционната система казва на дисковия контролер да пише в определен номериран блок, но всъщност не знае дали това е директният блок на диска. Това е схемата, която се използва най-много днес и със сигурност се използва на по-голямата част от твърдите дискове от средата на 90-те години.

Linux предлага поддръжка на ядрото за монтиране на голямо разнообразие от типове дялове без директно въвеждане, но все пак е най-добре да не бъдете твърде странни, когато ги избирате. Бихте могли да препечете данните си, ако сте направили много странен тип дял за избор на файлова система.

Метод 4: Системни обаждания от Ръководството на програмиста на Linux

Вградените четци на човешки страници, включени в по-голямата част от дистрибуциите на Linux, всъщност могат да ви дадат сривен курс при системни повиквания, което може да помогне изключително много при изучаването на ядрото. Стартирайте браузъра за графични ръководства на xman или от .desktop връзка, ако имате такъв, или алтернативно, като задържите едновременно супер клавиша и R, след което напишете xman и натиснете enter. Изберете опцията „Ръчна страница“ и след това изберете „Секции“ и накрая „(2) Системни повиквания“ от падащото меню.

2016-11-25_020430

След като опция чете „ въведение ”, Изберете това. След това ще ви приветства страница от Ръководството за програмист на Linux, която ще ви научи доста за системните обаждания.

2016-11-25_020518

6 минути четене