研发一款真正成功的操作系统,其难度是要高于原子弹、核潜艇之类的,你看看前苏联或者其它国家,可以成功的爆炸原子弹,可以修建核电站,可以发射卫星,但就是搞不出一款成功的操作系统,请注意这里说的不是一般般的操作系统,而是比较成功、高水准的操作系统,为什么这样呢?原因有三: 1、一套高水准的操作系统,就是一个社会的缩影,它要兼顾万般需求、兼容各类客户,它的稳定性、多功能性、兼容性、可扩展性这些看似矛盾的要求必须提现在一套软件内,因此首先就要求研制者本身具备对社会万象具备极高的理解力,要见多识广,否则一个社会可能的需要什么你都不清楚,又如何研发出一款可以满足社会各类需求的软件呢?不可能。 但很多社会本身就不发达、文化单一,那么这个社会的需求与见识就必定有限,这就意味着一套成功的操作系统,只能在一个开放多元、高度发达社会、各类文化丰富多彩的社会内才可能被研制出来,因为一套操作系统其实就是一个社会的缩影,没有极为丰富的见识、没有千奇百怪的需求,你如何做出一套可以兼容这个社会99%的需求的产品?这就是常说的“你的见识决定了你的高度”。 2、其次是竞争的压力,即便是在一个发达的社会中,各类需求要素都被你掌握了,但如果没有貌似残酷的竞争,没有巨大的压力,一套成功的系统也不可能被研制出来。 这就像战争一样,没有生与死的压力,你个人的才华与潜能根本就不可能被发挥出来。操作系统也是如此,如果你只是国家出面组织一帮人,关起门来埋头研发,我敢说“十年也只是搞出一个四不像来”,因为根本就没有在市场中被反复的蹂躏、实证和PK过,不可能有好产品。只有在生与死的压力下,才可能出好货。 换言之: 只有在一个纯粹市场经济的环境中才可能竞争出一个好的操作系统。 3、我们知道,天才之火也要靠利益之油来维持,在软件行业特别依靠对知识产权的尊重,必须依靠购买正版软件,让研发的公司有巨大的利益,愿意持续投入,才能让一套操作系统可以数十年的持续改进,维持高水准、高性能、高的兼容性,在一个盗版横生的市场上,是不可能诞生一套高级的操作系统的,因为研发人员早就饿死了。 综合上述三个条件,就决定了这个地球上能够研发一套成功的操作系统的国家只有一个: 美国
7评论
分享
自己玩的话到linux官网下载个linux内核,搜索教程可以做个简单的操作系统,如果是像微软那种闭源很强大很主流的操作系统非常难,我记得vista操作系统内测开发一个开始菜单就用了很多工程师还有很多时间,相当大的一个工程,据说工程师好几千个。 还有不通架构的芯片指令集也不一样,像ARM是精简指令集,X86架构就复杂多了,像咱们中国也只能开发基于Unix或者Linux内核的操作系统,因为不是软硬结合不算自主产权,未来我想也没办法,毕竟世界上所有操作系统内核和芯片都是国外尤其美国发明的,这么多年过来你根本没法逆转这个局势,世界前10的超级计算机大半都是基于Linux内核的操作系统,你们觉得从零开始有多难,就算开发出来了还是要有硬件芯片指令集授权,你肯定会想自己开发指令集,但还是难,总之没有全世界各家硬件和软件公司支持干不成事的。 Unix内核系统分支好多个,目前做得做好是桌面版Mac OS和移动版的iOS,一开始还是开源免费后来大部分商业化了,直到Linux之父克隆Unix内核提倡开源精神,导致一发不可收拾,我们生活中的很多设备都基于Linux内核的操作系统,像家里的路由器,安卓手机,汽车,家电,生活中无处不在 Linux内核操作系统一般分X86架构,ARM架构两个版本,X86架构分32位和64位版,常用的有Debian,Redhat,Fedora,Ubuntu好多好多,不过我对于Linux分常见的软件集中管理版本,比如apt的debian、Ubuntu、Linux mint等,yum的Fedora,CenterOS,openSUSE等,像主流的Ubuntu基于debian开发,Linux Mint基于Ubuntu,以前的BT5也是基于Ubuntu,现在的Kali Linux直接基于debian开发,用于安全审计无线安全黑客…… 另外linux内核系统桌面环境还分好多种,常见的GNOME,KDE,Unity(Ubuntu自家的),MATE,Cinnamon等 手打随便看看,有些也不一定对,只是我这20年用电脑的经验之谈,有兴趣可以留言交流交流
评论
分享
如果是说要从头开始研发内核的话,首先要有一群精通计算机集成电路的人来为内核设计底层交互,要理解各项元器件的电气原理,比如南桥芯片的总线定义,哪种操作需要用哪种脉冲之类的。有了这些理论基础之后,内核才能够实现与各个元器件之间的调度交互。 然后是通用可扩展接口,比如我们常用的PCI接口,USB接口,这些通用接口可以接驳各种不同的硬件,每种硬件都有不同的电气标准,我们没有办法集成到内核中,因此要开发一种通用可扩展接口,让第三方硬件厂家可以依照接口标准自行开发驱动程序。 在这之后就是开发核心功能,比如系统的启动程序,任务调度器,进程管理,内存管理,IO调度等。 然后还要为上述功能开发开放的API,供应用层的程序来调用。比如最基本的控制台程序。 再然后是基本应用程序,比如控制台,各种资源的管理器,常用的通信协议的实现,用户界面,各种功能的开发套件等,涉及到很多东西。 所以你看,真的很难。
1评论
分享
制作一个操作系统并不难,很多大学计算机专业在学习操作系统原理、编译原理课程中有要求学生自己写一个简单版本的操作系统;又如现在的嵌入式操作系统,代码很小,具有操作系统的核心功能,也能仿写一个。那么难在哪里呢?我按重要程度梳理几条: 1.标准和专利保护 操作系统出现的时间短,从80年代算起,也就是40年不到,严重受专利保护,其传播成本又很低,只要优先占领市场,就能排斥其他,所以windows系统虽然长期被人诟病,但市场占有率一直在90%以上。其实标准在其中有起重要作用,这跟语言有一比,想想看,在国内你用中文发布消息,如果换成藏语会有那么多人看吗,自然会选汉语。 2.核心技术和硬件的兼容 操作系统的核心功能改进的比较缓慢,而且与硬件息息相关。
评论
分享
这个问题本事其实是有问题的,所谓操作系统,你是指一个通用操作系统,比如Windows一样,还是一个核心,比如最小化的linux,还是一个嵌入式系统,还是一个完整的操作系统生态。 我假设你问的是Windows一样的通用操作系统,可以参考windows95的开发周期,win95最早的测试版貌似是93年就有了,那么可以猜测至少92年就已经开始开发了,到95年发布,应该是三年,然后到中间出过补丁和加强,合计算一年好了。要知道做win95之前微软已经开发过至少三代的windows,所以开发经验最少需要2年。把这些加起来,就是6年可以做一款成熟的操作系统。 用现代软件开发的各种技术放进去,我们假设可以节约三分之一的时间,那也需要4年。这需要一支上千人的团队,在极其有经验的项目经理的带领下完成。国内找的出这样的团队? Linux的开发就不要讨论了,因为我们已经有了一个Linux,再去开发一个Linux有多大意义?而且以Linux的开发模式,在天朝只会半途烂尾决没成功的可能。 最后说一下,操作系统就算真的做出来,上面没软件的话,通通都是扯淡。
评论
分享
|
|