任何人都可以告诉我如何在Linux中完成内核编程,如Windows中的Windows DDK

我知道的Windows内核,但新的Linux内核。 我只需要知道它是如何在Linux中完成的,即程序开发。

你可以在那里查看(free-electrons.com) ,这是内核开发的一个很好的信息源。 (专门从事嵌入式Linux,但大部分文档都可用于标准开发)

你也有传统的Linux设备驱动程序 ,这是非常完整和详细。

最后但并非最不重要的, Linux内核文档 。

Linux没有稳定的内核API。 这是设计的,所以如果可以的话,通常应该避免编写内核代码。 它不可能无限期地保持源代码兼容,并且绝对不会是二进制兼容的,甚至在次要版本之间也是如此。

对于供应商内核来说,这一点更为正确。 Redhat等DO维护主要版本之间的源代码和二进制内核兼容性。

为了减少执行各种任务所需的内核代码数量,例如驱动程序开发(例如,USB驱动程序通常可以在libusb的用户空间中完成),文件系统开发(FUSE)和网络过滤(NFQUEUE)。 但是,还是有一些情况需要你去做; 特别是块设备仍然需要在内核中才能够有效地用于启动设备和交换。