Linux兼容内核

特性

兼容内核项目在Linux内核的基础上利用Linux内核材料构建一个Windows内核环境（包括进程管理、线程管理、对象管理、虚拟内存管理、同步、系统调用、系统注册机制和设备驱动程序框架等Windows系统内核机制），形成一个新的内核，使Linux和Windows应用程序和设备驱动程序能够直接在其上运行。
兼容内核不是Linux内核和Windows内核的简单堆砌。为了防止兼容内核变得臃肿，如果一个功能可以用利用ReactOS（Windows的开源仿制品）代码实现，也可以利用Linux内核函数通过编程实现（ReactOS、Wine、NDISwrapper代码作为参考），兼容内核倾向采用后一种实现方法。
兼容内核有两套系统调用（syscalls）及其相应的系统调用表（syscall table）：一套为Windows系统调用，另一套为Linux系统调用。Windows应用程序通过软中断“int 0x2e”访问系统调用表进行Windows系统调用。Linux应用软件则通过软中断“int 0x80”访问系统调用表进行Linux系统调用。
兼容内核项目不计划开发Windows和Linux的在用户空间运行的库文件（.dll和.so文件）。这些库文件由Wine项目（或MS Windows/ReactOS项目）和Linux项目提供。

现在和未来的开发

兼容内核正在集成QEMU代码以增加对ARM架构上直接运行Windows应用的x86架构二进制映像的支持。兼容内核开发将有两个分支。一个是1.0分支，这是针对x86架构上的跨操作系统兼容。另一个是2.0分支，这是针对既跨操作系统又跨CPU架构的兼容。1.0分支的进展也体现在2.0分支中。 兼容内核开发人员已经对Windows设备驱动框架进行了讨论，NidsWrapper的代码移植到兼容内核的工作已经开展。预计不久将进行实现Windows设备驱动框架的开发工作