САНКТ-ПЕТЕРБУРГСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ, МЕХАНИКИ И ОПТИКИ
Кафедра Безопасные информационные технологии
Методические указания по проведению лабораторной работы
“Анализ архитектуры операционной системы Linux”
Санкт-Петербург
1. Цель работы: Получение сведений об архитектуре операционной системы Linux
2. Утилиты используемые в работе:
udev – программа, служащая для динамического управления устройствами. Её основная задача — обслуживание файлов устройств в каталоге /dev и обработка всех действий, выполняемых в пространстве пользователя при добавлении/отключении внешних устройств.
Благодаря udev, в каталоге /dev находятся файлы только тех устройств, которые в настоящий момент подключены к системе. Каждое устройство имеет свой соответствующий файл. Если устройство отключается от системы, то данный файл удаляется. Содержимое каталога /dev хранится на виртуальной файловой системе и все файлы, находящиеся в нём, создаются при каждом запуске системы. Модифицированные или созданные вручную файлы не сохраняются после перезагрузки. Файлы и каталоги, которые необходимо сохранить или которые всегда должны присутствовать в каталоге /dev, независимо от состояния соответствующего устройства, необходимо помещать в каталог /lib/udev/devices. При запуске системы содержимое данного каталога копируется в /dev как есть (с теми же правами доступа).
udev обеспечивает все необходимые средства для динамического создания и удаления файлов устройств и символических ссылок в каталоге /dev. Правила udev позволяют использовать внешние программы для обработки событий ядра об устройствах, что позволяет изменять порядок работы udev, например, написанием собственных скриптов или запроса и импорта дополнительных данных для использования в процессе работы ядра с устройством.
Программа udev состоит из трех частей:
libudev – библиотека, позволяющая получать доступ к информации об устройствах.
udevd – демон, работающий в пространстве пользователя и управляющий содержимым /dev.
udevadm – консольная утилита для управления.
Утилита udevadm имеет следующие группы команд:
udevadm info – запрашивает базу данных udev о хранящейся в ней информации об устройствах. Также может запрашивать свойства устройства из его отображения в sysfs, чтобы помочь в создании правил udev, соотносящихся с этим устройством.
udevadm trigger – запрос событий, связанных с устройством, из ядра. Обычно используется для воспроизведения событий системой «холодного»
подключения.
udevadm settle – просматривает очередь событий udev и завершает работу, если все текущие события обработаны.
udevadm control – изменяет внутреннее состояние демона, запускаемого программой udev.
udevadm monitor – слушает события ядра uevent и события, передаваемые правилами udev, и выводит на консоль пути к устройствам из записи о событии. Это может быть использовано для анализа временных соотношений событий, сравнивая отметки времени событий ядра uevent и событий, переданными udev.
udevadm test – имитирование события udev, запускаемого для выбранного устройства, и вывод на экран отладочной информации.
modprobe утилита, которая добавляет или удаляет модуль из ядра Linux. Для удобства не делается различий между символами _ и - в именах модулей. modprobe ищет в каталоге модулей /lib/modules/‘uname -r‘ имена всех модулей и других файлов, исключая необязательный файл конфигурации /etc/modules.conf и каталог /etc/modprobe.d (смотри modprobe.conf(5)). Все файлы в каталоге /etc/modprobe.d/arch/ игнорируются. Для того чтобы отобразить текущую конфигурацию всех модулей можно воспользоваться командой: modprobe –c.
lsmod - программа, которая просто форматирует содержимое /proc/modules, показывая какие модули ядра в настоящее время загружены.
modinfo - программа для просмотра информации о модуле ядра Linux.
Описание установки для проведения практической работы
Установка для выполнения практической работы представляет собой рабочую станцию, функционирующую под управлением ОС Linux. На каждой рабочей станции установлен пакет VirtualBox, в котором может быть запущена операционная система Linux.
Ход работы
4.1 Запуск установки
4.1.1 Войти в систему. Запустить в среде VirtualBox операционную систему Linux.
4.1.2 Выполнить вход в операционную систему Linux.
4.2 Изучение архитектуры ОС Linux
4.2.1 Ознакомьтесь с руководством программы udev.
4.2.2 Ознакомьтесь с возможностями утилиты udevadm.
4.2.3 Включите udevadm monitor и вставьте какой-либо носитель
4.2.4 Ознакомьтесь со списком событий, включите скриншот списка в отчет.
4.2.5 С помощью данного списка событий или любым иным способом (например, командой fdisk –l) запомните название файла устройства (например, sdb1).
4.2.6 Используя название, получите информацию об устройстве, выполнив команду udevadm info --query=all --name=[название файла устройства]. Включите полученную информацию в отчет.
4.2.7 Перейдите в каталог /lib/udev/rules.d и ознакомьтесь с правилами, используемыми udev.
4.2.8 Перейдите в /etc/udev/rules.d. В этом каталоге содержатся пользовательские правила, а также правила, необходимые для замены «оригинальных» правил. Создайте файл правила с низким приоритетом (с числом в названии больше 90).
4.2.9 Включите в файл правило, срабатывающее при вставке носителя: KERNEL=="[ название файла устройства]", ACTION=="add", RUN+="[команда]". команда – выполняемое действие, например /bin/mkdir /home/administrator/new_dir.
4.2.10 Перезагрузите выполняемые правила, выполнив команду sudo udevadm control –reload-rules. Вставьте носитель, убедитесь в выполнении указанного действия. Включите скриншот содержимого файла с правилом в отчет.
4.2.11 Попробуйте добавить иные правила.
4.2.12 Ознакомьтесь с возможностями утилит modprobe, lsmod и modinfo.
4.2.13 Выведите список загруженных модулей ядра. Включите его в отчет.
4.2.14 Выберите любой модуль из полученного ранее списка и выведите информацию о нем с помощью modinfo. Включите ее в отчет.
4.2.15 Выберите любой модуль из набора модулей, хранящихся в /lib/modules, и загрузите его в память. Проверьте, что модуль действительно загружен: для этого снова выведите список работающих модулей. Включите эту информацию в отчет.