阅读250 返回首页    go 京东网上商城


怎样开发一款操作系统(持续更新ing)

在如今,市场上主流的操作系统不用想都应该知道是Android和IOS吧,还有一个WindowsPhone,不过现在它的市场连百分之四都不到,现在无论微软怎么鼓励开发者开发WP程序,甚至是自己掏腰包或帮忙写程序都没有多少程序员围观了,微软这几年的手机行业实在不景气啊!这几年来,在我们中国也有不少公司自己制作过移动操作系统(这里操作系统在下面统一使用OS代替了),但因为软件市场不景气都纷纷抛弃转型做Android的二次开发了。

但是现在我们中国也有了自己的OS了,那就是AliOS,AliOS原名是叫YunOS,而YunOS原名又叫阿里OS。这个OS改名期间,真是折腾了不少啊:之前叫做阿里OS时被人说是盗版Android(但之前我也是这样认为的,之前解析了一下阿里OS的源代码,只是在Farmework中加入了一个Cloudservice的运行包而已),在改名后而仍然被人叫盗版。不过从YunOS6.0发布后,又改名成了AliOS。现在我还是改变了想法,毕竟现在去解析源码就会发现开发人员还是下了不少功夫的,但美中不足的是口碑没那么好了,AliOS还是搭载在高档手机上比较好!

分析了上面的实例,有人会提问,有Android或IOS了,还要开发OS干嘛?那你反过来想想,假如有一天Android闭源了,IOS倒闭了。那我们的OS版本就只能永远停留在那个阶段了。如果我们中国开发了一部OS,而且自己的国家拥有OS的版权,不是挺好吗?现在AliOS只是兼容Android Application,而自己的应用市场小得可怜,开发出属于自己的OS,意味着不被其他公司控制股权和限制。

无论如何,开发一款OS是非常考验人心滴,甚至自己还有可能成为下一个乔布斯呢。21.gif

好,开始正题,,,,

一个完善的OS有以下部分组成:硬件、固件+软件

硬件:WLAN硬件、摄像头、CPU等等可见的硬件。

固件:内核、WLAN驱动、图形驱动等等不可见的固件

软件:运行库、数据库、文件系统等等不可见的软件

由于硬件很好搞到手,可以直接买个开发板就行了,所以首先我们要根据自己所需要的功能选取所需要的内核,现在市场上的手机搭载的都是Linux Kernel或Unix Kernel 。linux Kernel可以移植到许多的平台上去,对硬件要求极低。而Unix Kernel对硬件要求极高(本人亲测)。但Linux Kernel的功能少,一般适用于小型机,而Unix Kernel一般用于商业性。

接下来就是驱动,开发过Android UI的都应该知道,谷歌为了绕过GPL协议,把Linux Kernel能改的地方都改过了,特别是驱动这一方面,比如摄像头驱动是在RunTime运行时才进行初始化的。给张Android的架构图大家看一下

59f3f7384a090def29b38b694894c07827211788

如果模仿谷歌的做法也是可行的,遵从GPL协议也是可以的。

然后就是资源库,资源库可以随这个时代的主流设计,比如数据库可以使用MySQL,如果内核选的是Unix的话,最好在内核初始化时就对所有的驱动啊、资源库啊定位好。

然后我们说到运行库   


大半夜了,明日更,谢谢观看


最后更新:2017-10-21 02:03:18

  上一篇:go  PgSQL · 特性分析 · MVCC机制浅析
  下一篇:go  u盘乱码怎么办?看他怎么恢复的(不花一分钱)