Please enable JavaScript.
Coggle requires JavaScript to display documents.
LPI: Основные понятия 1-10 (Процессы (Модель памяти: (Текст (исполняемый…
LPI: Основные понятия 1-10
Ядро
Задачи
Менеджмент виртуальной памяти
доступ к устройствам
планировка процессов
предоставление интерфейса системных вызовов
файловая система
работа в сети
vmlinuz
vm - viretual memory
linuz = linux + z (zipped)
Режимы работы ЦПУ
Пользовательский
Привелигированый (режим ядра)
Оболочка (интерпретатор команд)
Bourn Shell (sh)
первая
C Shell (csh)
Нет обратной совместимости с sh
Bourne again shell (bash)
GNU
содержит эмуляцию sh
соответствует POSIX
два режима работы
интерактивный
запускается при старте
скрипты
Korn shell
файловые ввод-вывод
open, close, read,write...
библиотечные надстройки для регулярных файлов: fopen, fclose, fread, fwrite...
универсальный интерфейс для работы с сущностями (любыми типами файлов) в linux
дескриптор файла
зарезервированы:
0 - stdin
1 - stdout
2 - stderr
Файловая система
корень
абсолютные пути
относительные пути
директории - файлы со ссылками
жесткие ссылки
мягкие ссылки
ядро их ресолвит
есть защита от дурной рекурсии
имена файлов
портируемый набор символов для имен файлов
alphanumeric_-.
остальные символы не рекомендованы
должны экранироваться \
Текущий рабочий каталог
наследуется от родителя
права доступа
чтение
запись
исполнение (поиск для директорий)
Для хозяина
Для группы хозяина
для всех
Библиотеки
Статические
Недостатки
При изменении библиотек все программы должны перелинковаться заново
дисковое пространство под дублируемый код
Динамические
линкуются в рантайме динамическим линковщиком
Один экземпляр исполняемого кода на диске и в памяти
Не неужно адейтить все приложения
появились позже статических чтобы решить проблемы
IPC (межпроцессное взаимодействие)
пайпы
сокеты
FIFO буфферы
Очереди сообщений
файловые блокировки
семафоры
общая память
Синхронизация процессов между собой
сигналы
Процессы
Пораждаются системным вызовом fork
дублирует существующий (родительский) процесс, назначая ему идентификаторы
обнуление среды через execve и сородичей
наследуют от родителя среду и ресурсы
переменные среды: имя=значение
задаются черех export
завершаются в два пути
_exit()
убиваются сигналами извне
экземпляр программы
с точки срения ядра объекты для разделения ресурсов между ними
Модель памяти:
Текст (исполняемый код)
только для чтения
Данные (статические)
Куча
Стек
Идентификаторы
свой (PID)
Родителя (PPID)
UID пользователя
GID-ы
действующей
дополнительных
мандаты (capabilities)
дают дополнительные привелегии процессу
префикс CAP_
init - матерь всех процессов
PID = 1
Нельзя убить
демоны
долго живут
не интерактивны
ограничения ресурсов
мягкие
можно варьировать до жестких
жесткие
можно только понизить
Программы
Как исполняемый код
Как исходный код
Объединены семантикой
Фильтры: cat, awk, tail, cut
аргументы командной строки: 0-й - имя программы
Пользователи и группы
Пользователи
UID
Имя
/etc/passwd
домашняя директория
группа пользователя
используемая оболочка
теневой файл пароля
привелегированный доступ
суперпользователь (root)
/etc/group
GID
имена пользователей группы, у которых эта группа не базовая
имя
Отображение в памяти
mmap
маппинг файла в память
Используется для шареной памяти
файловое отображение
анонимное отображение