wiki/docs/Other/Кетов.md
ilyamak04 518facc795
All checks were successful
Build MkDocs / build-and-deploy (push) Successful in 16s
add кетов
2025-07-03 17:29:04 +03:00

70 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

## Дмитрий Кетов - "Внутреннее устройство Linux" (рандомные заметки)
### Главы 1, 2
В Linux 2 режима работы программных средст - kernel mode (kernel space), user mode (user space). Основное различие в привелегиях доступа к аппартаным средаствам.
Совокупность работающих в ядерном режиме программ называют ядром
Ф-ии ОС реализуемые ядерными компонентами, доступны внеядерным посредством системных вызовов
(стр.23) Кроме всех вышеперечисленных задач, файловая подсистема, подсистема ввода-вывода и подсистема управления процессами в совокупности предоставляют процессам средста межпроцессорного взаимодействия, такие как сигналы, каналы, сокеты и разделяемая память
- `strace` - Системные вызовы (ядро)
- `ltrace` - Библиотечные функции (например, libc)
Сеанс командного интерфейса пользователя продолжается двусторонним попеременным диалогом с командным интерпретатором, где пользователь вводит команды и получает результат их выполнения.
- `users, who, w` - списко всех терминальных входов пользователей
`^D` - используется для оповещения драйвера о завершении ввода при работе с интерактивными (ведущими с пользователем двусторонний попеременный диалог) программами
`^Z` - временно приостанавливает выполняющуюся программу
`finger <username>` - свойства учётной записи пользователя
### Глава 3 - Подсистема управления файлами и вводом-выводом
- В аббревиатуре UNICS, да-да UNICS (UNICS был до UNIX), а не UNIX, центральное место занимает идея решать задачи единым способом
- Информация есть файл
- Файл является единицей обеспечения доступа к информации, а не единицей ей хранения, как в других ОС
- /etc - editable text configuration
- sbin - superuser's binaries для программ системного администрирования
- Каналы и сокеты используют для передачи данных от процесса к процессу оперативную память ядра ОС, а не память накопителя, как обычные файлы
- Канал - однонаправленная передача (симплексная)
- Сокет двунаправленная (дуплексная). Сокет используют при взаимодействии по схеме клиент-сервер
- `stat <filename>` - метаданные файла
- При запросе процесса на отркытие файла системным вызовом open производится его однократный (относительно медленный) поиск имени файла в дереве каталогов и для запросившего процесса создаётся так называемый файловый дескриптор. Файловый дескриптор содержит информацию, описывающую файл (инод, ...). При последующих операциях read write доступ к данным происходит с использованием файлового дескриптора.
- Файловая система - структура, решающие задачи хранения информации
- Информацию об аппаратных устройствах, обнаруженных ядром операционной системы на шинах PCI, USB, SCSI и прочих, предоставляет псевдофайловая система `sysfs`
- Информацию о процессах, нитях и прочих сущностях и используемых ими ресурсов предоставляет `proc`
- 110100100 (в двоичной) - 644 (в восьмеричной)
- для пользователя root проверик прав не осуществляются
- за счет SGID-атрибута каталога владельцем всех файлов, помещаемых в этот каталог, автоматически назначается группа-владелец самого каталога, а создатель (владелец) файла может теперь назначать права доступа для всех членов этой группы своему файлу
- атрибут t ограничевает возможность удалять чужие файлы
- В отличие от AppArmor, модуль SELinux оперирует не профилями отдельных программ, а общим набором правил, называемым политикой. Сами правила правила - политики описывают возможные отношения между процессами и файлами согласно их меткам безопасности. Каждая метка состоит из четырех компонентов user:role:type:level, которые могут быть использованы лишь частично.
- флаг s предписывает файловой системе при удалении файла не только высвобождать принадлежащие ему блоки, но и обнулять их, а флаг S заставляет операции записи в файл выполняться синхронно, миния отложенную запись с использованием дискового кэша. флаг i делает файл неприкасаемым - его нельзя удалить изменить никому, даже руту, флаг а даёт возможность добавлять только данные в конец, изменять уже имеющиеся нельзя (установка определенный файлов требует привелегий процесса)
- файл является универсальной сущностью которая позволяет организовать однородный доступ к информации, вне зависимости от свойств ее источника
### Глава 4 - Управление процессами и памятью
- процессы ОС являются контейнерами для многозадачного выполнения программ, как последовательных, так и параллельных
- для запуска новой программы в новом дочернем процессе используются оба системных вызова fork и exec согласно принципу fork-and-exec раздвоиться и запустить, никакого физического копирования памяти не происходит, согласно принципу copy-on-write, кроме копирования небольшого количества служебных структур данных (таблиц страниц) процесса
- параллельная обработка потоков поступающий событий при помощи нитей производится с минимально возможными накладными расходами, что позволяет достигать колоссальной производительности по количеству обрабатываемых сообщений в единицу времени
- процессы и нити в ядре Linux сводятся к универсальному понятию "задача". Задача, все ресурсы которой (память, открытые файлы и т.д.) используются совместно с другими такими же задачами, является нитью. И наоборот, процессами являются такие задачи, которые обладают набором своих частных, индивидуальных ресурсов.
- сискол fork и pthread_create это обёртки на clone
- возможности процесса выполнять те или иные действия по отношению к другим объектам определяется его специальными свойствами - атрибутами процесса
- NICE от -20 до 19