为什么开发一款操作系统就那么难?

简介:

近期关于操作系统国产化的讨论不断,年中的时候,韩国那边也爆出了抵制微软,开发国产操作系统的消息。但实际上,真正能应用到现实的操作系统少之又少。国产操作系统红旗去年就陷入了财务危机,之后以1800万的底价寻求出售。2004年,德国慕尼黑政府宣布,将把政府电脑迁移到Linux操作系统,认为此举可以降低IT成本。

screenshot

然而,十年过去了,这场“吃螃蟹”的试验,成了一次灾难。最近,慕尼黑政府已经开始逐步在办公电脑上重新安装Windows操作系统。

作为现代人数字化生活的基础,操作系统其重要性不言而寓。操作系统是人与机器之间的翻译,他将机器的语言翻译成人们可以方便操作的图形、文字。同时又将人的需求,翻译成机器指令以便处理。人和计算机硬件的所有交流,都通过操作系统这个中间人进行处理。

人不喜欢让一个陌生人掌握着自己的命运,于是就有很多的国家机构前仆后继的开发自己的操作系统。但真正的成功者却寥寥。目前市面上可见的主流操作系统供应商估计用一只手就可以数过来了。

为什么开发一款操作系统就那么难呢?

1、极度复杂

微软2005年发布的Windows Vista的代码行数为5000万行。我们以一张A4纸打印30行来计算,Vista的代码打出来有166万页。

另外一个主流的操作系统Linux的核心代码在2008年的时候也达到了1000万行。这只是其基础系统的统计,如果算上图像化界面等外围系统,其代码规模不会比Windows少太多。

2、耗资巨大

商 业周刊曾经对Vista的开发费用进行了估算,预计其所花费的研发费用超过了200亿美元。200亿相当于人类史上最伟大的科学计划之一”阿波罗登月计 划”的费用”。虽然时代不同,但要知道微软是一个商业公司,而“阿波罗计划”是美国动用了一国之力才得以支撑的科研项目。

Linux 虽然是一个开源免费的操作系统,但免费并不代表没有成本。相反,全世界非常多的个人组织都对Linux开发进行了的大量投入。2008年,Linux基金 会的一项研究表明,发Linux社区发行版Fedora 9要花大约108亿美元。这个费用并不比微软的操作系统所花费的费用低太多。

3、需要有大量的外围厂商支持

操作系统只是计算机使用的基础,在操作系统之外,外围的软硬件设备支持决定了操作系统的成败。

乔 布斯在回归苹果的同时,除了向微软借了1.5亿美元的资金以外,同时让微软承诺在接下来的 5 年里,向 Mac 提供 Office 办公套件。由于Office几乎是最重要的商业生产力套件,缺少Office的MAC是几乎不可能获得大规模被使用的。这条承诺给苹果保驾护航,使其优秀 的操作系统重新走上了复兴之路。

iOS之所以成功,也是因为其最早在业界建立了完整的软件生态系统。2013年底,苹果应用商店的应用已经突破100万款。

4、强网络效应,新系统难以突围

一个操作系统的生态越完善,其支持的软硬件厂商就越多,其价值就越大,用的人就越多(即所谓的网络效应)。这种网络效应形成了很高的替换成本,这种成本高到即使是该系统的原有生产商都很难说服用户切换新操作系统。

很多企业和个人都在老操作系统上积累了大量软件和数据,迁移到新系统很可能导致软件失效,数据丢失,如果没有刚需推动,很难让使用者有替换系统的动力。

Winx XP就是这样一个例子。由于该系统太成功,导致XP成为微软日后新系统最大的竞争对手。中国、韩国政府也是因为微软停止对XP的更新才考虑自己开发系统。

screenshot

苹果CEO库克在参观苹果工厂时,其生产线的的iMac竟然也跑着Windows,被网友吐槽。这其中的原因也是由于Windows安装基数太大,很多工业软件只提供Windows版的控制软件。如果硬要换成MAC的话,估计整个生产线都得更换掉了。


做一款成功的操作系统是非常难的,在一个稳定的环境中很难有新的操作系统脱颖而出。但当大时代来临的时候,新的操作系统便有了其突围的机会。

在微软霸占桌面系统的时候,网络时代到来了。由于Linux天然的对网络良好的支持,Linux在数据中心成为了主流。在移动大潮来临的时候,iOS和安卓顺势而上,占领了制高点。

做一款操作系统,并不是简单的国家意志和金钱可以驱动的,它需要天时地利的配合,才有可能真正的成功。

文章转载自 开源中国社区 [http://www.oschina.net]

相关文章
|
12天前
|
监控 测试技术 Android开发
移动应用与系统:开发与操作系统的深度解析
【4月更文挑战第11天】在这篇文章中,我们将深入探讨移动应用的开发过程,以及移动操作系统如何影响这些应用的性能和功能。我们将详细分析移动应用开发的关键步骤,包括需求分析、设计、编码、测试和维护。同时,我们也将探讨移动操作系统,如Android和iOS,如何为应用开发提供支持,并影响其性能。
|
14天前
|
Java 物联网 Android开发
移动应用与系统:探索开发与操作系统的融合
【4月更文挑战第8天】 在数字化时代的浪潮中,移动应用与系统的发展已成为技术创新的前沿阵地。本文将深入探讨移动应用开发的关键技术、移动操作系统的架构演变以及两者之间的相互作用。通过对当前流行的开发工具、编程语言和操作系统特性的分析,我们旨在为开发者提供一套全面的指导,以优化移动应用的性能和用户体验。同时,文章还将展望移动技术的未来趋势,特别是在人工智能和物联网领域的潜在应用。
|
25天前
|
机器学习/深度学习 搜索推荐 vr&ar
移动应用与系统的未来:从开发到操作系统的全面解析
本文将探讨移动应用和系统的未来,包括移动应用开发的趋势,移动操作系统的进展,以及这两者如何相互影响。我们将深入探讨如何通过理解这些变化,来优化移动应用的性能和用户体验。
10 2
|
4月前
|
Linux 数据安全/隐私保护 Windows
jupyter环境下从零模拟开发简易操作系统: 搭建一个学习ucore_OS学习的环境(第二节)
上一节已经一万字了,只好再加一节 如果想要直接 体验 实验效果 可以直接执行本章的命令 生成的img文件可以在qemu中正常运行的话,那么在 真实硬件上基本 也是可以 正常安装操作系统
31 1
|
5月前
|
存储 开发框架 C#
一个用C#开发的操作系统的开源项目
一个用C#开发的操作系统的开源项目
53 0
|
Windows
Windows操作系统:PCIE Axidma篇 2 多设备的准备及开发
在之前提到过的测试模式开启后,无须数字签名的axidma驱动就安装成功了,设备管理器中可以很开心的看到我们xilinx dma的设备,但是实际使用中,有时候并不会只用一台设备
273 0
Windows操作系统:PCIE Axidma篇 2 多设备的准备及开发
|
传感器 JSON Ubuntu
ROS2 机器人操作系统入门和安装以及如何使用 .NET 进行开发
本文是 ROS2 入门的第一课,简单介绍了 ROS 系统,并演示了 ROS2 系统在 Ubuntu 22.04 中的安装(使用 gitee 和清华源)以及其中错误的解决。最后对其优势进行总结,为什么选择 ROS。最后介绍简单 Demo 和如何使用 .NET 接入的其中一种方式。
606 0
ROS2 机器人操作系统入门和安装以及如何使用 .NET 进行开发
|
iOS开发 MacOS
优雅地使用 Mac OS开发
Mac OS自带的 Terminal 命令都保存在 .bash_profile 文件中 iTerm2命令都保存在 .zshrc 中 所以我们将很多命令保存且编辑
125 0
优雅地使用 Mac OS开发
|
索引
OS X开发:下拉菜单按钮NSPopUpButton应用
OS X开发:下拉菜单按钮NSPopUpButton应用
217 0
OS X开发:下拉菜单按钮NSPopUpButton应用