【发布时间】:2016-12-18 04:16:51
【问题描述】:
我正在尝试按照 Silberschatz、Galvin 和 Gagne 的书 Operating System Concepts 中给出的项目部分来构建一个内核作为一个爱好项目。书中写道:
Linux 内核最新版本的系统调用号 列在 /usr/src/linux-2.x/include/asm-i386/unistd.h 中。
但是我找不到这个目录。没有像linux-2.x这样的目录;所有格式均为linux-3.x。
【问题讨论】:
-
那是因为您的书描述的是 Linux 内核 2.x,而当前版本是 4.9(sayeth kernel.org on 2016-12-17)。你的书很旧,因此(至少是轻微的)误导。顺便说一句,我不知道您是否需要
linux-4.x而不是linux-3.x,或者尽管版本更改为4.x,他们是否保留了3.x。 -
我也遇到过这个 [链接](csee.umbc.edu/courses/undergraduate/CMSC421/fall02/burt/…) 它提到了几乎相同的目录。因此,如果我想查看指向系统调用处理程序的指针列表,我应该查找哪个文件?
-
'Fall 02' 大约是 14 年前。当时的内核版本是 2.x。它不再是 2.x。如果要构建 2.x 内核,则需要获取 2.x 源代码,然后您会找到
linux-2.x目录。您使用的是哪个版本的 Silberschatz?第 9 版的日期为 2012 年,这已经足够久远了,它在发布时可能已经“几乎是最新的”了,但从那时起内核一直在发展。 -
我使用的是第 9 版。您能指出一些有关如何在最新版本的 linux 中构建基本内核的信息吗?
-
否;我还没有研究过如何构建 Linux 内核。你需要一个做过这件事的人来帮助你。您可以查看 kernel.org(例如git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/about),但我并没有因为看过而变得更聪明。特别是,我没有找到
include/asm-i386,虽然我并没有那么努力。
标签: c linux linux-kernel