Как узнать больше о ядре Linux с вашего собственного компьютера —

Обучение работе с GNU / Linux обычно подразумевает обучение работе с окружением рабочего стола. Тематическая технология позволяет этим рабочим средам имитировать интерфейсы устройств iOS, Microsoft Windows и OS X. Это помогает минимизировать это как бы. Многие люди идут дальше и изучают администрирование командной строки Unix с помощью оболочек Bash или tcsh. Тем не менее, знание внутренних компонентов ядра Linux поможет вам лучше понять, как различные части кода операции взаимодействуют друг с другом.

Некоторые люди утверждают, что было бы лучше сделать несколько шагов дальше и дополнительно узнать, как компиляторы преобразуют код C в машинные инструкторы для микропроцессора. Сторонники кода сборки будут тогда утверждать, что лучше всего научить ASM действительно понимать программирование на платформах x86 и x86_64. Независимо от этих позиций, основные команды Linux могут предоставить множество информации о том, как ядро ​​видит ваш компьютер. Обучение через взгляд, но не трогайте парадигму — отличный способ освоить само ядро. Хотя для примеров на этой странице использовалась корневая учетная запись, настоятельно рекомендуется, чтобы вы когда-либо просматривали каталоги, связанные с ядром, только через учетную запись пользователя.

Способ 1: каталог / proc

Каталог / proc находится в одной из основных областей корневого каталога верхнего уровня в любой файловой структуре Unix. Он содержит так называемую файловую систему proc, более известную как procfs, которая содержит информацию о том, как различные ресурсы обращаются к памяти ядра. Он отображается в / proc во время загрузки системы. Поскольку эта структура файлов прокси-сервера служит интерфейсом для внутренней структуры данных в ядре Linux, еще раз лучше всего исследовать это через учетную запись пользователя. Большинство файлов классифицируются видимой структурой системных файлов как доступные только для чтения, но лучше быть на безопасной стороне.

При этом каждый из них представляет собой текстовый файл, так что вы можете просмотреть их, если хотите. Используйте команду cd, чтобы войти в каталог / proc, а затем введите ls, чтобы посмотреть, что там. Используйте команду cat, less или more с любым из файлов, чтобы просмотреть их. Файл cpuinfo — хорошее место для начала, поскольку он показывает, как ядро ​​смотрит на ваш микропроцессор. Посмотрите на файл статистики для просмотра запущенных процессов.

2016-11-25_020006

Набрав устройства cat, вы узнаете, какие устройства подключены к вашей машине.

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. Вы можете иметь каталоги, озаглавленные block, class, devices, fs, kernel и, возможно, другие. Вы можете изучить их для других простых файлов, которые содержат информацию о системе, но еще раз сделать это из учетной записи пользователя и следить, но не трогать менталитет о себе.

Способ 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, флешки и даже смонтированные планшеты — все это диски ядра.

Каждое имя диска в Linux получает после него цифру, обозначающую номер раздела. Если у вас SSD с двумя основными разделами, то вы можете использовать / dev / sda1 и / dev / sda2 в качестве допустимых томов. Скорее всего, если вы используете Linux с настольного компьютера или ноутбука с разделом в стиле MBR, то у вас / dev / sda1 установлен раздел ext4, на котором фактически установлен Linux. Скорее всего, / dev / sda2 — это расширенный раздел, который затем содержит / dev / sda5 в качестве раздела подкачки. Эта схема распространена, но ни в коем случае не нужна. Обратите внимание, что поскольку раздел подкачки в этом общем примере является логическим диском внутри расширенного раздела, он получает 5 вместо 3 в качестве цифры.

Если вы хотите узнать больше о том, как ядро ​​просматривает и форматирует разделы, вы можете просмотреть список поддерживаемых разделов с помощью команды fdisk. В то время как FDISK не записывает таблицы разделов до тех пор, пока вы не скажете об этом, все же лучше попробовать это с тем, что вам не нужно тостов. Рекомендуется указывать на что-то вроде пустой флешки, которую можно легко переформатировать.

Допустим, ваша палка появляется как / 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. Каждый физический блок в томе получает цифру в этой схеме. Операционная система сообщает контроллеру диска о записи в определенный пронумерованный блок, но на самом деле не знает, является ли это прямым блоком на диске. Эта схема наиболее часто используется сегодня, и она, безусловно, используется на подавляющем большинстве жестких дисков с середины 1990-х годов.

Linux предлагает поддержку ядра для монтирования большого количества типов разделов без прямого ввода, но все же лучше не быть слишком странным при их выборе. Вы можете сделать тост своими данными, если сделаете очень странный тип раздела для выбора файловой системы.

Метод 4: Системные вызовы из Руководства программиста Linux

Встроенные читатели справочных страниц, включенные в большинство дистрибутивов Linux, могут на самом деле дать вам ускоренный курс по системным вызовам, который может очень помочь в изучении ядра. Запустите браузер графических страниц справочника xman либо по ссылке .desktop, если она у вас есть, либо, удерживая одновременно супер-клавишу и клавишу R, наберите xman и нажмите Enter. Выберите опцию «Страница вручную», затем выберите «Разделы» и, наконец, «(2) Системные вызовы» из выпадающего меню.

2016-11-25_020430

Однажды вариант чтения «вступление”Выберите это. Затем вас встретит страница из Руководства для программистов Linux, которая научит вас немного о системных вызовах.

2016-11-25_020518

Ссылка на основную публикацию
Adblock
detector