三谈操作系统
Posted AutoIO
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了三谈操作系统相关的知识,希望对你有一定的参考价值。
文章来源:智能系统百家谈
编辑整理:IO酱
+
+
+
+
操作系统的概念
操作系统是非常基础的系统软件,它支撑所有的应用程序执行。但操作系统以及相关术语的不规范使用,经常会给我们带来一些认知上的混乱,比如,所有人都知道Linux 是一个操作系统,但基于Linux 的android 也被称为操作系统。
目前大家公认的操作系统定义,应该和百度百科给出的一样:
操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
但这个定义需要做些调整。
我认为,运行在特定硬件运算平台之上,为上层应用程序提供了完备、自洽的程序接口,方便开发人员利用各种硬件资源开发应用程序的系统软件,就可以称为“操作系统”。
在上面这个定义里边,我强调如下两个概念:
操作系统必须提供完备、自洽的程序接口;
操作系统首要服务于开发人员(软件工程师)。
百度百科给出的操作系统定义,其实应该属于另一个术语“内核(Kernel)”。比如 Linux 操作系统,本质上是 Linux 内核外加一些基础的函数库、工具等形成的。基于此原因,自由软件基金会的Richard Stallman 就一直强调应该把 Linux 操作系统称为“GNU/Linux”操作系统,因为配合 Linux 内核工作的基础库和工具,是由自由软件基金会组织开发的,这个项目的名称是 GNU。
一个操作系统的内核,会通过特定的手段提供一些接口,但这些接口相对原始,对开发者并不友好,而且不同的操作系统可能会提供不同的接口。后来大家想到一个办法,通过对原始接口做进一步的封装,可以让开发者不管用哪个内核,都可以使用统一的接口来编写应用程序。为满足这个需求,出现了 POSIX 标准。目前大部分的操作系统都遵循POSIX 标准为应用程序提供接口。
但是,基于 POSIX 标准的操作系统接口仍然比较底层,对程序员的要求较高,一般需要使用较为低级的计算机编程语言(常见的如C语言)来开发应用程序。而后来出现的图形用户界面,由于各个操作系统厂家的实现差异太大,并没有形成统一的标准,这就导致了很多操作系统,就算针对同一种领域,比如同为桌面电脑操作系统的 Windows 和MacOS,在接口上也存在着巨大的差异。
而操作系统提供给应用程序的编程接口,其实是围绕操作系统形成的生态体系之护城河。
何为操作系统的生态
在各种谈及中国高科技领域缺芯少魂的文章中,90% 都会提到中国做芯片也好,做操作系统也罢,均需要巨大的资金和人力投入,而且很难打破已有的成功芯片或者操作系统通过长时间的市场营销打造出来的生态系统之铜墙铁壁。
就我来看,操作系统的生态系统实际上就是围绕操作系统对外提供的接口形成的。也就是说,不同的操作系统,本质区别就在于其接口不同。不同的接口,意味着不同的操作系统。或者说,接口就是操作系统的基因。甚至在智能手机时代,不同的操作系统提供了不同的编程语言。
美国人很清楚,打造一个操作系统,从一开始就要考虑赋予这个操作系统以不同的基因,并围绕这个基因打造生态系统。
特定操作系统的生态系统,说白了是由围绕这个操作系统的开发者构成的。有的开发者开发应用,有的开发者开发工具,大家协调配合,热闹起来,事儿就成了一半。显然,有更多的开发者,这个生态系统就会更加强大。缺少了开发者,操作系统将是一潭死水,无法持续发展。当然,一个生态系统要良性发展,生态系统中的各方都需要获得利益:操作系统厂商要赚钱,而开发者也要赚钱。
一切还要看市场基础
生态系统是表象,而市场基础才是根本。假如没有市场基础,开发者就不会为某个操作系统开发应用,缺少了开发者的操作系统,自然无法长久。
拿 Linux 举个例子。为什么 Linux 成了全世界最流行的操作系统内核?最根本的原因是 Linux 的出现恰逢其时(有市场基础),其次是Linux 使用 GPL 许可证保持了开源和免费,而第三个原因是 Linux 借它的内部接口形成了自己的生态系统。
作为内核,Linux 向上层提供了符合 POSIX 标准的接口,而向下为硬件外设提供了统一的驱动程序接口。正是因为 Linux 为硬件提供了统一和稳定的驱动程序接口,使得 Linux 成为硬件生产商开发计算机硬件外设时的首选,这让 Linux 内核中存在着大量的各类驱动程序,进而聚拢了大量的内核开发者,而这反过来又促进了 Linux 内核的广泛应用。
这也可以解释,为什么国产的那些各种各样的 Linux 发行版,除了政府或者极少的行业客户之外,在民用市场几乎没有任何建树,更谈不上取代 Windows 了。其表面原因是,除了操作系统厂商之外,没有开发者为这个操作系统开发应用,也就无法形成良性的生态系统。但从根子上讲,这是由于市场需求疲软造成的——Windows 的市场地位不可撼动,而开发者无法通过开发这些操作系统上的应用软件赚到钱。或者,换句话说,国产的那些针对桌面的 Linux 发行版,是不可能围绕政府“自主可控”的口号创建一个生态系统的——没有这个市场基础。
所以,做一个操作系统,最根本是要有市场基础。在有确定的市场基础之前提下,一定要赋予这个操作系统以独特的基因(接口),并围绕这个基因打造这个操作系统的护城河——生态系统。如此才有成功的可能。
国产操作系统是否还有机会
看过梁宁那篇《关于国产芯片和操作系统的一些往事》的读者一定知道,几十年来,倪光南院士一直在奔走呼吁,希望政府牵头、大企业支持一同打造自主可控的国产CPU和操作系统。
一个新操作系统的发展一定要有市场基础,没有市场基础,接口生态论是不成立的。目前,在服务器、桌面、智能手机领域,美国巨头没有给我们留下任何市场机会。所以,我认为国内那些林林总总的国产桌面操作系统(包括国产智能手机操作系统),是没有任何机会的,顶多就是赚点政府的钱。
但国产操作系统仍然有机会,但机会一定来自新的市场。
以通用操作系统为例。新的操作系统,往往在计算机的设备形态,尤其是交互方式发生变化时出现。比如个人电脑上最初运行的DOS,有了图形终端和鼠标后出现了Windows系统;而智能手机的出现催生了ios和Android系统,对应的交互方式从鼠标变成了触摸屏。
所以我认为,当计算机的形态(比如人机交互方式)发生重要变化时,才会给新的操作系统带来发展机遇。或者反过来讲,新的操作系统要为新的计算机形态,尤其是新的交互方式进行设计才有发展壮大的机会。其中深层次的原因是计算机形态(如交互形态)的变化,会使得操作系统的软件栈发生变化,进而会催生出新的应用编程接口。如前所述,应用编程接口则是操作系统赖以构建自己的生态系统的护城河。
所以国产的操作系统要想在竞争中胜出,就必须先他人一步去为新的计算机形态做准备。那么,新的计算机形态会是什么样的?其实不同于服务器、桌面和智能手机的计算机设备在近几年越来越多,比如智能音箱、智能门锁为代表的智能硬件,工业机器人,物联网,车载系统等等,而且随着各行各业信息化的发展,会有更多不同于传统计算机形态的产品出现(最具革命性特征的应该是量子计算机),而这就是国产操作系统的机会所在。
再次强调,针对服务器、桌面和智能手机的通用操作系统领域,国产操作系统不会有任何机会。如果您还在持续投入,那最好尽早放弃。
结语
很明显,中兴被禁运的事件将为国产芯片、操作系统等基础软件的发展带来契机。祝贺还活着的操作系统从业者,尤其是仍然坚持自主操作系统理想的创业者。
然而,契机只是契机,能否借机发展壮大,实现人生理想,进而为国争光,就看你们的了。
(点击图片或文字立即回顾上一期)
友衷以自主开发的车载智能操作系统平台AutoIO OS为基础,秉承“安全、稳定”的产品理念,向中国乃至世界的各大汽车厂商提供汽车座舱数字产品。
我们坚信软件是汽车智能化的关键,友衷将用软件重新定义汽车。
点击阅读原文,查看更多
以上是关于三谈操作系统的主要内容,如果未能解决你的问题,请参考以下文章