Что действительно “заставляет установку” сделать в Make-файле, который идет с ядром?

Программы обычно продвигают аргументы функции на стек, перед использованием asm Команды вызова вызвать функцию, которая продвигает обратный адрес на стек, так, чтобы инструкция RET могла позже появиться, это отступает и знает, куда возвратиться к. Функция также будет обычно помещать свои локальные переменные в стек. Функция вызова также может продвинуть любые регистры, которые она использует на стек прежде, чем позвонить так, она может вытолкать их назад после того, как вызванная функция использовала те registes для чего-то еще.

Визуальное представление слов на стеке, где functionA назвал functionB, могло бы быть похожим на это:

local1
arg1
functionA+12
local1
local2

Здесь functionA имел локальную переменную, и затем передал аргумент functionB и сохранил обратный адрес (12 байтов после запуска functionA). Затем functionB помещают две из его собственных локальных переменных на стеке. Если functionB называет functionC, то стек продолжает расти, и затем он уменьшается снова, когда функции возвращаются.

5
20.04.2014, 15:59
1 ответ

Не вдаваясь в подробности, названия правил headers_install и modules_install кажутся достаточно понятными - headers_install устанавливает заголовки ядра и modules_install устанавливает модули.

Это имеет смысл, поскольку охватывает вещи, которые не скомпилированы в ядро. Многие дистрибутивы предоставляют отдельный пакет для заголовков ядра, поскольку они обычно требуются только при сборке модуля ядра (некоторые пакеты при установке создают свои собственные). Обычно файлы заголовков находятся в / usr / src . Сами модули также должны быть размещены где-нибудь, где система сможет их найти, что и будет делать при их установке (обычное расположение - / lib / modules ).

2
27.01.2020, 20:42

Теги

Похожие вопросы