В моей книге OS говорится, что, если Вы хотите добавить системный вызов ядра Linux, отредактируйте linux-2.x/include/asm-i386/unistd.h
.
Но исходная структура ядра Linux, кажется, изменяется много. В linux-2.6.34.1
исходное дерево ядра версии, я только нахожу a linux-2.6.34.1/include/asm-generic/unistd.h
и linux-2.6.34.1/arch/x86/include/asm/unistd.h
.
Кажется, что редактирование последнего имеет больше смысла.
Мой вопрос что /inlcude/asm-generic
для? Как может asm связанный код быть универсальным?
asm-generic - это общие версии функций, обычно кодируемые на ассемблере, но на чистом C, без какой-либо встроенной ассемблера. Вероятно, это сделано для упрощения переноса ядра на новые платформы и для хранения независимого от платформ общего кода в одном месте.