Академический Документы
Профессиональный Документы
Культура Документы
Исходные данные:
ПЭВМ архитектуры х86-64;
Установочный образ дистрибутива ОС Debian 11.7;
Консольные команды и утилиты;
Консольная утилита wget;
Текстовый редактор – vim, nano;
Справочная система – man;
Команды пакетного менеджера apt:
Для бинарников
apt-get update Синхронизация пакетов
apt Программа работы с репозиторием
dpkg Программа работы с пакетами
apt-cache search <название пакета> Поиск пакета в локальном списке
apt-get install <название пакета> Поиск пакета в локальном списке и его установка с
учетом всех зависимостей
dpkg —list|grep <название пакета> Поиск пакета в списке установки
apt-get download <название пакета> Поиск и скачивание пакета
apt-cache rdepends <название пакета> Поиск зависимостей для пакета
apt-cache depends <название пакета> Поиск всех зависимостей пакета
Для исходников
1 apt-cache show src <название бинарного Поиск названия пакета с исходными
пакета> текстами по названию бинарного пакета
2 apt-get source <название пакета с Поиск и скачивание пакета с исходными
исходными текстами> текстами
3 dpkg-source –x <название пакета.dsc> Распаковка пакета с исходными текстами.
Для использования команды dpkg-source
необходимо становить пакет dpkg-dev
(выполнить команду:
apt-get install dpkg-dev)
Поскольку ядро Linux – это программный код, его можно разрабатывать и обновлять
точно так же, как любую другую программу.
В свою очередь ядро Linux имеет некоторые отличия в сравнении с обычными
пользовательскими программами. Эти отличия хотя и не обязательно приводят к серьезным
усложнениям при программировании, но все же создают специфические проблемы при
разработке ядра. Ниже приведены наиболее важные отличия:
- ядро не имеет доступа к библиотеке функций языка С;
- ядро программируется с использованием компилятора GNU C;
- в ядре нет такой защиты памяти, как в режиме пользователя;
- в ядре нельзя легко использовать вычисления с плавающей точкой;
- ядро использует стек небольшого фиксированного размера (8 Кбайт — для 32-
разрядных аппаратных платформ и 16 Кбайт — для 64-разрядных);
- поскольку в ядре используются асинхронные прерывания, ядро является
преемптивным (вытесняемым, preemptible) и в ядре имеется поддержка SMP, то в ядре
необходимо учитывать наличие параллелизма и использовать синхронизацию;
- соблюдение переносимости очень важно.
Обновление репозитория:
$sudo apt-get update
$cd linux-5.10.191
$sudo cp -v /boot/config-$(uname -r) .config
Установка требуемых программных пакетов для сборки ядра Linux выполняется при помощи
команд:
Компиляция ядра Linux выполняется при помощи команды (выполнение команды занимает
значительное время, зависящее от производительности компьютера):
$sudo make
По умолчанию утилита make запускает только одну задачу. Для компиляции ядра с
использованием параллельной сборки необходимо выполнить следующую команду:
где n – количество заданий, которые необходимо запустить. Обычно запускается один или
два процесса напроцессор. Например, для четырехядерного процессора можно использовать
следующий запуск:
SYNC include/config/auto.conf.cmd
HOSTCC scripts/kconfig/conf.o
HOSTLD scripts/kconfig/conf
SYSHDR arch/x86/include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/include/generated/uapi/asm/unistd_x32.h
SYSTBL arch/x86/include/generated/asm/syscalls_32.h
.........
OBJCOPY arch/x86/boot/setup.bin
OBJCOPY arch/x86/boot/vmlinux.bin
HOSTCC arch/x86/boot/tools/build
BUILD arch/x86/boot/bzImage
Kernel: arch/x86/boot/bzImage is ready (#2)
4. Установка модулей
initrd.img-5.10.191
System.map-5.10.191
vmlinuz-5.10.191
$ sudo update-grub
7. Перезагрузка ОС
$sudo reboot -i
СОДЕРЖАНИЕ ОТЧЁТА
– титульный лист;
– алгоритм выполнения задания;
– листинги и скрины выполненных команд и полученных результатов;
– описание полученного результата;
– вывод.
ВАРИАНТЫ ЗАДАНИЙ
Вариант Задание
1 Рабочая директория /usr/src/linux-v1
Лог-файл - /usr/src/linux-v1/Log.<user>.lb4
2 Рабочая директория /usr/src/linux-v2
Лог-файл - /usr/src/linux-v2/Log.<user>.lb4
3 Рабочая директория /usr/src/linux-v3
Лог-файл - /usr/src/linux-v3/Log.<user>.lb4
4 Рабочая директория /usr/src/linux-v4
Лог-файл - /usr/src/linux-v4/Log.<user>.lb4
5 Рабочая директория /usr/src/linux-v5
Лог-файл - /usr/src/linux-v5/Log.<user>.lb4
6 Рабочая директория /usr/src/linux-v6
Лог-файл - /usr/src/linux-v6/Log.<user>.lb4
7 Рабочая директория /usr/src/linux-v7
Лог-файл - /usr/src/linux-v7/Log.<user>.lb4
8 Рабочая директория /usr/src/linux-v8
Лог-файл - /usr/src/linux-v8/Log.<user>.lb4
9 Рабочая директория /usr/src/linux-v9
Лог-файл - /usr/src/linux-v9/Log.<user>.lb4
10 Рабочая директория /usr/src/linux-v10
Лог-файл - /usr/src/linux-v10/Log.<user>.lb4