操作系统的发展按照用户界面划分大致可分为3个时期。第一个时期是以控制台为代表的字符时期,控制台最开始是由显示屏和键盘构成的机器,人们通过它访问计算机,看到的界面是由字符构成的,没有图形元素;第二个时期是以Windows等操作系统为代表的图形化桌面时期,这个时期的计算机操作系统普遍具有图形化桌面,此时的计算机因为简单的操作、强大的功能走入了千家万户、各个行业;第三个时期是以万物互联为特征的ICT时代,此时操作系统具有形态各异的用户界面,用户可通过设备互联的方式使用操作系统。
早期UNIX在全世界范围内的推广方式与后来的开源社区有着异曲同工之妙,当时AT&T公司和高校签署了商业保密协议,高校通过支付象征性的“许可费”就能够获取该系统的源码。很多高校对其展开了深入研究,自由地对其进行分析和改进,相互交流意见和成果,由此促进了UNIX的发展。UNIX家族如图1.2所示。
图1.2 UNIX家族
UNIX的发展速度超乎想象,用户群体在世界各地涌现,并出现了许多重大技术革新。开源社区还建立了USENIX这样的UNIX用户组,针对许多主题开展会议演讲并推出教程,大大促进了UNIX的传播。当然,这种推广模式也为后来的版权之争埋下了隐患。
BSD(Berkeley Software Distribution,伯克利软件套件)又称为Berkeley UNIX,诞生于加利福尼亚大学伯克利分校,它以完整源码的形式发布。作为“UNIX家族”举足轻重的一个分支,为UNIX的发展做出了重要贡献,如UNIX V5中包含TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/互联网协议)堆栈等最初由BSD编写的大量代码。BSD还有一个不那么有名的解释“Because Sleep is Dumb”。因为早期的BSD开发者们经常在伯克利分校的计算机实验室里通宵达旦地工作,这种作息导致很多人都开玩笑地说“BSD是在夜间开发的”。这也反映了开发者们对于创造和探索的热情,以及他们对技术的投入。
从1979年的V7版本开始,UNIX的许可证开始禁止高校使用UNIX源码,包括在课堂中学习。如果想要继续使用,就要支付价格不菲的费用获得授权。1984年AT&T公司分解后,终于放弃了“垄断”,立即将UNIX进行商业化。到了20世纪80年代后期,UNIX日益流行,AT&T公司将许可费从最初的99美元稳步提高到250000美元。
UNIX在发展过程中逐步形成了两大流派:AT&T公司的商业化闭源UNIX版本和BSD的开源系列。这种格局在20世纪90年代初期达到极盛,不同的UNIX版本有100多种,其中包括SunOS、IBM AIX、HP-UX、Xenix OS、Solaris等,这些变种均基于UNIX开源版本派生而来,多发展为闭源的商业版。
20世纪90年代初期,伯克利分校的CSRG(Computer Systems Research Group,计算机系统研究组)创立了BSDi公司,销售自己的BSD发行版,这无疑触动了UNIX版权持有者的商业利益,从而引发了一场“专利战争”。1992年,UNIX的版权持有者AT&T公司起诉了BSDi公司,指控他们将UNIX的代码与BSD的代码混合使用,侵犯了AT&T公司的UNIX版权。这场诉讼持续了多年,最终于1994年结案。解决方案包括从BSD代码中移除涉及UNIX的部分,并支付AT&T公司提出的赔偿诉求。从此之后,BSD就成了一个完全重新编写的操作系统。
UNIX的版权争议一直存在并发酵,SCO(Santa Cruz Operation)公司通过购入Novell公司(贝尔实验室的合作方)间接获取了部分UNIX版权,2003年该公司起诉IBM,声称IBM将SCO的UNIX代码非法插入了Linux操作系统,并通过这种方式削弱了SCO UNIX的市场份额,要求IBM支付50亿美元的侵权赔偿。当时,若SCO公司胜诉则可认定该公司拥有对UNIX的版权,IBM自有的AIX、Sun公司的Solaris等一系列操作系统均会受到影响。这场“专利战争”持续了7年之久,诉讼期间这个问题引发了广泛的关注和讨论,直到2010年才以SCO公司败诉而结束。值得一提的是,这场“专利战争”对开源软件运动产生了重要影响,它不仅提高了当时刚诞生的Linux操作系统(一种开源UNIX变种)的法律地位,还为Linux的快速发展提供了重要的历史时机。
BSD开创了现代计算机的潮流。伯克利分校的UNIX率先包含库,以支持互联网协议栈(Stack)、伯克利套接字(Socket)。通过将套接字与UNIX操作系统的文件描述符相整合,库用户可以通过计算机网络读写数据,跟直接在硬盘上操作数据一样容易。
随着微处理器的发展和个人计算机的问世,新型的桌面操作系统出现并迅速发展。若字符时期的计算机还是专业人士独享的“玩具”,那么图形化桌面时期的计算机则成为人们工作、生活必不可少的部分。形成这一局面的原因,除了制造商将硬件成本不断降低,快捷、操作方便的操作系统是更重要的“功臣”。
1984年,苹果公司推出了非常成功的一代计算机Macintosh,它上面运行的Macintosh System 1(见图1.3)具有便捷的图形化功能,支持窗口显示、鼠标操作、文件夹访问和拖放等功能,使它成为当时风靡一时的计算机。可以说正是这台计算机的问世和推广开启了计算机的图形化桌面时代。macOS借鉴了部分BSD代码,仍可视为UNIX操作系统的延续。不过,苹果公司一贯的封闭特点,使其操作系统不兼容其他厂商的硬件,仅在平面设计、音视频制作等专业领域内使用。当今,macOS仍是非常受欢迎的桌面操作系统之一,它具有非常高的稳定性和安全性,以及独特的用户界面和设计风格。macOS具备出色的设备兼容性,提供广泛的应用程序支持,以及与iCloud等多种应用服务的无缝集成。
图1.3 苹果Macintosh System 1的GUI
1985年,微软公司发布了1.0版本的Windows,将兼容IBM个人计算机的操作系统带入图形化桌面时代。Windows 3.1的GUI如图1.4所示。Windows提供操作简便的图形化界面、优秀的游戏和多媒体体验,受到了企业和个人用户的青睐,迅速成长为桌面操作系统领域当之无愧的“霸主”,直至今天。1.0版本的Windows并没有得到广泛应用,微软公司快速对界面和功能进行了改进和扩展,陆续推出了一系列版本。1995年,微软公司发布了划时代的Windows 95,其具有更加稳定和成熟的系统架构,以及更多实用的功能和工具,如Internet Explorer、MSN Messenger等。2001年,微软公司发布了Windows XP,这是Windows发展史上非常经典的一个版本,是个人计算机的里程碑。Windows 10是目前全球最受欢迎的桌面操作系统之一,它拥有强大的功能和广泛的应用范围,包括对各种设备的支持、AI(Artificial Intelligence,人工智能)助手、云服务、虚拟化技术,以及更好的游戏和多媒体体验等。微软公司在2021年发布了最新一代操作系统Windows 11,在底层架构、系统功能和安全性等方面进行了优化和增强,但稳定性和兼容性还有待提升。
图1.4 Windows 3.1的GUI
GNU/Linux的蓬勃发展也是UNIX的涅槃重生。到了20世纪80年代,几乎所有的软件都是专属软件,这意味用户必须付费才能使用,并且无法对软件进行修复和扩展,在技术层面阻碍了UNIX的应用和发展。
一些黑客程序员发起了开源运动,迎来了操作系统的开源创新与发展新模式。在这个过程中,有两个里程碑式的开源项目起到了至关重要的作用,一个是BSD项目,另一个是GNU项目。
BSD项目发起于加利福尼亚大学伯克利分校。在这个以自由著称的学校,校友肯·汤普森创造并带回了UNIX,他的在校研究生学弟比尔·乔伊(Bill Joy)在1977年编译了第一版BSD。BSD开启了开放源码的传统,每一个发行版包含每个部分的完整源码。BSD在1989年对所有人开放了操作系统网络部的源码,这是早期开源运动的重要里程碑之一,推动了BSD家族的发展和广泛应用,并对后来的开源软件运动产生了深远影响。
在1999年的DEF CON黑客大会上,OpenBSD的创始人西奥·德若特(Theo de Raadt)公开讨论了微软公司的后门程序Back Orifice 2000,并对其进行了严厉批评。作为回应,他承诺将在OpenBSD操作系统中加入对抗后门程序的安全措施。这个事件引起了广泛关注,OpenBSD因此成了安全性和反后门的代名词之一。操作系统安全越来越受到人们的重视,开源也成为操作系统业界应对此类信任危机的一个重要手段。
GNU项目是由理查德·斯托曼(Richard Stallman)于1983年发起的一个免费的软件项目,旨在开发出一个完整的UNIX类操作系统,其源码能够不受限制地被修改和传播。为了支持GNU项目,理查德·斯托曼还创立了自由软件基金会(Free Software Foundation),专门用于资助开源软件社区的发展。到了1990年,GNU项目已经开发出了一个包含UNIX操作系统的所有主要部件的环境,包括编译器、编辑器、调试器等必要的部件,但还缺乏一个可用的内核。
GNU/Linux是开源创新模式下诞生的一个新型操作系统。1991年,一个叫林纳斯·托瓦兹(Linus Torvalds)的计算机专业的学生编写了一个命名为“linux”的内核,将其免费发布在互联网上。这个内核与GNU项目已经开发的软件组成了一个新的操作系统,即GNU/Linux,通常直接简称为Linux。这个操作系统使用GNU GPL(General Public License,通用公共许可证),授权任何人都可修改、发布和使用,这一特性使得该操作系统随着互联网的发展快速传播,并形成了一个庞大的开源社区。
GNU项目已经取得了优秀的成绩,却常常被忽略。GNU项目的成功在于其提供了一套完整的工具链,使开发者可以自由地使用、修改和分发软件,从而推动了开源软件和自由软件运动的发展。
在开源社区的推动下,人们围绕Linux内核创作了多个优秀的发行版,如最初的Slackware Linux、大名鼎鼎的Debian、Red Hat Linux等。这些发行版将各种应用程序和Linux内核打包在一起,为用户提供了非常方便的安装、升级等管理手段,极大加快了Linux的推广。除了开源软件采购和许可成本低的优势外,庞大的社区和用户群体使得软件的安全性、可信度和稳定性都得到了较好的保证,厂商还可根据自己的业务要求对软件进行定制和优化,提高系统的性能和适应性。正因如此,华为、谷歌、IBM、英特尔等许多国内外企业都投入了大量人力、物力资助自由软件基金会,这些贡献支撑了开源软件行业的蓬勃发展。
在ICT时代,用户可通过各种互联手段使用操作系统,从人们天天用的手机、工厂中的机器人、各种设备上的传感器,到服务器上的云容器,都运行着操作系统,可以说有计算的地方就有操作系统。操作系统无时无刻不在默默地为人们管理着他们的各种资产和设备。
21世纪初,非常火热的行业当属手机行业,自从苹果公司在2007年推出第一代iPhone(见图1.5)以后,这种具有多点大尺寸触控功能、快速稳健的网络能力、丰富多彩的应用生态,并能提供丝滑流畅操作体验的手机迅速风靡世界。这种拥有操作系统,可自由安装、卸载应用程序的手机被人们亲切地称为智能手机,iPhone的出现促使智能手机迅速普及,开启了移动计算的新时代,也为操作系统带来了新的发展。
图1.5 苹果公司发布的iPhone智能手机
在iPhone推出之前,移动设备上已经存在一系列操作系统,例如Palm公司的Palm OS、微软公司的Windows Mobile、诺基亚公司的Symbian等。这些操作系统的设计目的是管理好手机上的各类资源,为用户提供的应用程序相对比较简单。而iPhone搭载的iOS在用户界面、应用程序生态环境和性能方面取得了巨大进步,一举成为当时最流行的智能手机操作系统。iOS带来了绝佳的用户体验,操作非常直观,且手机上的动画效果流畅,用户在轻松上手的同时还可享受无缝切换体验;此外,苹果公司为iOS打造了一个庞大的应用程序生态环境,用户可通过手机提供的应用程序商店下载、安装数以万计的高质量应用程序,这些应用程序经过了苹果公司严格的评估,安全性和质量均有保证。苹果公司则通过iOS这个操作系统进一步提供了卓越的软硬件整合能力,使得在iOS上运行的应用程序具有优秀的性能表现,再配合该操作系统对整体电池的控制策略,最终使得iPhone手机在性能、稳定性、电池寿命等各方面都具有远超对手的优势。
iPhone出现后,智能手机进入一个新的时代,也为UNIX类操作系统开启了一个新的纪元。iOS是从苹果公司的Mac OS X发展而来的,其源头还是之前介绍的BSD操作系统,但它是闭源系统,只有苹果公司生产的设备可使用该操作系统。2003年,另一个UNIX类操作系统登上了历史舞台,成了后来开源移动计算操作系统的代表,它就是Android。Android是基于Linux内核开发的,该操作系统的硬件访问通过Linux内核完成,并为应用程序提供一个独立的基于Java虚拟机的环境。开发者使用Java调用Android提供的更高层接口就能编写可在手机上运行的程序,这大大简化了开发移动应用的过程。为了应对iOS的强大竞争,Android进行了长期的改进以不断提升性能,在Android 5.0后该系统采用了ART(Android Runtime,Android运行时)技术,将Java程序预编译成可执行文件,大大加快了应用程序响应和启动速度。Android被谷歌公司收购后得到了广泛应用,且其开放源码的特性受到了手机厂商的热烈欢迎,当前已经广泛应用于各厂商制造的手机上,成为移动计算领域的“霸主”。
早在20世纪末,就有学者提出“万物互联”的概念,即将传感器附着在任何物体上获取物体的各类参数,监控物体的实时变化情况,达到分析、调控物体状态的目的。将所有物体都连接在一起的网络被称为物联网。为了管理这些用于检测物体状态的设备,提供快捷方便的通信能力,业界开发了具有针对性的各类操作系统。通常这些操作系统需要适应这些设备中通信方式各异、能源有限的特点,具有鲜明的特色。
物联网操作系统乃至整个物联网行业都还处于发展初期阶段,尚未形成较为稳定的生态体系。FreeRTOS是物联网领域应用较多的操作系统之一。它实际上采用了RTOS(Real-Time Operating System,实时操作系统)内核,并不是真正意义上的物联网操作系统。真正的物联网操作系统需要解决物与物相联,或物与云、物与人之间的交流,真正实现互联互通。
华为公司作为行业领先的通信设备厂商也推出了自己的开源物联网操作系统,如LiteOS和OpenHarmony。其中LiteOS专注于为轻量级、高效的物联网设备提供服务,而OpenHarmony则旨在构建统一开放的分布式操作系统平台(见图1.6),更注重设备之间的协同工作和互操作性。它们都被广泛用于智能家居、智慧城市、智能交通和工业互联网等领域,为万物互联和智能提供了有力支撑。
图1.6 OpenHarmony系统界面
随着互联网的不断发展,为了给本地用户提供优质的计算服务,很多企业使用CDN(Content Delivery Network,内容分发网络)等机制将服务器放置在离用户物理距离较近的数据中心。业界涌现了一批专门为这些企业提供云服务器租赁的公司,它们提供的服务被称为云服务。租赁这些云服务器的企业并不关心服务器的维护,它们仅需要租赁提供商保证7×24h在线的计算资源。因此,这些提供商将各种计算资源动态地售卖给租赁方,这些资源包括计算机中的CPU(Central Processing Unit,中央处理器)/GPU(Graphics Processing Unit,图形处理单元)算力、内存容量、硬盘容量、网络带宽等。这对管理资源的操作系统提出了新的要求,使得业界出现了一批以管理云服务器为目的的云操作系统。
云操作系统也被称为云平台操作系统或云计算操作系统,是云服务平台的底层支撑与核心。云操作系统分为专有云操作系统、商业云操作系统和开源云操作系统。亚马逊等云服务提供商采用了自主研发的专有云操作系统,商业云操作系统有VMware vSphere和Microsoft Azure Stack等,开源云操作系统有OpenStack和CloudStack等。
华为公司开发了FusionSphere这一云操作系统,旨在为企业提供全面的云计算解决方案。它集成了虚拟化、存储、网络和管理等关键技术,提供了高效、灵活和安全的云平台。FusionSphere主要提供高性能、高可靠的虚拟化环境,灵活可靠的分布式存储,强大的网络虚拟化能力等。这些功能专门为云计算平台提供支撑,能够灵活地调度云上的计算资源,为云租赁提供商提供了方便、快捷的云管理能力。
ICT时代迎来了更为复杂的计算架构,数据处理及基于数据的智能服务变得越来越重要。云边端协同是一种新的计算框架,它结合了云计算、边缘计算和终端设备的优势,以实现更高效、实时的数据处理和分析。这种协同工作的模式能够带来多种好处,如减少延迟、提高可扩展性、增强对信息的访问量,并使业务开发变得更加敏捷。
云(Cloud):指的是传统的云计算中心节点,即云端数据中心。它负责处理全局性的、非实时的、长周期的大数据处理与分析,擅长维护、业务决策支撑等领域。
边(Edge):指的是云计算的边缘侧,包括基础设施边缘和设备边缘。边缘计算更适合局部性、实时、短周期数据的处理与分析,能更好地支撑本地业务的实时智能化决策与执行。
端(Endpoint):指的是终端设备,如手机、智能化电气设备、各类传感器、摄像头等。这些设备通常位于网络的边缘,可以快速收集数据并对其进行初步处理。
在云边端协同的架构中,操作系统可能分别部署在云端、边缘侧和终端设备上,各自承担着不同的角色和功能。
云端操作系统:负责管理和调度云端资源,包括计算资源、存储资源和网络资源等。它可能是一个高度虚拟化、可扩展且安全的操作系统,能够支持大规模的数据处理和分析任务。
边缘侧操作系统:针对边缘设备的特定需求进行优化,如实时性、低功耗、高可靠性等。它可能集成了边缘计算框架和中间件,以便更好地支持边缘应用的部署和运行。
终端设备操作系统:负责管理和控制终端设备的硬件和软件资源,确保设备能够正常运行,并与其他设备进行通信。它可能是一个轻量级的、易于部署和更新的操作系统,能够支持多种传感器和设备的接入。
因此,云边端协同的操作系统并不是特指某一具体产品或系统的术语,而是描述云计算、边缘计算和终端设备之间协同工作的新型操作系统框架。在这个框架下,云边端的操作系统都扮演着更为重要的角色,既要高效实现这三者之间的无缝协同,还要应对异构性、实时性、安全性等诸多要求。
云边端协同的操作系统刚刚兴起,将成为ICT时代的新型基础软件平台。亚马逊、阿里云、华为云和苹果iCloud等服务商都在其服务和产品中融入了云边端协同的理念和技术,积极探索云边端协同的操作系统生态体系。