开源作业系统( 二 )


开源作业系统

文章插图
Linux开源作业系统windows-like类:ReactOS原创类:House、KolibriOS、MenuetOS、HelenOS、OpenvmsGoboLinuxGoboLinux是一个开源作业系统,其最显着的特色是重新组织的档案系统层次结构 。它没有遵循以往类UNIX作业系统的档案系统层次结构标準(FHS) 。在GoboLinux下,每个软体都有自己的子目录树,其下包含它属的所有档案 。因此,程式“Foo”的专属档案与库都在" /Programs/Foo "目录下 。很明显,“可执行”档案位于" /Programs/Foo " 。根据GoboLinux开发者的观点,其意义在于构建一个在档案层级上结构明晰的系统 。XFree86XFree86是X视窗系统的其中一个实现,自1992年,它一直循着自由发放的开放原始码模式被发展 。它主要的运作平台是Unix类作业系统,包括各版本的UNIX、Linux、BSD、Solaris、Mac OS X、IRIX、OpenVMS及Cygwin/X等 。由2004年开始,它再不是以GPL软体许可证的形式出现,而是使用XFree86?Project公司所拥有的XFree86 Licenseversion 1.1软体许可证模式发放 。现时XFree86仍由XFree86?Project公司负责开发,该公司的主要负责人是David Dawes 。自1992年至2004年,XFree86是X视窗系统最被广泛使用的基建平台 。其后,XFree86的开发因软体许可证出现分岐,而派生出另一个发展自XFree86 4.4 RC2版本原始码,名叫X.Org伺服器的X视窗系统 。大部分使用XFree86的开源作业系统和开发者都转为使用X.Org 。XFree86从2008年底发布4.8.0以后已经完全停止更新 。ReactOSReactOS是一个开发与Windows NT和Windows 2000应用程式、硬体驱动程式兼容的开源作业系统项目 。本项目虽然只是处于内部测试(alpha)开发状态,但到2005年1月其中一些子项目已经完成了目标 。ReactOS主要是由C语言编写 。部分组件则由C++编写,例如ReactOS档案浏览器 。ReactOS的各部份在GNU通用公共许可证、GNU宽通用公共许可证、及/或BSD License下发布 。为确保作业系统没有任何一部份是看过泄漏出来的微软Windows源码的人所写,或者逆向工程的过程达不到Clean room design标準,一个全盘的源码审查由ReactOS主要开发者下令展开 。此审查已经退出 。机遇开源为开发作业系统提供机遇 。透明、公开的开源作业系统问世,使得对作业系统内部架构的开发人员,获得了了解作业系统体系架构的机遇,也使他们在这方面的知识产生飞跃;基于开源的作业系统可为开发工作节约大量人力、物力、财力和时间,可使作业系统的开发者们得以站在巨人肩膀上前进 。因此开发基于开源的作业系统无疑是一条正确的开发路线 。很多基于Linux核心的作业系统相继问世,如Android、WebOS、MeeGo等,便是採取了基于Linux核心的技术发展路线 。体系架构作业系统的体系架构,由其底层(Base Layer)、中间件层(Middle Ware Layer)、用户体验层(User Experience Layer)以及独立配置的软体模组,如安全模组(Secarity Module)所构成 。底层主要是其核心(Kernel);对中间件层,从开发者角度看,主要指开发环境和运行环境(Development Environment and Runtime Environment),从用户角度看,主要指各种功能模组(Functional Modules)或套用架构(Application Framework);用户体验层(UE=UI+Applicaions),由用户界面和各种应用程式所构成 。所以,作业系统是一个多层架构、多元协定、许多构件构成的系统 。核心很多作业系统是基于Linux核心来开发的 。Linux基金会(Linux社区)负责“Linux核心”官方(Official)或主干的各款通用版本的开发、发行和维护工作 。对基于Linux核心的作业系统的开发者来说,可选择某款Linux核心版本作为自己作业系统的核心,如果要对主干版本进行修改以形成自己的分支核心版本时,必须将其修改部分及时反馈给主干版本的维护管理者,取得他们对修改的认可,并在主干Linux核心中登记注册,最终使这个分支核心版本成为Linux核心大家庭中一员 。Android是基于Linux核心的作业系统 。谷歌Android开发团队在开发Android作业系统过程中,曾将配置在Linux核心中的一些驱动模组转移到Linux核心之外,他们还重新定义、增设某些功能模组(如电源管理模组等),修改后一度引起了Linux社区与谷歌Android开发团队之间的意见冲突,但最终还是通过协商取得了一致 。上述案例表明,谷歌修改主干 “Linux核心”变成自己分支 “Android核心”时,必须取得主干Linux核心维护管理者的认可,并在其中登记注册,使“Android核心”成为“Linux核心”的一部分 。