日日行,不怕千万里;时时学,不怕千万卷
分类: LINUX
2009-03-10 19:25:20
作为上市公司和高新企业,浙大网新从技术、人才和资金方面为项目的顺利实施提供了强有力的支持,并将兼容内核的研发纳入公司的发展战略。
其意图为把Linux的内核扩充成既支持Linux应用、也支持Windows应用,既支持Linux设备 驱动、也支持Windows设备驱动的 兼容内核,从而实现Linux与Windows之间的高度兼容,使用户可以直接在Linux上高效运行Windows应用而无需安装Windows操作系 统,摆脱对Windows操作系统的依赖。
社区反响
兼容内核项目的启动得到了许多专家的赞同。中国开源软件推进联盟主席陆首群、工程院院士倪光南、OSDL亚太区总裁平野正信等人均给予高度评价。
包括北京共创开源软件有限公司在内的一些Linux厂商更表示愿与浙大网新携手迎接中国开源软件产业的新崛起。此外,浙大网新还与浙江大学计算机学院的同行结成合作伙伴关系,共同从事兼容内核的研发。
项目思路
对于兼容内核的研发,毛德操总结提出了以“一个框架,两个界面”为主体,“嫁接与仿制相结合”的思路。
所谓一个框架是指设备驱动框架。这是因为两个内核中的设备驱动框架有较大的结构性不同,而把Windows的设备驱动模块(.sys模块)动态安装到Linux内核中去,Linux内核中必须有与之配套的框架。
而两个界面,则是指系统调用界面和内核模块支撑界面。前者的目的是在Linux内核中实现一套与Linux系统调用平行的Windows系统调用,实际实现的是Windows的“应用软件二进制界面”、即ABI。
后者的目的是为Windows设备驱动模块的运行提供类似于库函数的支撑,相当于Linux内核中“导出”函数的集合。但是,“一个框架,两个界面”的实现并不意味着从头开始研发,而是应该尽量把Windows函数的界面“嫁接”到Linux内核中的对应函数上。
事实上,对于大多数的Windows系统调用和内核模块支撑函数,在不同程度上Linux内核中都能找到其 对应物。例如,在请求分配缓冲区 时,Windows的设备驱动模块需要内核的支持,而Linux的设备驱动模块也有同样的要求,二者的函数调用界面不同,但是实际完成的操作却是基本相同 的。
当然,嫁接并不是简单的对接,往往还要对Linux内核中的资源加以扩充、修改、甚至重新组合。另一方面,对于一些Windows所特有的、在Linux内核中找不到对应物的功能和性质,则需要加以仿制。
技术路线
在具体的技术路线方面,Linux兼容内核项目以Wine为起点,初期阶段基本依赖Wine,随着Windows系统调用的逐步实现,慢慢地逐步走向独立自主,最后就基本上摆脱Wine,实现了Windows的系统调用界面。
之所以说“基本上”摆脱Wine,是因为Wine项目所开发的许多(用户空间的)动态连接库(DLL)对于兼容内核而言还是不可或缺的。显然,这样一条渐进的研发路线有助于兼容内核的平滑推进。
对于设备驱动,则以另一个开源项目NDIS Wrapper的成果作为起点,同样也采用渐进的研发路线。此外,对于具体功能点的实现,例如具体系统调用的实现,将采用先粗后细,逐步逼近,螺旋式推进 的策略。这是因为Windows系统调用往往带有许多可选项,要一次就实现所有的可选项不现实,也会拖其它功能点的后腿,所以螺旋式推进是比较合适的对 策。
项目宗旨
作为一个开源项目,Linux兼容内核将遵守GPL规定,公开按规定应予公开的源代码。同时也欢迎世界各地的网友与爱好者参与,形成一个Linux兼容内核的开源社区。在开发兼容内核项目的同时,也让Linux的开源精神得到更好的发扬。
同时浙大网新将维持一支专职的开发团队,采取专职与业余相结合的开发方针。条件成熟的时候,将邀请若干专家组成一个技术委员会,更好地指导本项目的进行。
显然,Linux兼容内核的开发不可能是唾手可得,在技术上有着很高的要求。可以肯定的是,Linux兼容内核项目有很长的路要走,也会遇上一些困难。
在项目开发人员努力的同时,也希望广大Linux、开源软件甚至Windows的爱好者一同参与进来,无论是献计献策还是协同开发,都可以给这个项目予更多的帮助和支持。
我们期待,到兼容内核的研发(基本)成功之日,我们不光有了一个广大用户所期待的操作系统,更成长起来了一支高水平的专业队伍,甚至是一支操作系统的专家队伍。显然,无论是对于公司、对于用户,还是对于国家,这都是很有意义的。
知名操作系统场专家 毛德操
Linux兼容内核项目开发组
一般问题
问:在Linux上可以使用Wine运行win32程序,为什么要开发Linux兼容内核?
答:
很多用户在Linux上使用Wine运行win32程序,并且经过长期的开发,Wine的运行效率也得到了很大的提高,但是,Wine毕竟只是在用户空间
运行的中间平台,无法彻底解决运行效率、替换所有dll等问题。Linux兼容内核的目标是在内核层面实现兼容,因此不会出现这些问题。
问:Linux兼容内核的代码是否公开?
答:Linux兼容内核是一个开源项目,会遵照GPL的规定公开相关代码。
问:Linux兼容内核中的系统调用如何实现?
答:请参见《项目白皮书》。
问:为什么Linux兼容内核还要使用Wine?
答:Linux
兼容内核目前尚在开发阶段,有很多系统调用等都尚未实现,仍需要借助Wine进行过渡,完成Linux兼容内核未实现的功能。不过,Linux兼容内核使
用的Wine仅包括其实现的dll和wineserver等服务程序,进程/线程管理等Windows系统的基本运行机制不再采用Wine的实现。
问:Linux兼容内核的使用是否受Linux系统发行版的限制?
答:Linux
兼容内核只涉及Linux内核的修改,因此,理论上可以在任何Linux发行版上运行。另外Linux兼容内核项目组也在包括Fedora、
Ubuntu、红旗、MagicLinux等发行版上进行了测试,可以正常使用。不过由于发行版的差异,应用程序在Linux兼容内核上运行的效果可能有
差异。