ReactOS
ReactOS项目是一群Windows“发烧友”创立的。他们坚信Windows是个比Linux更好的操作系统,问题仅在于源代码不公开,所以他们要来开发一个开源的Windows内核。令人诧异的是:他们的开发基本上是从零开始的。 中国网管联盟www、bitsCN、com
Windows与Linux孰优孰劣恐怕是个永远争论不出结论的话题,但是开发出一个开源的Windows内核,让用户可以有多一个选择,那无疑是很有意义的,他们的勇气和毅力更是使人起敬。这个项目的进展也很快,现在已经初具规模。不过,考虑到Windows内核本身的复杂性,ReactOS离实用还是有相当大的距离。在笔者看来,认定要开发一个Windows内核,却坚持从零开始编程、而刻意不去利用现成的Linux代码资源,似乎有点意气用事,也不必要地增加了开发的工作量与难度。而我们的兼容内核,则首先是继承Linux的资源,再反过来补上Windows内核与Linux内核之间的差异,而且即使是对于这些差异也要尽量利用和借鉴现有的开源代码资源、包括ReactOS。 网管网bitsCN_com
与兼容内核一样,ReacOS也只是个内核,跟完整的操作系统相比,中间还缺着以DLL为主的系统软件这一层。在这个问题上,ReactOS的策略和我们一样,也是利用Wine。另外,即使在内核中,ReactOS也不完全排斥采用别的开源软件,例如其socket机制的实现就采用了Oskit的有关代码(笔者感到不解的是为什么不采用Linux的有关代码)。 中国网管联盟www.bitscn.com
对于我们来说,ReacOS的可贵之处在于为我们提供了一个可资参考的样本。Windows内核的源代码不公开,ReactOS的源代码却是公开的。虽然ReactOS不等于Windows,但这至少让我们看到另一群人对Windows内核的理解,以及他们的具体实现。
那么我们可以在什么程度上利用ReactOS的代码呢?那要看具体情况: 网管网bitsCN.com
? 对于Windows设备驱动框架的实现、包括I/O子系统的实现,ReactOS的有关代码对我们有极其重要的意义,有些代码甚至可以直接加以利用。
? 对于NDIS的实现,可以将NDISWrapper与ReactOS中的相应代码作一比较,一方面是择优录用,一方面是互相补充、互相借鉴。
? 对于系统调用界面,ReactOS的相应代码可资借鉴。
? 对于进程管理和资源管理,可以参照和比较ReactOS和Wine服务进程的有关代码,然后在Linux内核中加以实现。
? 对于设备驱动界面(环境),可以根据DDK的定义逐一考察ReactOS的实现(如果已经实现的话),再在Linux内核中寻找其对应物或近似物。然后加以参照比较,以确定具体应该如何实现。 feedom.net
总的来说,如果某一项功能既已在ReactOS中实现,又可以利用Linux内核中的某些资源加以实现,那么我们更倾向于利用Linux的资源。这是因为一般而言Linux的资源已经经受了更多的考验。另一方面,兼容内核毕竟是个Linux内核,而不是把两个内核堆积在一起。像对Wine一样,笔者将另撰专文介绍和分析ReacOS中的有关代码。 中国网管论坛bbs.bitsCN.com
最后还要说明,笔者说兼容内核有三个重要的源泉,绝不是说就只有这么三个源泉。海纳百川,有容乃大,只要对兼容内核的开发有用、有助,我们对任何源泉都不应排斥,只是需要择优采用。 网管网bitsCN_com
feedom.net
