近期全球缺芯的问题引发了全面关注,与此同时,中国芯片产业、光刻机的攻坚克难也屡次被提及。但除了芯片和光刻机,中国还有一项技术被反复提及,那就是:操作系统。
2月底,在华为Mate X2发布会上,华为消费者业务CEO余承东宣布,从今年四月份开始,华为旗舰手机可陆续升级鸿蒙系统(HarmonyOS 2.0)。
自从诞生开始,华为鸿蒙就被视为一款自主研发的国产操作系统,可以与安卓、iOS掰一掰手腕。但事实真的如此吗?除了鸿蒙,我们还有哪些国产操作系统?这些操作系统都是自主研发的吗?我们是否有必要自主研发一款独立的操作系统?操作系统研发难度到底有多大?
继《芯片十问十答》、《光刻机十问十答》之后,腾讯科技推出《操作系统十问十答》策划,全面解读有关操作系统的疑问。
Q1:目前全球主流操作系统有哪些?
操作系统是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。
操作系统是用户和计算机的接口,也是计算机硬件和其他软件的接口。操作系统可以分为三类,分别是计算机PC操作系统,手机移动端操作系统,以及车载物联网等操作系统。总的来说,目前主流的操作系统有五种:
一、目前大家所熟知的就是Windows操作系统,它是微软研发的一套操作系统,已经拥有了30多年的悠久历史,大家所熟知的有Windows 95、Windows 98,Windows 2003、Windows XP、Windows Vista、Windows 7、Windows 10等等,该系统在历史的发展中也在不断持续更新和维护。Windows的环境简单明了,容易上手,支持的应用软件多,用户也最多,而且Windows的源代码是顶级的商业机密,无法利用其做基础改版和复制,所以目前很难被取代。
二、安卓(Android)是谷歌公司基于Liunx在2007年发行的移动操作系统,市场占有率大于80%。得益于国产手机的迅速发展,安卓系统快速地占据了手机市场。到目前为止,大部分的手机在实际上使用安卓手机的概率非常高,包括目前手机上比如MIUI、EMUI这样的系统都是基于Android进行的深度定制。
三、Linux。Linux环境是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX(操作系统为应用程序提供的一种接口标准)的多用户、多任务、支持多线程和多CPU的操作系统。
Linux是开源的免费操作系统,因其开源的特性,系统的漏洞更容易被发现,也更容易被修补。此外,因为Linux原本的人机交互界面是命令行,用户如果不熟知Linux命令,几乎完全无法使用这个系统,因为过于专业,Linux常被用作各种服务器操作系统。
可以说,Linux的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,被视为拥有各自特性或类型的文件。也正是因为其源代码开源,利用Linux为基础的改版系统很多,所以较Windows和Mac OS来讲,它容易被替代。
四、苹果MacOS操作系统是基于Unix内核的图形化操作系统,一般情况下在普通PC上无法安装的操作系统,是苹果旗下PC的专属系统,由苹果公司自行开发。
如今苹果机的操作系统已经到了MacOS Big Sur,该系统的许多特点和服务都体现了苹果公司简洁的理念。Mac系统是苹果公司基于Unix操作系统进行深度再开发的操作系统,完全闭源,只能运行在苹果公司的电脑上,且该环境更加简单快捷,深受大众喜爱,加上苹果生态逐渐形成,所以该系统很难被替代。
五、苹果iOS系统,iOS是由苹果公司开发的移动操作系统, 苹果公司最早是在2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad上。
iOS与苹果的macOS操作系统一样,属于类Unix的商业操作系统。原本这个系统名为iPhone OS,因为iPad,iPhone,iPod touch都使用iPhone OS,所以2010年WWDC上宣布将其改名为iOS.
Q2:如何定义自主研发的操作系统?中国目前有这样的操作系统吗?
一个计算机拥有了操作系统,就可以与计算机的硬件打交道,同时程序员可以用编程语言在操作系统上开发应用APP。如果没有操作系统,计算机本身就是0和1的数字开关,有数以亿记的0和1的组合需要处理器处理,然而操作系统的任务就是让这数以亿记的0和1组合为我们所用,使用者可以更轻松便捷地操作各个应用程序。
操作系统是一个比较模糊的词,它可以指由操作系统内核、内核所包含的一系列基本库和程序、可视化桌面环境组成的计算机软件。
内核,一个底层软件系统,它被用来管理硬件资源的访问,并为与底层硬件交互往来提供一个平台。
编译库和驱动程序可以为系统和应用程序提取特定内核,以便程序员使用相同的机制来与内核和硬件交互,而不考虑其它特定的操作系统。例如,C标准库、C++标准库、BASH shell等。
桌面环境,这是一个图形交互界面,用来管理电脑程序和各个应用程序。Windows和Mac OS等操作系统只有一个桌面环境,但Linux操作系统会提供多个选项 ,如Gnome、XFCE、KDE等(三大Linux轻量级桌面环境)。
如果一个系统自下而上,从内核到驱动,从编译库到应用API,都是自己设计的,才算真正意义上的拥有“自主知识产权”的操作系统。UOS和麒麟系统是我国较好的自主操作系统,但很可惜还是达不到自主研发操作系统的标准,因为其核心还是借鉴的Linux的源代码。
Q3:手机、PC操作系统已经被国外巨头垄断,中国还有哪些机会?
虽然在传统的计算机操作系统和智能手机操作系统方面,国外巨头已经垄断,但是在物联网、汽车等其他平台上,中国某些企业推出的操作系统还是可圈可点。
比如上面一直在说的华为鸿蒙,它是基于微内核的全场景分布式OS,将打穿手机、电脑、电视、智能穿戴等多终端领域之间的壁垒,并可兼容安卓应用及所有Web应用,是一个真正实现了覆盖全生态的大统一系统。
小米在2020年11月5日正式推出Xiaomi Vela物联网软件平台,定位于轻量级应用,专门用于智能家居、可穿戴设备等算力受限设备上的物联网嵌入式开发平台,并逐步实现在手表、手环、音箱、智能家电、相机ISP、传感器等更多终端设备中应用。
除此之外,多家互联网巨头也在物联网领域进行尝试突破,虽然市场前景尚未可知,但在未来物联网操作系统领域,我们已经实现多面开花的局面,技术将不再受到限制。而且万物互联的设备量,远远大于手机的设备量,更是远远大于PC的设备量,谁能占据这块没有竞争对手的空白市场,新的计算平台中,谁就能成为新的王者。
Q4:鸿蒙是否可以算是自主研发的操作系统?是否能完全取代安卓?
其实很多人都在关注鸿蒙是否为独立自主的操作系统,这个也要取决于“自主”的定义。其实不论是安卓还是鸿蒙的系统部分也是采用Linux内核,如果按照自上而下一体都是华为自己设计发明的,显然是达不到这个标准的,所以鸿蒙目前还不算是独立自主的操作系统。而且,任正非也曾说过:华为推出的鸿蒙系统并不会取代谷歌的安卓系统。鸿蒙如果能够有一部分生态,那也是补充,而不是主要的替代关系。
我们也可以从技术专利的角度去谈论这件事,安卓操作系统是来自谷歌公司,你们要知道安卓每卖出一部手机,谷歌和微软就会收手机厂家的专利费。
虽然微软的 Windows 是 PC 操作系统,而安卓是手机操作系统,二者看上去没有什么交集。但是一些写操作系统的最基础的方法,早在微软开发 Windows 的时候,就被注册专利了,所以现在不管鸿蒙系统如何去写,也不可能绕过去。
比如,谷歌在安卓上发明了一种优化系统方法,申请专利后,如果鸿蒙也用这种方法来去实现,那势必要交给谷歌专利费,类似的专利有许多,这些专利就像一条沟壑,挡在了后来人开发操作系统的路上。所以鸿蒙如果还是基于安卓的系统来开发,很难超越安卓,更无法取代安卓。
Q5:面对行业内的主流操作系统,鸿蒙有多大的胜算?
实话实说,现阶段鸿蒙系统还无法和安卓、iOS一较高下。仔细分析我们会发现,鸿蒙系统还得依赖于安卓生态圈,否则它将无第三方软件可用,而iOS生态则是闭环的,也就是说苹果的任何应用在华为手机上都无法运行。这其实相当于,iOS和安卓是两个面积很大的“大池塘”, 老死不相往来,彼此之间没有可以引流的水渠。而鸿蒙系统则是一个紧挨着安卓的“小池塘”,里面的水很少,需要靠安卓这个“大池塘”来提供水源。
但鸿蒙的发展潜力是巨大的,目前对于物联网操作系统,各个国家都在起步阶段,而鸿蒙系统侧重于物联网,加上华为的生态早已达到一定的程度,只要鸿蒙系统可以达到消费者认可的状态,肯定会一飞冲天。可以看出,鸿蒙、安卓和iOS发展方向其实各不相同。iOS系统只为苹果设备服务;安卓广结盟友,誓要成为全球第一大开源系统;鸿蒙则侧重于物联网领域,它的目标并不是抢占安卓的蛋糕。可以预见的是,未来这三大系统将长期共存。
Q6:此前媒体报道的中标麒麟、UOS等,算是自主研发的操作系统吗?
首先我们需要强调的一点是,国产操作系统基本上都是以Linux为基础二次开发的操作系统。国内暂时还没有自下而上的独立开发系统。我国从很早阶段就开始自主研发操作系统,例如,1980年代左右,COSIX是最早的国产研发操作系统,但由于投入不足及缺少应用软件支持等因素,邓元英并未成功;1999年,红旗Linux由中科院发布1.0版,经过优化迭代,目前最新版本为红旗Linux V11。笔者也接触过许多国产的操作系统,以下三个是目前比较流行且深受大众喜爱的。
1、国产“DEEP IN深度操作系统”
深度操作系统是由武汉深之度科技有限公司研发打造的,算是迄今为止国产Linux发行版当中最花功夫的一个,其界面优化效果很好,风格的类型既有WINDOWS的众多操作习惯,又有MAC系统的美观,并且其软件生态圈让人很欣慰,众多的软件应接不暇,多媒体应用、办公应用,包括游戏应用也相当不错,截止到2017年,深度操作系统的下载超过5000万次,它提供32种不同的语言版本,以及遍布六大洲33个国家105个镜像站点的升级服务。在全球开源操作系统排行榜上,深度操作系统是率先进入国际前十名的中国操作系统产品。
2、中标麒麟
中标麒麟是由中标软件有限公司研发打造,并发行于2010年,分成桌面版、通用版、高级版和安全版等以满足不同客户的要求,已经广泛地被使用在能源、金融、交通、政府、央企等行业领域,属于政府安可系统成员。在安全方面有自己的独到之处,个人用户的免费版本所能提供的支持有限,但是收费版本(政府采购商用版本,安可系统的)支持率很高,界面也比免费版本友善,集成了许多现成的办公软件,奔图系列打印机驱动,还有一些简单的制图软件,只不过在多媒体方面支持比较鸡肋。
3、统信UOS
统信UOS能够为个人用户提供界面美观、安全稳定的系统体验,兼容市面上大部分的硬件设备,同时支持双内核、系统备份还原等功能,应用生态丰富,并提供差异化的增值服务和技术支持。该系统的版本众多,但大同小异,只是针对的受众群体会有些许区别。其安装的基本要求较高,无论是哪个版本对硬件的要求都要比前两款的高,基本硬盘空间需求130G以上,内存达到4G时可以顺畅运行。但不得不说,这款操作系统还是非常让人惊喜的,界面优化效果很好,风格的类型是即有WINDOWS的众多操作习惯,又有MAC系统的美观,并且它的软件生态圈让人很欣慰,众多的软件应接不暇,多媒体应用、办公应用,游戏应用(当然不可能有WINDOWS那样的支持率,毕竟WINDOWS作为桌面应用的先进代表占领市场太久了)也是相当不错,就个人版来说,家庭用户非特殊要求的使用此款软件还是强力推荐的!
Q7:我们是否真的有必要自主研发操作系统?如果没有这样的操作系统,我们会面临哪些风险?
随着网络技术的不断发展,信息安全显得愈加重要。操作系统作为各种应用软件的平台,是所有软件的基础,是最基本、最重要的一部分。很多人认为我们的操作系统是很安全的,但殊不知,Linux的系统核心技术是来源于美国的。
值得提出的一点是:任何操作系统其实都在内核中预置了“后门”,Windows如此,Linux也不例外。操作系统开发者可以自由出入后门,为所欲为,包括收集系统信息、篡改系统数据、干扰系统运行、使计算机系统“死机”等;个别国家已经研发出了针对Windows, Linux, MacOS等操作系统的武器,可以随时窃取,删除信息,并注入木马等危害,这与我们的生活息息相关。如果我们的所有操作系统被所谓的武器或者后门攻击,我国的各种计算机,手机,交通系统,电力能源系统,国防系统,医疗系统,北斗导航系统,气象系统等都无法工作,这简直就是灾难,所以非常有必要研发出属于我们自己的操作系统。
但操作系统研发的难度是全流程的,开发非常难。因为操作系统实际上是用户、软件、硬件三者的接口程序。从底层看,需要兼容的硬件五花八门,操作系统需要考虑的不仅仅是各个硬件上的可用性,还需要考虑效率等其他因素;从软件角度看,需要大量的软件做操作系统适配,做操作系统想要有人使用,软件生态非常重要,之前的国产操作系统,包括手机和PC操作系统都死在了软件生态上。从用户的角度来看,美观、实用、高效、安全、稳定缺一不可,哪一条拿出来都砸死一片操作系统。
Q8:此前媒体报道朝鲜都有自己的操作系统——红星,这款操作系统技术含量如何?
其实红星 OS也是朝鲜根据 Linux 系统开发的一款PC端操作系统,它主要基于 Linux 在2009年推出的更新版本 Fedora 11 开发,并在2011年正式推出。而目前使用的红星 OS 是其在2013年更新后的第三个版本。最初,它的外观类似于 Windows ,而更新后的红星 OS 则看上去更像苹果的 Mac OSX。
不过,虽然这套系统已经开发了很多年,但它并没有连接到万维网上,只能连接自己国内的网络,去一些他们的政府网站及被朝鲜官方认可的网站上逛逛,而且外部世界的人们也不了解这个系统本身的情况。
德国的两位安全专家在分析红星 OS 后,表示红星 OS 的特点带有很多监视的特性,比如它能够对系统中不同类型的文件进行追踪,这样他们就能够查看不同文件的走向。
Q9:如果中国要发展操作系统,应率先在哪个领域进行突破?
其实最难的问题还是是否要从零开始研发芯片架构,内核,GRUB以及可编程接口,这些软件都是国外在三十年前开始迭代优化的,每个部分都有上千页的规范说明,开发设计也极其复杂;若是想要完完全全地自主设计开发,就必须从底层软件开始,一口吃不成大胖子,浅心研究个十年左右,可能会有我国的自主品牌诞生。
生态构建是操作系统能否取得成功的核心,构建生态型的操作系统,需要从产品、服务、技术、研发、人才等多个领域着手。例如打造优势产品、提升技术,完善系统版本的更新换代、培养更多的专业人才开展研发计划等等。
操作系统的开发其实是很庞大的工程,所需要的技术比较广泛。主要有三大步骤:
第一步是编程语言,这是开发操作系统基础, 目前广泛的是汇编语言和C语言(效率更高);
第二步:指定操作系统的计划,有8大要点:
(1)操作系统准备在何种媒介上运行,比如硬盘,光驱等;
(2)确定操作系统支持方向,比如是否支持用户界面,还是只需要命令行界面即可;
(3)确定操作系统支持哪些平台处理器,比如,X86架构,ARM架构的处理器;
(4)确定内核方面是否从零开发(C or C++),还是使用 Linux 内核扩展来开发操作系统;
(5)确定启动程序使用GRUB,LILO还是从0开发, 这块需要对底层软件BiOS/UEFI(硬件和软件的接口)有一定了解,因为硬件的操作都是需要BiOS的中断服务来控制的;
(6)确定可编程接口,目前现成的是POSIX,所有UNIX的系统都或多或少的支持该接口,目前流行的MacOS,Linux都是基于UNIX的操作系统;
(7)确定设计系统的方向,单片机系统(速度快)还是微内核系统(容错机制和可靠性);
(8)确定高效安全开发模式,最好使用双启动模式,防止数据被抹除或者丢失;
第三步:在操作系统到达某个阶段,可以发行开源版本,让客户和用户测试使用和反馈,提前发现问题;循环上述三个步骤可以优化操作系统,满足用户需求,增加系统使用年限,为自身的生态做准备。谷歌的Android系统,就是开源模式下极具代表性的典型案例。凭借免费、开源的两大特点,安卓系统得到广大手机厂商和开发者的拥戴,一路突飞猛进跻身成为市场份额第一的操作系统,从而达到生态系统和市场渠道的双赢,一举多得。但总而言之,操作系统属于底层软件的一种,想要开发好,还需要懂得其他的底层软件。
Q10:为何日韩和欧洲各国也都鲜有自主研发的操作系统?
目前世界三大操作系统都来自美国,包括谷歌,微软和苹果公司。有不少中国人,甚至连美国人都会疑惑,中国目前在信息产业上发展这么快,为什么没有像Windows,Linux和安卓这种世界闻名的操作系统呢?
其实这个和操作系统的硬件发展有很大的关系。首先,操作系统是搭配硬件一起出现的。比如微软公司的微软系统,是和微软电脑一起出现的,随后占据了几乎全部的电脑操作系统市场份额,苹果操作系统是和苹果手机和苹果电脑一起出现的,迄今为止,这套操作系统依然是苹果公司独有的,但苹果公司就是凭借自己产品的优势,实现了操作系统的普及。但很可惜的是,中国的科技企业目前并没有出现跟微软和苹果一样的标志性产品。就算是华为公司,目前的手机操作系统也是使用了安卓,这就是先入为主的原理。
此外,不只是中国,世界上其他电子产业发达的国家,比如韩国日本和欧洲等,目前都没能研发出可以跟Windows,Linux等媲美的操作系统。
因为这同样面临着大规模推广的难题,为了打败其他对手,美国的谷歌,微软和苹果公司经过了几十年的市场竞争,通过收购等多种手段,建立起了自己的操作系统帝国。
有人说开发操作系统未必很难,但是开发一个受人喜欢的具有商业价值的操作系统简直难于上青天,最大的问题就是生态环境。其实每个国家都有自己的国产操作系统,不过这类系统一般不适合民用,都是军事之类的用途。
不论如何,华为鸿蒙系统的成功研发,包括国产“DEEP IN深度操作系统”的多项应用,相比起之前完全依靠英美等国操作系统的局面来说,都是一个不小的进步。技术在进步,时代在发展,研发我国完全独立自主的计算机操作系统仍旧任重道远。
对于中国未来操作系统的发展,复制别人的技术永远都不是创新,自主研发这个口号人人都会喊,但实行确实艰难无比。尤其对于芯片和操作系统,是需要投入大量的时间、金钱,才会有所收获。目前,国产操作系统已经初具雏形,只要静心去搞研发,笔者坚信,在未来的十年,我们会收获一个为之骄傲的真正实现自主的操作系统。“能打败安卓的,一定不是另一个安卓,而是下一个。”。