开源操作系统即公开源代码的操作系统软件,它遵循开源协议使用、编译和发布。自由和开放源代码软件中最著名的是Linux,它是一种类Unix的操作系统。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程中各种工具和数据库的操作系统。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。流行的Linux版本有Ubuntu、Debian、Fedora、openSUSE、CentOS、Red Hat等,移动开发领域使用最广泛的Android也是基于Linux内核开发的操作系统。
除了Linux外,还有很多其它著名的开源系统,现对Linux以外的开源操作系统进行一次搜集和整理,详细内容如下:
KnightOS
KnightOS是一个专为TI Z80计算器编写的开源操作系统,其代码托管在GitHub上。KnightOS提供了很多新特性,如开源,支持多任务,可同时运行32个任务;具有基于树型结构的文件系统;具有跨平台特性,能够支持包括最新的银版彩屏计算器在内的9种计算器、具有内存安全特性,重启后不会影响用户数据;KnightOS内核具有独立特性,它采用类 Unix 的环境,使用Z80的汇编语言编写,开发者可以用它来编写自己的操作系统;需要较少的内存,使用31K的内存即可运行程序。
ToAruOS
ToAruOS是一个由伊利诺伊大学计算机科学本科生开发的业余爱好操作系统,其代码托管在GitHub上。ToAruOS可在POSIX和x86架构上运行,其最终的目标是一个微内核。ToAruOS的主要功能包括对进程和线程的支持、ELF二进制的支持、运行时加载模块、管道(Pipe)和各种类型的终端设备(TTY)的支持、虚拟文件系统的支持、EXT2文件系统的支持、信号量支持等。
OSv
OSv是由Dor Laor和Avi Kivity领导的以色列创业公司Cloudius Systems发布的虚拟化、开源的操作系统,采用BSD许可协议授权,其代码托管在GitHub上。OSv的开发动机是由于今天大部分的应用都是跑在云端的 GNU/Linux虚拟机上,而GNU/Linux在设计之初并非为虚拟化而设计,像多用户和多进程的模式不但造就了复杂性而且也成为今天的 hypervisor的性能障碍。OSv旨在在云端取Linux。OSv能够使得一个应用程序跑在一个虚拟机上,这样就不需要kernel-land到user-land 的隔离,从而降低上下文切换的损耗;在启动速度方面,OSv只需要2秒就能启动完成;在安全性方面,目前,OSv支持检测use-after-free;在网络方面,OSv完全继承了FreeBSD的TCP/IP协议栈;在文件系统方面,OSv支持ZFS。另外,OSv还为应用程序提供了新的API,既支持原生的Linux应用,还支持原生的JVM和基于JVM构建的应用。
B2G
B2G是“Boot To Gecko”的缩写,它是Mozilla公司基于Web标准开发的完全开放的移动操作系统,其代码托管在GitHub上,从系统本身到应用程序完全由HTML5、CSS和JS来写的。B2G采用了linux内核和部分Android技术。目前,B2G已经被移植到了Galaxy S II、Nexus S 4G等Android手机上。B2G的前期目标是低价的功能机市场,先让功能机用户以同样的价格用上智能机。B2G不同于Android和IOS等平台,它完全基于Web标准,没有私有API和SDK,完全托付给Web API,这样就省去了开发SDK的步骤,开发者也省去了安装调试以及学习SDK的步骤。另外,B2G还有一个与众不同的功能,用户能够查看应用的源码,就好像使用浏览器可以察看网页代码一样方便。
jsos
jsos是一个由来自澳大利亚的Charlie Somerville 于2010年使用JavaScript编写的开源操作系统,其内核、C库、编译器和JavaScript虚拟机都遵守简单的BSD 协议发布,其中内核包括了一些来至ToAruOS操作系统的代码。自从两年前最后一次的更新维护,Jsos至今还没有继续更新。
Singularity
Singularity是一种实验性、开源的微内核操作系统,它由微软研究院设计、开发,该操作系统的核心、驱动程序以及应用程序都以“受控代码”写成。Singularity的设计不以其性能为标准,而以系统稳定性作为首要标准。Singularity的低级x86中断使用汇编语言和C语言写成;Singularity的硬件抽象层使用C++语言编写,并运行在安全模式下;另外,并且也有部分C代码负责调试工作。
BareMetal OS
BareMetal OS是一个为X86-64系统开发、开源的64位操作系统,它使用汇编语言编写且能够使用C/C++开发应用程序,其代码托管在GitHub上。该系统的开发有三个适用场景,第一个是使用高性能的计算,能够作为HPC集群的节点,也能够最为但认为系统以运行高负荷的计算任务;第二个是嵌入式应用,提供了基于x86-64硬件的嵌入应用开发平台;第三个是提供教育和教学使用,提供了基于X86-64环境的汇编语言的学习和实验的环境。目前,该系统只是尽可能提供有用的功能,还没有将其打造成通用操作系统(如Mac OS X、Linux、Windows)的计划。
开源操作系统具有安全、稳定、免费或少许费用、能够快速修复漏洞、有强大社区的大力支持等优点,同时还为大家提供了学习和交流的资源。开源操作系统在服务器市场已占有了绝对的优势,同时在个人PC市场也正在发展壮大。目前,就连微软对待Linux的态度都有了巨大的转变,已从原来的将Linux比作毒瘤到现在的宣布:微软爱Linux的巨大转变。
μC/OS-II
基于优先级的抢占式多 任务实时操作系统, 包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息 队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程 大为减化+
一个完整的、可移植、可固化、可裁剪的占先式实时多任务内核。μC/OS-II绝大部分的代码是用ANSI的C语言编写的,包含一小部 分汇编代码,
使之可供不同架构的微处理器使用。至今,从8位到64位,μC/OS-II已在超过40种不同架构上的微处理器上运行。μC/OS-II已经在世界范围内得到广泛应用,包括很 多领域, 如 手机、路由器、集线器、不间断电源、飞行器、医疗设备及工业控制 上。实际上,μC/OS-II已经通过了非常严格的 测试,并且得到了美国航空管 理局(Federal Aviation Administration)的认证,可以用在飞行器上。这说明μC/OS-II是稳定可靠的,可用于与人性命攸关的安全紧要(safety critical)系统。除此以外,μC/OS-II 的鲜明特点就是源码公开,便于移植和维护。
μC/OS-II 内核结构
多任务系统中,内核负责管理各个任务 ,或者说为每个任务分配CPU 时间 ,并且负责任务之间的通讯。内核提供的基本服务是任务切换。 μC/OS-II可以管理多达64个任务。由于它的作者占用和保留了8个任务,所以留给用户应用程序最多 可有56个任务。赋予各个任务的优先级必须是不相同的。这意味着μC/OS-II不支持时间片轮转调度法 (round-robin scheduli ng)。μC/OS-II为每个任务设置独立的 堆栈空间,可以快速实现任务切换 。μC/OS-II近似地每时每刻总是让优先级最高的就绪任务处于运行状态,为了保证这一点,它在调用系统API 函数、中断结束、定时中断结束时总是执行调度算法,μC/OS-II通过事先计算好数据简化了运算量,通过精心设计就绪表结构使得延时可预知。
Fuchsia
Fuchsia是Google针对IoT和移动设备新推出的一种操作系统,它基于称为“Zircon”的全新微内核。