Linux 兼容内核 (longene) 0.2.4.1 版 (UnifiedKernel-0.2.4.1) 发布
{ 撰文/linooxlee }
2009 年 8 月 31 日,Linux 兼容内核项目开发组正式发布了 Linux 兼容内核
0.2.4.1
版本。兼容内核的前一版本(0.2.4 版本)是基于 Linux 内核 2.6.23
的,0.2.4.1
版本没有增加 Window 方面的新特性,只是把 Linux 内核升级到 2.6.30
以支持新的文件系统(Ext4 等)和硬件。同时兼容内核 0.2.4.1
版本还对前一版本的一些
bug 进行了修正。
目前 Linux 兼容内核项目开发组正在进行兼容内核支持
SMP(对称多处理)的编码工作,使得兼容内核在具有
SMP 的双核、四核 CPU(有些双核 CPU 本身不支持
SMP)中充分发挥的硬件性能。由于增加 SMP
的支持有较大的技术难度,因此这个过程可能会比较长。兼容内核开发人员已经对
Windows 设备驱动框架的实现进行了探讨,NidsWrapper
代码移植到兼容内核的工作已经开展。预计不久将启动 Windows
设备驱动框架的开发工作。
关于兼容内核项目:
我们知道现代计算机操作系统是把系统划分为用户空间和系统空间两部分。操作系统内核在系统空间负责调度管理 CPU、内存、磁盘等硬件资源和协调应用程序的运行。应用程序运行在用户空间中,它是看不见操作系统内核的,应用程序需要进行磁盘读写等操作需要通过一个“应用程序(设计)界面(API)”获得操作系统的支持。
操作系统内核是分层次的,其底层是硬件抽象层,再往上是设备管理层包括设备驱动等,Windows
NT,Unix、Linux、BSD
等操作系统的这两层对硬件资源管理的各自实现是不一样的,没有一个统一的标准(甚至同种操作系统内核中的内部接口也没有统一标准,不同版本的内核内部接口经常变动,这也是兼容内核难以跟上标准
Linux 内核版本升级的原因之一)。
再往上是内核与应用程序对接的接口层即应用程序(设计)界面(API)(win32 标准为二进制兼容、POSIX 标准为源码兼容),应用程序通过 API 的获得底层硬件的资源。API 一般是稳定的,否则就与应用程序不兼容导致应用程序不能正常运行。硬件资源管理的底层作支撑,操作系统同时支持多个应用程序(设计)界面(API)是办得到的。
事实上 Windows NT 的结构就是在微内核上设置 UNIX、Win32 和 OS/2
三个子系统,三个子系统都在核内它们是互相独立地位是平等的。只是到现在为止微软并没有推出纯净的
Unix 系统(即只有 UNIX 子系统的 Windows)。Windows NT
从设计开始就在内核层面兼容 UNIX,支持 POSIX 标准的。它在内核上提供了一个
UNIX API 的兼容层。它的后继者 Windows
XP 和 Vista 也继承了这个特性,最新的兼容层叫 Interix。Windows
服务器版包含
Interix,桌面版需要下载安装。Windows 对 POSIX
的兼容程度很高的,通过了高级别的测试:
;Windows NT 的结构见微软的网站:
。
兼容内核项目是一个开源的计算机操作系统内核计划,它试图在 Linux
内核中构建一个 Win32
API 子系统,使之在内核层面既支持 POSIX 标准的 Linux 的应用程序又支持
Win32 标准的 Windows 应用程序。相比 Windows NT 的 POSIX 子系统,因微软的
Win32 API
技术细节不公开,兼容内核开发要难的多。目前兼容内核主要的技术依托为 Linux
Kernel、Wine、NdisWrapper 和 ReactOS
等。它们都是开源项目,源码公开可以自由取得。
兼容内核开发路线:
兼容内核不采取一步到位、而采取逐步逼近的策略。对于 Windows 系统调用部分它以 Linux+Wine 为起点,兼容内核开发自身的功能模块来替代 Wine 的功能模块。兼容内核每实现一个功能就对 Wine 打相应的补丁,使得 Windows 程序转向使用兼容内核的功能。可以表示为:
(Linux + Wine) => … => … => (Linux’ + Wine’)。起点 Linux+Wine 显然是可以运行的,开发过程中的每一步都替代 Wine 的一些功能模块,实现一组有限的目标,每一步的结果都应该是一个可以运行的、更逼近 Windows 的、可以发行的版本。此发行版本有可以作为下一个开发版的起点。如此反复直至 Wine 的功能模块完全被替换。Wine 受技术路线限制不能实现的功能兼容内核也要加以实现。
对 Linux 内核的修改原则上以动态安装模块的形式实现,尽可能不改变 Linux 内核原有的代码,必要时才打一下补丁。这有利于保持原 Linux 内核的稳定和兼容内核升级的灵活性。
对于设备驱动支持部分兼容内核以 NDISWrapper 为起点,通过扩充和替换 NDISWrapper 功能模块和增加 Windows API 支持来实现设备驱动的装入和运行。
兼容内核下载地址:
兼容内核的 CVS 数据库已对公众开放,它的 CVS 服务器 IP
是:218.108.51.90:2401 />
账号:anonymous
口令:anonymous
兼容内核官方网站:
兼容内核 Wiki:
Linux 兼容内核白皮书(关于兼容内核的必要性、知识产权问题、开发路线和技术方案):