Cha*_*han 4 programming kernel
我目前正在阅读Silberschartz、Galvin 和 Gagne 的操作系统概念第 7 版。在第 2 章的末尾,有一个练习“向 Linux 内核添加系统调用”。不幸的是,我意识到作者使用的目录结构与 Ubuntu 的目录结构完全不同。例如,作者提到了“/usr/src/linux-2.x/include/asm-i386/unistd.h”,但在我的机器上,它们是:
在这个文件夹中,我找不到任何名为“asm-i386”的东西:(。我想知道是否有为 Ubuntu 指定的文档?如果有任何建议,将不胜感激。
谢谢,
Ubuntu 没有做任何特别的事情。您的第一个困难是您没有安装内核源代码,只有内核头文件。作者正在描述一个带有内核源代码副本的系统/usr/src/linux-2.x。如果您只编译外部模块,那么您在系统上看到的头文件就足够了。Ubuntu 在linux-headers-*软件包中为此目的提供内核头文件(您通常会通过linux-headers-generic的依赖项安装这些头文件) 元包)。如果您需要整个源代码,请从linux-source-2.6获取压缩档案
二进制包。
另一件事是目录结构随着时间的推移发生了一些变化;依赖于体系结构的标头从include/asm-$ARCH到arch/$ARCH/include/asm. 此外,i386和x86_64架构x86在 2.6.24中合并为一个统一的。(这里有更多细节。)所以你现在需要查看arch/x86/include而不是include/asm-i386.
以下是一些对 Linux 内核黑客有用的资源:
并在 Unix & Linux 上阅读这个线程,它解释了如何定位现有系统调用的实现。
| 归档时间: |
|
| 查看次数: |
5037 次 |
| 最近记录: |