技术开发 频道

Sun 郭朝峰:参与开发下一代操作系统

熊建国:
    下面有请Sun公司的郭朝峰先生给我们讲一下关于Sun公司的开源社区,包括(英文)情况。

郭朝峰:
    各位嘉宾、各位同仁大家下午好!

    很高兴有这个机会能在这里分享一下Sun公司近两年来在操作系统和开发工具这个领域做的一些努力,今天我讲的内容是关于我们这边操作系统的平台现在将这个平台的定义更加广泛化了,因为现在操作系统已经不像原始的,我们说的操作系统内核做的一些工作,原来说操作系统主要做内存管理等等的一些管理,今天的操作系统越来越成为一个提供上层服务的平台,操作系统本身也包含中间层的一些东西,在Sun公司这个操作系统当中体现更加明显一点,特别对开发人员提供了很多的工具和服务,来满足我们一些新的应用开发的灵便性和间断性,现在的各位有多少在(英文)或者是(英文)系统上做过开发的同事,还不少,今天更多的是跟(英文)相关的,它现在是比较大的一个分支,(英文)系统分两个分支,一个是(英文)分支,另外一个就是BSD分支,已经在商业领域当中变得比较少了,像几家大的IT提供商,像IBM他们也不再很大的投入做操作系统的研发,等于在这个层面上(英文)这个分支变得越来越少了。在另一个分支就是BSD,它分了很多家,现在BSD的分支,最大的问题就是分支太多了,如果当时只有一个BSD分支的话只有BSD,(英文)如果在五年之前开源的话,也没有(英文),这也是一个机缘巧合,(英文)它产生在60年代末80年代初,慢慢不断演变成今天很多原来BSD的ATX的开发人员慢慢转向(英文)的开发。

   Sun公司在2005年6月14号将这个操作系统正式开源,给各位开发人员来使用,在共享,其实在我们是在2005年1月份将(英文)的很多特性正式发布了,慢慢在2005年6月14号将整个操作系统开源,(英文)是从1982年、83年的时候开始开发的,到05年等于有24年开发的历史,这里面积累了好多的东西,可以看到OpenSolaris的代码它都是有(英文)发展的痕迹,它其中还吸收了(英文)很多东西,不知道大家有没有了解,为什么BSD还是学(英文),其实有一段历史是非常有意思的,今天如果你打一个(英文)的话,会有(英文)的,这个(英文)最早是由(英文)的一个开发人员开发出来的,他开发这个(英文)的程序,可以将原来你需要把整个BSD的源代码考回到本地,你要做一个增量,把你修改过的(英文)一下,你就可以做新的开发了,对一个社区来说是一个很大的,资源上的一个节省,所以整个来看,我们可以看到这个衍生的历史,其实有很多东西我们是在(英文)里面已经吸收了很多好的东西,今天我介绍的内容开发的角度,还有OpenSolaris社区里面有哪些特性,如果讲所有的特性可能要讲一天的时间,这里面只是针对一些相关的东西,主要分为几方面,第一从性能上面,第二从开发工具的观察性、利用性和调试性这方面,另外就是我们的可用性,可有性其实对系统管理来说是一个非常重要的特性。

    还有就是安全性,安全性上午沈院士也提到了,可信计算,安全性的技术,最后就是平台的选择。很多同仁就问,为什么我今天带这个笔记本?我带这个笔记本并不是因为我喜欢红色,是因为这是我们市面上买的第一台(英文)的笔记本,支持(英文)芯片的笔记本,它现在跑的是64位的操作系统,但是很多应用程序是32位的,首先看第一点,就是我们极端的性能,什么叫极端的性能,这个我们没法定义,但是我们有相关的数据,我们跟开发人员相关的性能这一块,也是跟我们IT行业发展的一个趋势相关的,第一点就是“多线程”的支持,大家都很关注今天的CPU是双核的,还是单核的,一个小小的CPU能够支持那么多的核,你可能会觉得这是以前没有考虑到的一个问题,但是你今天做开发的时候,可能今天你碰到了,但是明天你做开发的时候你的客户就会提要求,你怎么把这个性能,它的可伸缩性能够有一个很好的支持,这对操作系统来说也是一个很大的挑战。在这块Sun公司在这边有一些积累,因为我们是再芯片、系统出身的,对硬件这一块的关注是非常多的。

    我们现在已经是支持到芯片上一个小的芯片,支持到8个核,每个核上是4个县城,相当于32个CPU,这个有什么好处,今天上午听(英文)讲的时候,现在特别在服务器端的吞吐量在哪儿?你怎么处理由于IO的延迟导致的一个CPU的空转,是一个很大的浪费,怎么办?你很难从工艺上一天去改变的,然而你有别的办法,你去支持多核的,原来串行化处理的东西,你很难提高它的加速比定义,你这个并行化一个比例越大,你的加速比例越高,这对系统的性能来说,我可以通过多个核,或者多个线程来弥补IO的延迟,将整个系统的吞吐量就一个线程的提高,你怎么说你的系统是支持多性能的,最复杂的不是内核,大家都知道(英文)的操作系统里面用的(英文),是基于一个流机制,最早是从(英文)系统里面拷贝过来的,流机制,很简单,可以将这个处理开通到下一个处理里面,我可以将IP处理之后,我可以将(英文)发给(英文)处理模块,它的最大的好处就是灵活性,我增加一个模块,比如说我希望做一个防攻击的模块,我很容易加大流的队列源,但是它的问题在哪儿?你一旦是一个往下一个一个压处理的话,你这是一个单线程的,对网络性能来说是一个很大的影响,在(英文),将(英文)9做了一个很大的重新设计,将(英文)整个模块做了多线程处理,不是以前的形式,现在这两个模块是捆绑在一起的。

    从内核到网络处理,到我们今天的应用,很多应用像Java,整个操作系统从内核到每个协议上的处理,都是能够很好的支持多线程的处理,在CPU方面多线程肯定是一个趋势,大家可以看到(英文)的网站,它有一个叫(英文),它07年要支持四个,08年要支持多少核,大家可以看一下,软件产业很大程度上是受硬件产业的制约,当时我们Sun公司有一个工程师讲的好,你要做存储软件的话你要看看你的卡和磁盘是一个什么量级的,你再去设计你这个软件,硬件的发展趋势其实对软件行业是有很大的影响。对于性能这一块,在多性能这一块是能够做一个很大的性能的提升,当然另外还有一个非常重要的性能,就是动态跟踪技术,动态跟踪顾名思义它是一个动态的,动态怎么理解?动态的就是一个实时的,是一个可以用于实际的生产系统,而不是我的(英文)系统,或者开发系统,生产系统意味着就是说我可以在中国电信或者是我们工商银行的一个数据中心里面,我那台服务器把(英文)装上之后,我可以用(英文)脚本去动态跟踪这一个月来整个数据的通道,整个是一个什么情况,我都可以打开这个开关来观察的,(英文)是默认在操作系统里面的,你不需要修改你的源代码,你或者打开一个(英文)脚本,你就可以关注你想要的,(英文)里面大概有五万多个探帧,比如说如果是我们感冒,或者是得了一点小的风寒,可能到医院看大夫,大夫首先会问你大概是什么情况,他要是断定不下来,他会利用听诊器去听你的胸腔和腹腔大概是一个什么情况,他综合听到的数据,根据他的经验做一个判断,你是哪个地方出了问题,是感冒还是别的问题,(英文)也类似于这个概念,我在操作系统内核里面,内嵌了这个探帧,在每个入口和出口处就可以捕捉到这些数据,虚拟的一个空间里面的数据,这些数据可以实时的展现出来,你也可以做一个统计分析,为什么统计分析很有用?

    举一个例子,如果我去做实际的一个部署的时候,我不知道系统瓶颈在哪儿,如果我知道的话这个问题就解决一半了,有时候是因为你用系统的配置不对,举一个例子,像很多文件系统里面有最大缓存的设置等等都是可以调的,这些调的数据如果你不知道用哪个工具去观察的话,或者有的系统根本没有工具去观察的话你是很难去做的,(英文)最大的好处,它可以动态去捕获内核的数据,他可以看你这个设置的结果是什么样的,另一个设置是什么样的,你还可以做一个统计分析,你可以统计整个系统里面哪个函数是调用最多的,如果我找到调用前三名那几个函数的话,我就专门优化那三个函数,就可以把性能提高很多,在软件行业有一个不成文的二八定律,我20%的函数是占了整个80%的开销,如果我能够把这20%的开销找出来的话,我就可以省很多,(英文)就可以做很好的工作。你就可以去跟踪、统计、分析哪一个是系统的关键问题。

    另外(英文)它很类似于Java的一个东西,它可以站在前人的肩膀上,就是前人为你做了很多的铺垫。(英文)它有一个叫脚本语言D语言的东西,它非常简单,就是类似于C语言的格式,但是它增加了探帧的定义,每一个内核单元我都可以通过这个探帧来决定,刚才说的是性能和开发工具的可观察性方面,就是说我们有很大的提高。下面大家都知道现在虚拟技术非常的火热,从前年的HP推出他的虚拟平台,到去年IBM推出他的平台,Sun公司很早就有各个层面的虚拟技术,如果大家仔细看的话是分很多层面的,虚拟技术一说的话肯定是一个(英文),不是一个简单的一对一的方案,我们从左边的硬件,到硬件之上,操作系统之下,这个是操作系统内部,上面是应用程序层面的,各个层面的虚拟技术都有解决方案,在这一块其中重要的几个解决方案,这个我就不说了,因为这个很多服务器都支持。第二个就是现在非常火的,开放标准的支持,它事实上剑桥大学开发的一个用于心理学的一个新的标准,它最大的好处是什么?它可以同时在一台服务器或者一台机器上,它可以同时运行跟踪式安装128个操作系统,同时运行。同时运行的好处是什么?我可以利用各个操作系统的优势,比如说发现我们今天(英文)比较好看,我们可以用(英文)作为我们的前端好看,发现我们(英文)有几个驱动,可以用它作为硬件,所以说整个可以利用操作系统的优势,这个又是开放标准,整合一个很好的灵活的一个方案,这个其实是在虚拟技术里面是一个非常好的技术。如果大家有兴趣可以去这个网站上关注一下。

    还就是Solaris操作系统内核,它有很大的改变,它提供一个新的,我们叫Solaris的容器技术,就是(英文),它最早的时候是从BSD技术里面演变过来的,但是在上面做了很多的扩展,它最大的一个特点,我在同一个操作系统内,有三千多个操作系统的一个(英文),实际上它只占了10%,或者是1%的CPU,可以很好的对系统的资源利用来说是一个很好的方案,我们在这方面有一些实际的部署方案,以前是用(英文)做的服务器系统等等,是分布在11个服务器上,11个服务器就意味着我有11份系统扮演的工作,这是一个服务器,现在移植到两台服务器上,将整个系统原来每台服务器15%的利用率提升到现在80%多的利用率,对整个资源来说是一个很好的利用。另外对系统管理来说它用去看那么多台的机器,只需要登陆两台服务器就可以做整个系统的工作。另外一个分区的话,还有它的资源管理,资源管理是Solaris针对于不同的进程或者用户他可以指定相关资源的利用率,这是应用层面上的,我就不多介绍了。

   

0
相关文章