Раздел 2. Разбираемся с ядром и работаем с ним

Глава 6. Существенные моменты внутреннего устройства ядра - Процессы и Потоки

Содержание

Глава 6. Существенные моменты внутреннего устройства ядра - Процессы и Потоки
Технические требования
Разбираемся с контекстами процессов и прерываний
Разбираемся с основами VAS процесса
Организация процессов, потоков и их стеков - пространства пользователя и ядра
Организация пространства пользователя
Организация пространства ядра
Суммируем текущую ситуацию
Просмотр стеков пользователя и ядра
Традиционный подход к просмотру имеющихся стеков
Просмотр стека пространства ядра заданного потока или процесса
Просмотр стека пространства пользователя заданного потока или процесса
[e]BPF - современный подход к просмотру обоих стеков
Обзор на 10 000 футов VAS конкретного процесса
Разбираемся со структурой задачи ядра и получаем к ней доступ
Взгляд на структуру задачи
Доступ к структуре задачи при помощи current
Определение контекста
Работа со структурой задачи через current
Встроенные вспомогательные методы ядра и оптимизация
Пробуем модуль ядра для вывода на печать сведений контекста
Убеждаемся в монолитности ОС Linux
Кодируем для безопасности при помощи printk
Выполняя итерации по спискам задач ядра
Выполняя итерации по списку задач I - отображение всех процессов
Выполняя итерации по списку задач II - отображение всех потоков
Различия между процессом и потоком - TGID и PID
Выполняя итерации по списку задач III - собственно код
Выводы
Вопросы
Дополнительное чтение

Технические требования

Разбираемся с контекстами процессов и прерываний

Разбираемся с основами VAS процесса

Организация процессов, потоков и их стеков - пространства пользователя и ядра

Организация пространства пользователя

Организация пространства ядра

Суммируем текущую ситуацию

Просмотр стеков пользователя и ядра

Традиционный подход к просмотру имеющихся стеков

Просмотр стека пространства ядра заданного потока или процесса

Просмотр стека пространства пользователя заданного потока или процесса

[e]BPF - современный подход к просмотру обоих стеков

Обзор на 10 000 футов VAS конкретного процесса

Разбираемся со структурой задачи ядра и получаем к ней доступ

Взгляд на структуру задачи

Доступ к структуре задачи при помощи current

Определение контекста

Работа со структурой задачи через current

Встроенные вспомогательные методы ядра и оптимизация

Пробуем модуль ядра для вывода на печать сведений контекста

Убеждаемся в монолитности ОС Linux

Кодируем для безопасности при помощи printk

Выполняя итерации по спискам задач ядра

Выполняя итерации по списку задач I - отображение всех процессов

Выполняя итерации по списку задач II - отображение всех потоков

Различия между процессом и потоком - TGID и PID

Выполняя итерации по списку задач III - собственно код

Выводы

Вопросы

Дополнительное чтение