Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные / ОС_лабораторная 2.docx
Скачиваний:
8
Добавлен:
12.02.2024
Размер:
3.33 Mб
Скачать
  1. Задание 1.2. Сборка и загрузка модуля в ядро Linux

  1. Установите необходимые пакеты: apt-get install gcc make linux-headers-$(uname -r).

  2. Создайте файл модуля: mkdir kmod-hello_world; cd kmod-hello_world/;

touch. /mhello.c c содержимым.

  1. Создайте Makefile: touch. /Makefile c содержимым.

  2. Соберите модуль и установите его с помощью insmod.

  3. Выгрузите модуль с помощью команды rmmod.

Результаты выполнения выше перечисленных действий представлены на рисунках 8-22.

Первым делом установим пакет make gcc, используя команду sudo pacmanS make gcc. Утилита make, которая автоматизирует процесс сборки проекта, позволяя выполнить компиляцию и создание исполняемых файлов без выполнения всех команд вручную. GCC – компилятор. На рисунках 12 и 13 представлены команды для установки необходимых пакетов при сборке и загрузке модуля в ядро Linux

Рисунок 8 – Команда для установки утилиты make и компилятора gcc

Установим linux-headers-$(uname -r). Это пакет заголовочных файлов, предназначенных для разработки ядра Linux. Используя команду unamer узнаем, версию нашего дистрибутива. После уставим пакет с помощью команды sudo pacmanS linux-headers=6.1.53.

Рисунок 9 – Команда для установки заголовочных файлов

Создадим файл модуля. Используем команду mkdir kmod-hello_world для создания директории, где будет создавать файл модуля. Через команду cd перейдем в эту категорию. На рисунке 14 представлены команды для создания и перехода в каталог модуля.

Рисунок 10 – Команды для создания и перехода в каталог модуля

Команда touch используется для создания файла mhello.c. Команда позволяет работать с текстовым редактором в Unix-подобных системах. На рисунке 15 представлены команды для создания файла mhello.c и его открытия в текстовом редакторе

Рисунок 11 – Команды для создания файла mhello.c и его открытия

На рисунке 12 представлено содержимое файла mhello.c

Рисунок 12 – Содержимое файла mhello.c

На рисунке 13 представлены команды для создания файла Makefile и его открытия в текстовом редакторе.

Рисунок 13 – Команды для создания файла Makefile и его открытия

На рисунке 14 представлено содержимое файла Makefile

Рисунок 14 - Содержимое файла Makefile

На рисунке 15 представлена сборка модуля ядра с помощью команды make

Рисунок 15 – Сборка модуля ядра

На рисунке 16 представлена команда для просмотра сборки модуля ядра, на рисунке 17 представлен результат её выполнения. Команда запускает слежение за выводом последних 10 строк команды "dmesg" с обновлением каждые 3 секунды.

Рисунок 16 – Команда для просмотра сборки модуля ядра

Рисунок 17 – Просмотр сборки модуля ядра

На рисунке 18 представлена команда для установки модуля ядра

Рисунок 18 – Команда для установки модуля ядра

На рисунке 19 представлена команда для просмотра установки модуля ядра, на рисунке 20 представлен результат её выполнения

Рисунок 19 – Команда для просмотра установки модуля ядра

Рисунок 20 – Просмотр установки модуля ядра

На рисунке 21 представлена команда для выгрузки модуля с помощью команды rmmod

Рисунок 21 – Команда для выгрузки модуля ядра

На рисунке 22 представлена команда для просмотра выгрузки модуля ядра и результат её выполнения

Рисунок 22 – Команда для просмотра выгрузки модуля ядра и результат её выполнения