Linux以外的开源操作系统大汇总
开源操作系统即公开源代码的操作系统软件,它遵循开源协议使用、编译和发布。自由和开放源代码软件中最著名的是Linux,它是一种类Unix的操作系统。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程中各种工具和数据库的操作系统。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。流行的Linux版本有Ubuntu、Debian、Fedora、openSUSE、CentOS、Red Hat等,移动开发领域使用最广泛的Android也是基于Linux内核开发的操作系统。
除了Linux外,还有很多其它著名的开源系统,现对Linux以外的开源操作系统进行一次搜集和整理,详细内容如下:
1、KnightOS
KnightOS是一个专为TI Z80计算器编写的开源操作系统,其代码托管在GitHub上。KnightOS提供了很多新特性,如开源,支持多任务,可同时运行32个任务;具有基于树型结构的文件系统;具有跨平台特性,能够支持包括最新的银版彩屏计算器在内的9种计算器、具有内存安全特性,重启后不会影响用户数据;KnightOS内核具有独立特性,它采用类 Unix 的环境,使用Z80的汇编语言编写,开发者可以用它来编写自己的操作系统;需要较少的内存,使用31K的内存即可运行程序。
2、ToAruOS
ToAruOS是一个由伊利诺伊大学计算机科学本科生开发的业余爱好操作系统,其代码托管在GitHub上。ToAruOS可在POSIX和x86架构上运行,其最终的目标是一个微内核。ToAruOS的主要功能包括对进程和线程的支持、ELF二进制的支持、运行时加载模块、管道(Pipe)和各种类型的终端设备(TTY)的支持、虚拟文件系统的支持、EXT2文件系统的支持、信号量支持等。
3、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构建的应用。
4、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还有一个与众不同的功能,用户能够查看应用的源码,就好像使用浏览器可以察看网页代码一样方便。
5、jsos
jsos是一个由来自澳大利亚的Charlie Somerville 于2010年使用JavaScript编写的开源操作系统,其内核、C库、编译器和JavaScript虚拟机都遵守简单的BSD 协议发布,其中内核包括了一些来至1130.www.qixoo.qixoo.com/ToAruOS操作系统的代码。自从两年前最后一次的更新维护,Jsos至今还没有继续更新。
6、Singularity
Singularity是一种实验性、开源的微内核操作系统,它由微软研究院设计、开发,该操作系统的核心、驱动程序以及应用程序都以“受控代码”写成。Singularity的设计不以其性能为标准,而以系统稳定性作为首要标准。Singularity的低级x86中断使用汇编语言和C语言写成;Singularity的硬件抽象层使用C++语言编写,并运行在安全模式下;另外,并且也有部分C代码负责调试工作。
7、BareMetal OS
BareMetal OS是一个为X86-64系统开发、开源的64位操作系统,它使用汇编语言编写且能够使用C/C++开发应用程序,其代码托管在GitHub上。该系统的开发有三个适用场景,第一个是使用高性能的计算,能够作为HPC集群的节点,也能够最为但认为系统以运行高负荷的计算任务;第二个是嵌入式应用,提供了基于x86-64硬件的嵌入应用开发平台;第三个是提供教育和教学使用,提供了基于X86-64环境的汇编语言的学习和实验的环境。目前,该系统只是尽可能提供有用的功能,还没有将其打造成通用操作系统(如Mac OS X、Linux、Windows)的计划。
开源操作系统具有安全、稳定、免费或少许费用、能够快速修复漏洞、有强大社区的大力支持等优点,同时还为大家提供了学习和交流的资源。开源操作系统在服务器市场已占有了绝对的优势,同时在个人PC市场也正在发展壮大。目前,就连微软对待Linux的态度都有了巨大的转变,已从原来的将Linux比作毒瘤到现在的宣布:微软爱Linux的巨大转变。
Linux以外的开源操作系统大汇总的更多相关文章
- C#开源系统大汇总(个人收藏)
C#开源系统大汇总 一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖 ...
- C#开源资源大汇总
C#开源资源大汇总 C#开源资源大汇总 一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行 ...
- C#开源系统大汇总
一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种部署方面(as ...
- C#开源系统大汇总(转)
一.AOP框架 Encase 是C#编写开发的为.NET平台提供的AOP框架.Encase 独特的提供了把方面(aspects)部署到运行时代码,而其它AOP框架依赖配置文件的方式.这种 ...
- Web开源框架大汇总
Struts 项目简介信息 Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的.由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的 ...
- [开源]C#中开源软件大汇总(外国的)
一.博客类项目 1.SubText 项目介绍:Subtext 是一个个人博客发布平台,详细的介绍请进SubText 项目分类:博客 项目license:BSD License 项目主页:http:// ...
- android app性能优化大汇总(内存性能优化)
转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! 写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上 ...
- ANDROID内存优化——大汇总(转)
原文作者博客:转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! ANDROID内存优化(大汇总——上) 写在最前: 本文的思路主要借鉴了20 ...
- 推荐Linux管理员不可不知十大PHP安全要点 - SCutePHP
PHP是使用最广泛的脚本编程语言之一.市场份额颇能说明其主导地位.PHP 7已推出,这个事实让这种编程语言对当前的开发人员来说更具吸引力.尽管出现了一些变化,但是许多开发人员对PHP的未来持怀疑态度. ...
随机推荐
- 每一个C#开发者必须知道的13件事情
1.开发流程 程序的Bug与瑕疵往往出现于开发流程当中.只要对工具善加利用,就有助于在你发布程序之前便将问题发现,或避开这些问题. 标准化代码书写 标准化代码书写可以使代码更加易于维护,尤其是在代码由 ...
- Nodejs进阶:基于express+multer的文件上传
关于作者 程序猿小卡,前腾讯IMWEB团队成员,阿里云栖社区专家博主.欢迎加入 Express前端交流群(197339705). 正在填坑:<Nodejs学习笔记> / <Expre ...
- 使用markdown编辑evernote(印象笔记)的常用方法汇总
原文发表在我的博客主页,转载请注明出处 前言 正所谓工欲善其事,必先利其器,本文将要介绍的evernote和markdown都是程序员必备的工具 虽然国内现在有了很多evernote的替代品,做的比较 ...
- JavaScript面试题收集(一)
简述javascript中的“=.==.===”的区别? 答:=赋值 ==比较是否一般相等 "3"==3 //会做类型的隐式转换,true ===比较是否严格相等 " ...
- 维克里拍卖 Vickrey auction
https://en.wikipedia.org/wiki/Vickrey_auction 维克里拍卖(Vickrey auction),即次价密封投标拍卖(Second-price sealed-b ...
- 【POJ 2318】TOYS 叉积
用叉积判断左右 快速读入写错了卡了3小时hhh #include<cmath> #include<cstdio> #include<cstring> #includ ...
- react.js CMS 删除功能的实现
页面效果图: 数据操作分析: 在查询表组件的 TableData.js 中操作如下内容: 给每一行绑定一个checkbox,且在点击这个 checkbox 时,触发 action 中的一个方法(fo ...
- JavaScript使用自定义事件实现简单的模块化开发
WEB前端最常见驱动方式就是事件了, 所有交互等等都是通过事件,前端的常见事件有: UI事件: 焦点事件: 鼠标事件: 滚轮事件: 文本事件: 键盘事件: 变动事件: 现在网页上有一个输入框, 如果我 ...
- Maven异常Type Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix
eclipse maven错误“Project configuration is not up-to-date with pom.xml. Run proje” 导入maven工程后,出现如下错误: ...
- 一起学HTML基础-利用CSS和JavaScript制作一个切换图片的网页
由于个人原因,不详细写步骤 思路: 一.布局 二.制作图片区和按钮区的div及颜色.边框.背景属性等 三.用PS将四张图片剪切到同一个尺寸,重叠放置在图片切换区,透明度设置为0 四.点击对应按钮时,将 ...