|
说明:本博客与微信公众号《嘉数汇》部分同步更新,内容大部分原创。请扫码关注《嘉数汇》公众号。
上一篇我们聊了“摩尔定律的奇点效应”,讲述了在摩尔定律的驱动下,从面向计算的CPU到面向智能的TPU的之间的伟大变革。实际上,无论是Google的TPU还是国内寒武纪DianNao系列的智能芯片,更重要的还是这些芯片上的软件生态,例如TPU + TensorFlow。
软件的生态直接决定着上层应用的开发的难易程度,而这才是市场和用户的终极关注。不断提高性能和降低了整体运行成本的同时,开发者的体验和用户的体验更为核心,想想微软的Windows生态能够雄霸桌面几十年,就是这个道理。而软件生态的集大成者就是操作系统了,这就是我们今天的话题。
1、引子
你知道“安迪-比尔定律”吗?
简单来说,“安迪-比尔定律”就是软件升级推动硬件换代,即大名鼎鼎的“安迪给什么,比尔拿走什么”(What Andy Gives,Bill Takes It Away,安迪指英特尔前CEO安迪·格鲁夫,比尔指微软前任CEO比尔·盖茨)。这个定律使得英特尔和微软联手(也就是我们常说的“Wintel联盟”)推动整个IT行业发展,并且牢不可破地运转了超过30年。那个一直不断升级的软件就是微软的操作系统,其背后的驱动力就是摩尔定律。可以说,我们今天所使用的操作系统,无论是PC端还是移动端,之所以能够不断升级换代越来越好,都是摩尔定律所赏赐的。
计算机的发展史同时也是一部软件史,因为没有软件的机器就犹如一堆废铜烂铁。而所有软件中最具代表、同时也是各种软件技术集大成者非操作系统莫属。操作系统相对于整个计算机系统的地位,就类似大脑相对于整个人体的地位一样,发挥着核心作用。
操作系统(Operating system)通常是指:管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行,它的核心是在人与硬件交互过程中加入了一个中间层,将人类的自然语言和业务语言转化为机器能识别和执行的机器语言。
操作系统是管理硬件资源、控制程序运行、改善人机界面和为应用软件提供支持的一种系统软件。操作系统运行在计算机上,向下管理计算机系统中的资源(包括存储、外设和计算等资源),向上为用户和应用程序提供公共服务。
操作系统有几个特征,第一,屏蔽硬件物理特性和操作细节,为用户使用计算机提供了便利。简单说,就是在硬件资源之上形成虚拟控制层,但并不需要直接去控制CPU和内存这些硬件单元。第二,提供一个高效的运行态,有效为应用提供各种系统资源,提高系统资源使用效率。就是说,在操作系统之上可以运行各种游戏、办公软件和各种应用。操作系统还可以管理这些应用。第三,简易友好的公共服务,包括为用户提供一个友好的用户界面,以及为应用开发者提供一个简易的开发环境等。总结起来看,操作系统的属性应该包括:存储管理,任务管理,运行态,人机交互,公共服务等。
2、硬件的操作系统
1985年,比尔·盖茨推出了几乎是改变人类历史进程的Windows操作系统,造就了屹立三十年不倒的微软,和世界首富榜上的常客,比尔·盖茨。
其实,比Windows操作系统更早一年的是Mac OS,当然在1984年第一代的苹果操作系统名为:System 1.0。是的,直到第八代苹果操作系统,才真正成为了今天的Mac OS,同时Mac OS 8.0也代表着乔布斯的回归,终成一代传奇。
最近的一次操作系统的颠覆,则是2003年诞生的Android。在经历了2年的探索,濒临倒闭之前,才被谷歌收购。卧薪尝胆之后,终于在2012年第一次超越苹果,目前已经成为智能手机搭载最多的操作系统。
操作系统发展的初期主要是单机操作系统,面向计算机硬件的发展提供更好的资源管理功能,同时面向新的用户需求提供更好的易用性和交互方式。随着网络技术的发展,计算机不再是孤立的计算单元,而是要经常通过网络同其他计算机进行交互和协作。因此,对网络提供更好的支持成为操作系统发展的一个重要目标。在操作系统中逐渐集成了专门提供网络功能的模块,并出现了最早的网络操作系统(Networking operating system)的概念。
传统上,操作系统内涵即是在这个层次,我们称之为狭义的操作系统,或经典的操作系统。
每一次经典操作系统出现,并走向成熟,都代表着一种技术体系的成熟,或是一种应用架构的普及,这就是操作系统的魅力。然而,每一次技术架构发生变化的时候,都会产生很多“新”的操作系统,我们可以把这些“新”的操作系统视为更加宽泛的广义上的操作系统。
例如,当下广受关注的是云计算操作系统。构架于服务器、存储、网络等基础硬件资源和单机操作系统、中间件、数据库等基础软件之上的云操作系统,不完全统计有几十种之多。除了云操作系统外,另外一个大热点就是面向大数据的操作系统,并且各个厂家总说纷纭。云计算操作系统和大数据操作系统的发展,既需要技术上的沉淀,也还需要时间和市场来证明。
3、数据的操作系统
简单来说,数据库(Database,DB)是长期存储在计算机内、有组织的、可共享的大量数据的集合。而数据库管理系统(Database management system,DBMS)则是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库。数据库管理系统是数据库系统的核心,是管理数据库的软件。数据库管理系统就是实现把用户意义下抽象的逻辑数据处理,转换成为计算机中具体的物理数据处理的软件。有了数据库管理系统,用户就可以在抽象意义下处理数据,而不必顾及这些数据在计算机中的布局和物理位置。
DBMS也是一种系统级软件,并且通常是构建在一个更加通用的操作系统之上。例如,Linux上的MySQL,Windows上的SQL Server等。
因此,从用户的角度上来看,DBMS就是关于数据的操作系统。
DBMS的主要功能主要包括:数据定义、数据操作、数据库的运行管理、数据的组织存储与管理等。DBMS不管可以屏蔽了硬件物理特性和操作细节,连底层的操作系统也都可以屏蔽,对上层的用户来说就是那些结构化了的数据。人和数据之间的交互语言就是结构化查询语言(Structured Query Language,SQL)。
对于SQL的发展,有一个非常漂亮的总结:
1970:We have no SQL
1980:Know SQL
2000:No SQL!
2005:Not only SQL
2013:No, SQL!
简单来说整个故事就是:
虽然关系数据库是上世纪70年代发明的,但是直到80年代,IBM发布了第一代全功能的关系数据库系统System R后,我们才正式进入到关系数据库模型,才有了SQL;
2000年后,互联网大发展,传统的SQL很力不从心,一些互联网系统开始去掉了事务和SQL,接口简单了,性能就更容易得到提升,扩展性也更容易实现,这就是NoSQL系统的起源;
到了2005年,经过5年的忽悠,有很多人愿意相信NoSQL似乎确有其事,于是有一批先行者就开始探索各种玩法,NoSQL数据库大行其道;
等到了2013年,经过了10多年的折腾,猛然回头,我们发现关系模型还是最方便表达数据存取的语言,比其他都要方便的多,我们还是要关系数据库的,于是所有的NoSQL都在想办法尝试支持关系数据库,还是回到了如何能够让关系数据库更具有扩展性,性能更好这条路上来,这就是NewSQL的来源。
数据库系统的研究和开发从20世纪60年代中期开始到现在,几十年过去了,经历三代演变,取得了十分辉煌的成就,造就了三位图灵奖得主,内容丰富的一门学科,带动了一个巨大的数百亿美元的软件产业。可以说数据管理无处不需无处不在,数据库技术和系统已经成为信息基础设施的核心技术和重要基础。
DBMS作为面向数据的操作系统一直在发展和变革,试图来管理数据的整个生命周期。刚开始是解决数据的存储、然后是对数据的增删改查功能;随着支撑数据库的数学理论慢慢成熟,SQL作为标准的数据操作语言一统江湖;随着对数据分析的需求越来越重,数据仓库、数据挖掘、商务智能等特性也都一股脑的装进了DBMS。数据库迎来了巅峰的鼎盛时期。
4、大数据的操作系统
步入大数据时代后,人们开始从大数据的角度,重新思考数据管理的范畴,并试图打造大数据时代的新型操作系统,传统的关系型DBMS已经无法满足。
于是乎,正对大数据的四大特征(数量大、类型复杂、速度快和价值高),各种各样的大数据处理软件都在试图证明着自己。分布式存储系统HDFS、流处理引擎Spark、NoSQL、Hive、R等,纷纷来赶集,并呈现出一幅围绕着Hadoop和Spark的清明上河图。
如果我们从操作系统这个视角来看,会看到一些什么内容呢?
首先从底层的角度看,大数据总体解决人与复杂大数据技术组件之间的交互问题,使更多的人可以轻松,平滑的使用大数据技术,而感知不到后面复杂技术的存在。这一点应该是最为重要的。那么,应该可以通过一个大数据操作系统将这些底层技术进行统一的管理,并且通过可视化的界面进行交互。
其次,在大数据操作系统的上层,可以快速低成本地搭建了许多的大数据应用,比如大数据营销工具,大数据分析等等。这等于是屏蔽了底层技术细节,为用户使用大数据应用提供了便利。如果说Windows实现的是人机交互的话。那么大数据操作系统实现的就是人与数据之间的对话。
对照着操作系统的三大特征来看,目前的大数据系统已经能够很好的屏蔽一对物理机器的细节了(例如Hadoop),并能提供一个高效的运行态(例如Spark)。然而,简易友好的公共服务还有一定的距离。因此,我们今天可以看到,国内外大数据基础软件的竞争,仍然集中在SQL on Hadoop这样的交互技术以及简易的流处理技术上,同时围绕数据安全、数据治理等方面提供一系列的工具。
Hadoop-SQL Integration
大数据操作系统的最终目的,就是能够让每一个普通用户都能拥有使用大数据的能力。
当下,大数据的生态基本可以分为四个层,从下至上分别是大数据平台基础软件层、分析工具层、应用层和专业服务层。大数据领域的基础软件层提供了存储、计算、分析和挖掘等功能。因此,大数据时代的操作系统不仅仅是分布式数据库软件,还包括了实时流处理引擎、NoSQL数据库、机器学习、搜索引擎、图计算等。是一个更为复杂的系统软件。
大数据的生态层次
因此,我们可以看到这样一条从人类语言到数据的人数交互链:人类语言→业务语言→程序语言→机器语言→硬件→数据。
目前国外的大数据基础和系统软件这块,基本上形成了三家初创公司Cloudera、MapR、Hortonworks为主的市场格局,传统大型公司如IBM、Teradata、EMC、Pivotal等也都开始采用这些公司的Hadoop/Spark技术。
而国内,除了BAT、华为这样的巨头在大数据操作系统这个层次上布局,也有像星环科技这样的初创公司。值得一提的是,星环科技所推出的产品Transwarp Data Hub (TDH)就是一个典型的面向大数据的OS,包括了:高性能分布式分析型数据库Inceptor、流处理引擎Stream、NoSQL数据库Hyperbase、数据挖掘与机器学习产品Discover等子产品。
Transwarp Data Hub架构图
虽然此处有植入广告之嫌,但我始终认为TDH的出现和大数据操作系统的最终目的是一致的:就是能够让每一个普通用户都能拥有使用大数据的能力,而不仅仅是计算机方面的专家。想想你们安装Hadoop、配置Spark、写MapReduce程序时所经历的一切,就知道我在说什么了。
大数据云计算的时代,由于国内需求的复杂性、国家安全略、以及中国技术的突飞猛进,转换思路,完全有可能在系统软件上取得的突破。
5、云上的操作系统
俗话说,人算不如天算,天算不如云算。计算已经上了云,数据上云大势已定。
随着互联网和云计算的快速发展,操作系统面对的计算平台正在从单机平台和局域网平台向互联网和云计算平台转移。操作系统不仅需要提供网络支持能力,更重要的是,需要解决如何管理云上的庞大的计算资源和数据资源,如何更好地利用分布式的计算能力等诸多问题。
数据上云是目前大数据和云计算结合的一个重要趋势,特别是随着轻量级容器技术的发展。
容器技术演变路径
规模巨大的数据数量众多的用户,迫使越来越多的服务必须由处理节点分布在不同机器上的数据中心提供。想想在笔记本电脑上执行程序的时候,我们需要为每个程序指定执行CPU,指定可用的内存或缓存,幸好有操作系统在底层帮助进行这些复杂的资源管理。同样,数据中心在提供服务时,也会涉及到资源分配与管理问题。因此,为数据开发出高效可靠的云端操作系统必定是未来趋势。
近年来,云计算的不断发展带动着云端OS的逐渐成型。Container概念的出现解决了在虚拟机中运行Hadoop集群的I/O瓶颈;Docker技术简化了Container的应用部署;而Kubernetes更是方便了分布式集群应用在Container上的部署,并提供基础分布式服务;而同期诞生的Mesosphere则可以同时满足传统应用和大数据应用的快速部署和基础服务需求;最近火热的Rancher则像OpenStack之于虚拟机一样,成为一个管理能管理Container的全才,并将Hadoop/Spark这样的大数据组件纳入到自己的怀抱。
借助这些技术的帮助,目前涌现了很多面向大数据处理的云端OS的实现方案,例如Hadoop + Mesosphere,Kubernetes + Docker,Rancher + Hadoop/Spark等。
亚马逊的EMR、微软的Azure HDInsight、星环的TOS等产品也都在朝着云这个方向上走。最终谁能够在云计算这个复杂的环境中攻城拔寨,让我们拭目以待。但无论是谁,那条背后的铁律永远不变:在云上让每一个普通用户都能简单、方便的拥有使用大数据的能力。
6、上云的数据科学
最后再来介绍一个我们正在做的面向大数据教育的数据科学实践平台。我们给这个项目起了个名字:Parthenon,因为初看它长的是这样的:
Parthenon:数据科学与大数据实践平台
仔细再看看是这个样子:
Parthenon详细架构
其背后的思想就是:通过构建一个面向教学的大数据操作系统,让学员仅仅通过一个浏览器,就能够在上面方便获取各种开放数据,使用各种数据分析和处理工具,并完成各种数据科学的任务。而这一切全部都发生在云端。
学员可以在上面:
在线使用各种数据分析软件(Matlab、SPSS、SAS等);
在线使用各种数据编程语言;(SQL、R、Python等);
在线获取数据、可视化数据(Tableau等);
在线完成各种数据分析任务(机器学习模型、数据挖掘算法等);
在线大数据案例的学习;
在线大数据高性能分析的支持。
系统还在开发中,部分截图如下所示:
主页
在线SQL编程环境
在线使用Matlab
大数据可视化案例库
这样一个系统的开发难度还是比较大的,特别是在当下大数据技术还不成熟,各大数据厂商还在你争我夺的时候,里面的很多问题甚至都还是科研问题。但我们始终认为:随着大数据和数据科学的普及,构建一个简单方便的大数据学习环境,让没有专业计算机知识的同学也能在上面方便的进行各种数据训练、实践和竞技,是数据科学教育的必然发展道路。
在希腊首都雅典卫城坐落的古城堡中心,石灰岩的山岗上,耸峙着一座巍峨的建筑物,神庙矗立在卫城的最高点,这就是在世界艺术宝库中著名的帕特农神庙(Parthenon)。这座神庙承载了无数的智慧、体力、文明和历史,一并承载的还有我们关于数据科学的实践平台。
你对这样一个实践平台感兴趣吗?如果是,请多多支持我们,关注我们!我们会及时告诉大家我们的进度,并邀请你做为我们的第一批内测用户。
欢迎关注我们!
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-22 11:22
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社