- •«Московский технический университет связи и информатики» (мтуси)
- •1. Знакомство с командной строкой Linux 15
- •7. Ядро Linux 51
- •Цель и задачи курсовой работы
- •Введение
- •Краткая теория
- •Знакомство с командной строкой Linux
- •Работа с файлами и каталогами. Управление пользователями
- •Ядро Linux
- •Управление процессами
- •Управление памятью
- •Диски и файловые системы
- •Основная часть
- •Знакомство с командной строкой Linux
- •Команды top, free, ps
- •Домашний каталог
- •Создание директорий
- •Команда tree
- •Создание скриптов
- •Cкрипт на языке bash c выводом меню, состоящего из пунктов выбора выводимой информации.
- •Работа с файлами и каталогами. Управление пользователями
- •Ядро Linux
- •Анализ системных вызовов при выполнении команд с помощью утилиты strace.
- •Системные вызовы вашей̆ программы.
- •Сборка и загрузка модуля в ядро Linux.
- •Управление процессами
- •Мониторинг производительности системы
- •Создание скрипта для получения статистики
- •Создание автозапускаемой службы
- •Создание таймера
- •Управление памятью
- •Получение карты виртуальной памяти процесса
- •Настройка файла подкачки
- •Тестирование памяти
- •Изучение параметра swappiness
- •Диски и файловые системы
- •Разметка диска, создание файловой системы
- •Создание raid-массива
- •Получение информации о файловой системе
- •Работа с логическими разделами дисков (lvm)
- •Vgextend myvg /dev/sdg Добавлен второй диск в vg
- •Заключение
- •Используемая литература
Создание скрипта для получения статистики
Рисунок 4-4-22. Создан скрипт для получения статистики: осуществляет сбор статистики использования процессоров и статистики работы процессов средствами mpstat и pidstat, данные сохраняются в текстовый файл с именем yyyy-mm-dd_h:m:s_syslog. Показано содержимое текущей дириктории до и после запуска скрипта, а также его вывод команды ls -l для директории сохранения логов скрипта. Работа скрипта будет прекращена после ручного заврешения пользователем (ctrl+c).
Рисунок 4-4-23. Текст созданного скрипта.
Рисунок 4-4-24. Содержимое файла лога.
Создание автозапускаемой службы
Рисунок 4-4-25. Код написанной новой службы logger.service.
Рисунок 4-4-26. Произведена регистрация и запуск службы при помощи команд
sudo systemctl daemon-reload
sudo systemctl start logger.service
Проверка работы службы при помощи команды sudo systemctl status logger.service покзала, что служба была успешно зарегистрирована и запущена. Вывод показывает, что она была остановлена (inactive (dead)) и завершилась успешно (code=exited, status=0/SUCCESS). Однако в логах есть предупреждение о неправильной записи в файле сервиса, это связано с тем, что в файле сервиса logger.service есть ошибочная запись, которую система игнорирует.
Рисунок 4-4-27. Созданный ранее скрипт был немного изменен: утилиты вроде mpstat и pidstat часто требуют привилегий суперпользователя для корректной работы. Поэтому было добавлено перед этими командами sudo. В прошлом скрипте logger2.sh происходил сбор статистики с использованием утилит mpstat и pidstat. Однако этот скрипт запускается как служба через systemd. Службы systemd обычно работают в фоновом режиме и без интерактивного ввода, поэтому они также были немного изменены и добавлено ограничение времени.
Рисунок 4-4-28. Появился новый файл. Удалить сразу все логи возможно при помощи команды
find . -type f -name '*_syslog' -delete
Рисунок 4-4-29. Содержимое файла *_syslog.
Создание таймера
Рисунок 4-4-30. Создан таймер со следующими параметрами:
OnCalendar=*:0/1 указывает, что действие должно выполняться каждую минуту (0 минут, 1 час).
AccuracySec=60s задает точность таймера до одной минуты.
Persistent=true делает таймер постоянным, так что он перезапускается после перезагрузки системы.
Unit=logger.service указывает на сервис, который должен быть запущен этим таймером.
WantedBy=multi-user.target указывает, что этот таймер должен быть активирован при переходе в режим мультипользователя (multi-user.target).
Рисунок 4-4-31. Введены команды для активации
systemctl daemon-reload
systemctl enable logger.timer
systemctl start logger.timer
Проверить наличие нового таймера удалось при помощи команды
systemctl list-timers
Рисунок 4-4-32. Таймер остановлен и отключен командами
sudo systemctl stop logger.timer
sudo systemctl disable logger.timer
Рисунок 4-4-33. Просмотр директории выовода скрипта. Новые файлы созданы с минутным интервалом и содержат сопоставимое количество записей.
Управление памятью
В данном разделе речь пойдет про механизмы виртуальной памяти, структуры данных, такие как таблицы страниц, и команды для работы с памятью. Были рассмотрены способы преобразования виртуальных адресов в физические с использованием многоуровневых таблиц страниц. Особое внимание уделено созданию и настройке файлов подкачки, включая создание файла подкачки, его подключение и настройку автоматического подключения при перезагрузке системы. Также проведение стресс-тест памяти с помощью утилиты Memtester, который позволяет выявить возможные проблемы с памятью. Изучение концепции параметра swappiness и его влияние на частоту использования подкачки памяти.
Основные используемые команды и их параметры:
pmap с параметром -x и для расширенного вывода карты виртуальной памяти процесса.
top показывает потребление ресурсов процессами в реальном времени.
free -h для отображения объёма свободной и используемой оперативной памяти.
swapon -s для показа использования и настроек файла подкачки.
mkswap /swapfile для разметки файла подкачки.
swapoff/swapon /swapfile для отключения/подключения файла подкачки.
cat /etc/fstab для редактирования списка устройств для монтирования.
tail -f /var/log/syslog для мониторинга выходных данных в реальном времени.
memtester для проведения стресс-тестов памяти с параметрами размера памяти и количества проходов.
Во время выполнения заданий были изучены различные аспекты управления памятью в Linux, включая:
Преобразование виртуальных адресов в физические:
Механизм виртуальной памяти позволяет каждому процессу иметь своё собственное закрытое виртуальное адресное пространство.
Трансляция виртуальных адресов в физические производится с использованием многоуровневых таблиц страниц.
