我现在想写一个内核已有一段时间了.我已经对C有足够的了解,而且我已经涉足x86汇编程序了.你知道,我想在C中编写一个符合POSIX标准的内核,以便* NIX应用程序可以移植到我的操作系统中,但是我没有在标准POSIX内核函数上找到很多资源.我在
the Open Group’s POSIX page上找到了关于文件系统结构,环境变量等的资源.
不幸的是,我没有找到任何解释POSIX兼容内核必须具有的调用和内核函数的东西(换句话说,内核必须遵守POSIX的内部结构类型).如果有人能找到这些信息,请告诉我.
解决方法
POSIX根本没有定义内核的内部结构,内核到用户空间的接口,甚至libc.实际上,即使Windows也有一个符合POSIX标准的子系统.只需确保链接上定义的POSIX接口以某种方式工作.但是请注意,POSIX不需要在内核中专门实现任何内容 – 如果您愿意,可以使用您自己设计的更简单的内核接口在C库中实现.
碰巧许多POSIX兼容的操作系统(BSD,Linux等)在许多调用和内核层之间有着相当密切的关系,但也有例外.例如,在Linux上,write()调用是直接系统调用,在内核中调用sys_write()
函数.但是在Windows上,write()在POSIX支持DLL中实现,该DLL将文件描述符转换为NT句柄并调用NtWriteFile()
来为其提供服务,然后调用ntoskrnl.exe中的相应系统调用.所以你在如何做事方面有很多自由 – 这会让事情更难,如果有的话:)