你知道什么是操作系统么?
 
你一定会说:开玩笑,我天天用的是什么,天天上51cto的人还能不知道什么是操作系统了么?
 
那现在请你给操作系统下一个定义吧,并讲讲操作系统的作用,记住,你一定要说出来,不要脑子里似是而非的随便想想。为了避免你看到后面的话,下面我留出一页空白
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
定义想好了吧,还是回忆不出来呢?很多人肯定只想的一一星半点的东西,但很难给出一个标准的定义。百度百科给的定义:
操作系统是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。基本差不多,和学校里面介绍的基本差不多。这个定义里面强调,他是一个系统软件的集合,注意了哦,不是一个软件,而是一组软件的集合。这组软件主要干什么呢?控制其他程序运行,管理系统资源,并为用户提供操作界面。
 
 
为什么这次重新将大家大学学的东西呢?因为今天,服务器虚拟化技术发展的今天,这个定义out了!(曹操,你过时了!)他并没有错,但是今天这个定义不确切了。
 
服务器虚拟化技术(我更倾向于叫操作系统虚拟化,这才是本质,服务器虚拟化是现象)是将os与底层硬件分离,实现“操作系统”不再依赖底层固定的硬件,实现服务器整合,迁移、灾备等多种功能。
 
为什么能这么实现呢?其实它就是把操作系统中的一种功能,或者实现这种功能的程序独立出来了,即管理系统资源(更确切的是屏蔽底层硬件细节,统一进行硬件资源管理)。这种独立给传统的“操作系统”带来了灵活性与独立性,所以也不会与底层硬件紧耦合在一起,才能实现今天我们讲的迁移,灾备等等功能。
 
由于要实现这些独立,所以才要求“传统操作系统”将原来对硬件调用的能力“交”出来,所以才会出现半虚拟化的Xen内核以及硬件支持的虚拟化的Intel-vt和AMD-v技术。而这也是为什么我们所有的os虚拟化在系统安装之后,需要用各种各样的tools安装到“操作系统”中,替换里面的外设驱动,其实这也就是“杯酒释兵权的IT版”,从而能够真正意义地实现资源的调配,提高工作效率,(要么只能采用欺骗的技术来实现资源调配)。
 
而失去了硬件统一管理和调配能力的操作系统,只剩下2个功能,管理应用的运行,以及构建用户使用环境,在这个时候,前面提到的操作系统定义就不准确了。那么到底谁应该叫操作系统呢?vmware的sphere就称自己是第一款”云操作系统“,微软当然不愿意说自己的产品不是操作系统了。我们可以预料未来操作系统的定义将会发生巨大的改变。
 
所以hypervisor为什么会如此引人瞩目,虚拟化为什么如此被关注,因为这很可能成为继操作系统、数据库、应用服务器之后的第四大系统软件(尽管是从os中分离出来的)操作系统成就了ms,数据库成就了oracle,应用服务器成就了IBM软件和BEA,那么hypervisor会成就谁?
 
回头看剩下的2个功能,应用运行环境与用户操作环境。Citrix的应用虚拟化和微软传统的terminal service本身就一定程度上抽取了应用运行环境的功能,而Citrix XenApp中的streaming(推送功能)与微软 App-v和vm的thin-app实现的同样功能,其实进一步将应用运行环境抽离了出来。前些时间看到Altris(好像这么写)有一个软件,直接就从操作系统中接管了整个程序的安装,运行,完全将应用剥离。看来操作系统的三兄弟,分家之日也指日可待了。
 
大家都曾经以为定性的操作系统已经逐步分解,进化。未来有更进一步独立的趋势,未来的是否还有操作系统这种软件也不好说了,或许真的会成为恐龙,留在微软手里的会不会就只剩下用户体验(用户环境)了呢?当然这个是软件最具有粘性的东西。
 
现在各位,你觉得你真的懂什么是操作系统么?
 
呵呵,希望这篇拙文对大家的在思考有帮助,如果你想更深刻的理解操作系统的技术发展和内在深邃的思想,另外听说Xen社区的创始人,也是英国牛津大学国王学院院士,将会来中国,据说参加在上海11月19-20一个Xen Sumit会议,有兴趣的大家可以去看看,听听这位佛祖级别的人物给大家讲讲操作系统到底是什么啊。这好像是虚拟化方面第一位来中国的外国佛祖吧。。。。。。
 
刚找到的报名地址:http://xen.linuxpk.com/