Найти в Дзене
Владимир IT

Линукс изнутри. Ядро. Процесс загрузки ядра.

Моя цель: рассказать о сообщениях ядра Линукс во время загрузки - как извлечь протокол и какая от него польза. Друзья, при загрузке Linux выводятся сообщения ядра: информационные (об имеющемся оборудовании, о поддерживаемых протоколах и технологиях и т. д.) и диагностические (например, об ошибках). Правда современные компьютеры настолько быстры, что вы просто не успеете заметить их появление на экране. Либо вывод сообщений ядра отключается опцией quiet командной строки, как увидим далее. Но все сообщения всегда можно прочитать после загрузки системы с помощью команды: # dmesg | less Рассмотрим некоторые интересные фрагменты протокола, на примере моего компьютера с Linux Mint 20.3. Сначала видим версию ядра (после сообщения о дате обновления) и версию компилятора gcc, с помощью которого было откомпилировано ядро. Дальше командная строка, с которой загружено ядро. Параметр ro говорит ядру о необходимости смонтировать корневую файловую систему в режиме "только чтение" (в процессе загрузки

Моя цель: рассказать о сообщениях ядра Линукс во время загрузки - как извлечь протокол и какая от него польза.

Друзья, при загрузке Linux выводятся сообщения ядра: информационные (об имеющемся оборудовании, о поддерживаемых протоколах и технологиях и т. д.) и диагностические (например, об ошибках). Правда современные компьютеры настолько быстры, что вы просто не успеете заметить их появление на экране. Либо вывод сообщений ядра отключается опцией quiet командной строки, как увидим далее. Но все сообщения всегда можно прочитать после загрузки системы с помощью команды:

# dmesg | less

Рассмотрим некоторые интересные фрагменты протокола, на примере моего компьютера с Linux Mint 20.3.

Сначала видим версию ядра (после сообщения о дате обновления) и версию компилятора gcc, с помощью которого было откомпилировано ядро.

Дальше командная строка, с которой загружено ядро. Параметр ro говорит ядру о необходимости смонтировать корневую файловую систему в режиме "только чтение" (в процессе загрузки она будет перемонтирована в режим "чтение/запись", rw). Корневая файловая система задается с помощью UUID раздела диска. Параметр quiet вообще выключает сообщения, выводимые ядром, поэтому сообщений ядра при загрузке системы не видим. Зато их можно потом получить командой dmesg (что мы и сделали) или просто просмотреть файл /var/log/dmesg.

Видим карту физической памяти, предоставляемую BIOS:

-2

Обратите внимание на строчку

NX (Execute Disable) protection: active

Это значит, что процессор поддерживает функцию NX-защиты (NX— сокращение от No eXecute). Это защита областей памяти, которая используется для предотвращения распространения вирусов, "троянских коней" и других вредоносных программ. Довольно часто вредоносные программы нарочно вызывают переполнение буфера, после чего записывают свой код в область данных и передают ему управление. Функция NX-защиты как раз предотвращает развитие данного сценария на аппаратном уровне.

Получили информацию о SMBIOS.

Затем ядро проверило наличие DMI (Direct Media Interface) (DMI— это изобретение Intel, и представляет собой шину соединения южного и северного мостов материнской платы) и показало модель материнской платы и версию BIOS.

-3

Видим информацию о диапазонных регистрах памяти (MTRR). Правда, если вы не профи в железе, то вам эта информация будет не интересна. В нижней строчке фрагмента видим, что в моем компьютере установлено 6 Гб оперативной памяти (я поставил 2 модуля: 4 Гб и 2 Гб). 640 Мб «основной» памяти, конечно же.

Полный протокол сообщений ядра содержит несколько сотен строк технической информации. Можно увидеть обнаруженные устройства и параметры их подключения и т.д..

Должен заметить, что разные версии Линукс построены на разных версиях ядра. Поэтому и протоколы сообщений ядра различаются.

В заключение:

Друзья, теперь вы знаете, что ядро Линукс при загрузке выдает и сохраняет техническую информацию о системе, которую можно в дальнейшем проанализировать, вооружившись соответствующей технической литературой. Также, теперь вы знаете, как эту информацию извлечь.

***

АНОНС! Дальше расскажу про параметры запуска ядра!

***

Дорогие друзья, если публикация оказалась для вас интересной и полезной – поставьте «лайк»! Для развития канала требуется его продвижение, а оно невозможно без ваших «лайков».

Если вы не подписались на канал – подписывайтесь! Вы узнаете много интересного и полезного. Ваши подписки просто необходимы для канала.

#КакУстроенЛинукс #LinuxИзнутри

-4