Я хочу добавить системный вызов в Linux, но в обучающих данных нам нужно изменить файл linux/arch/i386/kernel/entry.S
или arch/x86/kernel/syscall_table_32.S
. Я не могу найти файлы. Я посмотрел и не смог найти и у меня нет папки с именем i386. Помогите мне, пожалуйста. необходимо.
Прежде всего вам нужен исходный код ядра Linux. Вы можете скачать его на kernel.org или установить пакет linux-source
из Ubuntu. В последнем случае вы найдете несколько исправлений из Ubuntu.
Обычно источники живут по /usr/src
. Если вы распаковали файлы или установили пакет, вы найдете дерево, которое вы упомянули выше. Таким образом, самая последняя версия ядра содержит файл с именем entry_32.S
и entry_64.S
в подкаталоге arch/x86/kernel
. Часть после arch
имеет имя x86
, а не i386
, как вы упоминали. Если вы хотите использовать i386
, вам следует выбрать версию ядра ниже 3.7, потому что i386
был удален с 3.7 и далее.
Файл entry_64.S не является эквивалентным файлом, который вам нужно изменить ... в зависимости от того, что вы хотите сделать. Если вы хотите добавить системный вызов в свое ядро, измените файл /arch/x86/syscalls/syscall_64.tbl .