В этом видео попробуем проанализировать как работает системный вызов sys_fork на примере архитектуры x86 32bit64bit.
Узнаем:
1.
Что значит likely unlikely в исходном коде ядра Linux.
2.
Как разворачивать многоуровневые макросы define используемые в исходном коде ядра Linux.
3.
Что означает символ решётки в define.
4.
Как увидеть результат работы препроцессора в CC.
5.
Что именно означает include.
6.
Как выбирать из множества вариантов определение функциидирективы в исходном коде ядра Linux.
7.
Узнаем одно из применений атрибутов функций __attribute__ доп.
материал:
8.
Рассмотрим как читать встроенный в исходный код на C ассемблерный листинг доп.
материал:
9.
Узнаем как выглядят директивы с помощью которых задаются точки входа для системных вызовов SYSCALL_DEFINE3write int fd ...
10.
Узнаем на сколько важно помнить некоторые данные в оперативной памяти мозга чтобы иметь возможность анализировать исходный код ядра Linux.
11.
Узнаем как скачать код ядра Linux без дополнительных ревизий.
В видео я забыл после сегментного регистра поставить двоеточие должно быть в итоге так: movl gs:P1 0.
Это стандартный синтаксис ассемблера.
Работа с ctags для хождения по коду в vimе:
Источник: rutube.ru