Linux Kernel. 1 - Исследуем системный вызов fork

В этом видео попробуем проанализировать, как работает системный вызов sys_fork() на примере архитектуры x86 32bit,64bit. Узнаем: 1. Что значит likely, unlikely в исходном коде ядра Linux. 2. Как разворачивать многоуровневые макросы #define, используемые в исходном коде ядра Linux. 3. Что означает символ решётки в #define. 4. Как увидеть результат работы препроцессора в C/C . 5. Что именно означает #include. 6. Как выбирать из множества вариантов определение функции/директивы в исходном коде ядра Linux. 7. Узнаем одно из применений атрибутов функций (__attribute__, доп. материал: ). 8. Рассмотрим, как читать встроенный в исходный код на C ассемблерный листинг (доп. материал: ) 9. Узнаем, как выглядят директивы, с помощью которых задаются точки входа для системных вызовов (SYSCALL_DEFINE3(write, int, fd, ...)) 10. Узнаем, на сколько важно помнить некоторые данные в оперативной памяти мозга, чтобы иметь возможность анализировать исходный код ядра Linux. 11. Узнаем, как скачать код ядра Linux без дополнительных ревизий. В видео я забыл после сегментного регистра поставить двоеточие, должно быть в итоге так: movl %%gs:%P1, %0. Это стандартный синтаксис ассемблера. Работа с ctags для хождения по коду в vim’е:
Back to Top