“不知道是什么样的操作系统?”托瓦兹推了推眼睛,问道。这方面他可以说是专家级的。
“一个混合式构架的操作系统!”这时推门走进一个亚裔的青年,他笑着说道。然后他伸手和托瓦兹握了一下,坐下后,继续道:“我叫周昌,你可以喊周。我现在负责这个操作系统的研发。”
袁明元旦一过完就过来了,成立了分公司,招聘的人员,直到今天和托瓦兹见面。他看着这个青涩瘦小的大男孩,谁又能想到未来能和威阮抗衡的操作系统之父,就是这个邋里邋遢的男孩?
“混合式架构?”托瓦兹疑惑的皱着眉头,道:“我只听过单内核和微内核,还没听过有混合式架构的?”
袁明笑着解释道:“这是我们公司自行设计的一种架构思想。”混合架构,也可以叫做混合内核,是后世才发展起来的一种集单内核和微内核两种架构之长的操作系统内核。大名鼎鼎的MAKOS就是采用混合内核的,后来威阮的Win也改用了这一架构。当然他们现在都还不是,萍果现在是微内核架构,威阮是单内核架构。
混合内核的基本设计理念,是以微内核架构来设计操作系统内核,但在实现上则采用单内核的作法。混合内核实质上是微内核,只不过它让一些微核结构运行在用户空间的代码运行在核心空间,这样让核心的运行效率更高些。这是一种妥协做法,是因为微内核架构虽然在扩展性、稳定性上更胜一筹,但消耗了更多系统时间,在运行速度上比不上单内核的架构。
袁明早于历史10多年提出这种架构思想,不但让自行研发的新操作系统少走了很多弯路,又可以让操作系统的性能更强!
当袁明为托瓦兹解释了什么是混合式架构后,托瓦兹思考了一下后,惊讶的问道:“这不是一种单内核的变种吗?”
袁明笑着点点头道:“确实是的,只是我们更喜欢称它为微内核的变种。当然两种讲法其实都差不多,不过看大家的倾向而已。”
托瓦兹见袁明没有反对他的话,心中不由很满意,他对单内核架构很执着,因为他是个实用主义者,考虑的更多是系统如何更快,以及让CPU的性能充分发挥。从某些方面来说,这样的作法是正确的。
在八、九十年代,CPU的速度不高,内存的很小,所以并行多任务的需求很少,大多数计算机操作系统都是分时多任务系统。这样的系统,因为运行的任务少,所以即使因为故障挂掉了,重新跑一边就好了。因为不需要考虑故障对操作系统核心的影响,所以那个时代单内核成为了主流。
而当CPU速度越来越快,内存越来越大,甚至一台计算机可以有多个CPU时,服务器随著作业量的增加和可靠性要求的增高,单内核的操作系统就很吃亏了,因为任何一个小小的系统故障都会导致系统宕机,这才有了混合内核的诞生。
袁明见托瓦兹没有反驳,不由送了一口气,果然托瓦兹是个单内核控,幸好没刺激到他。
“我们准备按照一个月500米刀支付你的薪水,不知道你愿意接这个任务吗?”袁明问道。
“愿意!愿意!”托瓦兹心里太愿意了,上午他还在为差几百米刀而苦恼,结果中午就有人支付薪水请他干活,他怎么能不愿意?
“那好,后面的事情都由伊芙娜负责,你后面和她联系就好。”袁明心情愉快地走了。
伊芙娜笑着对托瓦兹说:“我们准备为你了一间办公室,另外还有十几个计算机高手,协助你完成开发。而我是这个项目的负责人,后面还需要托瓦兹先生多多协助。”袁明当初招伊芙娜进来只有一件事情,就是保持和托瓦兹的接触,让他顺利进入项目组,然后完成开发任务。伊芙娜也知道老板对这件事看得很重,所以对待托瓦兹非常谨慎小心,生怕得罪了他,她就完不成任务。
托瓦兹对于有美女陪伴,还有高手帮忙的事情,非常满意!上哪里找这样的好事情啊!所以后面他就利用课余时间过来,开始了操作系统的研发。
说实话,虽然有十几个帮手,但他们更多是开发外围程序,而混合内核的开发只能由托瓦兹自己独力完成。独自开发操作系统内核的日子其实十分单调。托瓦兹每天24小时是这样度过的:编程——睡觉——编程——吃椒盐卷饼或洗澡(随便冲冲了事)——睡觉——编程。
好在有美女相伴,他并不感觉枯燥。相反,由于伊芙娜的存在,他爆发出了前所未有的激情。他基本上吃喝都在公司,连宿舍和家都很少回。由于他的大学就在家门口,以往他都是隔一段时间就要回家的。现在他回家很少,即使回去了,也是埋头写代码,对外面的事情漠不关心。
见他如此沉迷,引来了父母的担忧。父亲尼奇忧心忡忡地对母亲米奇说:“赶紧让他去外面玩玩吧。”米奇担心的则是另一回事:“像他这副(整天宅着不出门的)德性,以后还怎么去结识好女孩儿啊?”
在父母为儿子操心时,黑客儿子也为正在开发的系统操碎了心。
由于和作为参考的Minix操作系统架构不太一样,他要从原来单层结构里,再插入一层BSD层,用于跑用户进程。开始他的做法是直接让微内核的直接调度BSD层的进程,结果发现又回到了单内核的老路上,和混合内核的思想严重冲突。所以他研究了很久,在调度之上增加了进程和线程的抽象,是对BSD层的进程和线程的更高层次抽象。BSD层的进程和线程比核心层包含更多的信息,支持更多的特性,核心层的进程和线程并不能满足操作系统的高级需求,通过BSD层提供了更为丰富且标准化的API。
当然,托瓦兹只负责定义接口和标准,其他API的丰富都交给了团队成员。
开发到文件系统驱动环节时,由于感觉太费劲,托瓦兹差点放弃。但每当他看到伊芙娜那绝美的容颜,不知道为何他又斗志昂扬起来。
为了写操作系统,他放弃了那可有可无的派对,放弃了社交,甚至有时候写到兴头上,连上课也放弃了。
1988年11月,当地球那一边传来老乔治当选米国总统的消息时,托瓦兹和整个团队已经完成了新操作系统的全部开发和测试。历时10个月,核心代码1MB,整个操作系统有20MB大小。完全兼容POSIX1.0标准,意味着可以通过模拟器运行DOS、Windows程序,支持多用户多任务,同时具备字符界面和图形界面。这是历史上第一多用户多任务、分页磁盘缓存的操作系统。由于当时的电脑内存有限,如果运行的程序大于内存,很容易导致电脑崩溃,分页到磁盘的功能,可以很好地解决了这个问题。
更重要的是,由于这个新操作系统支持多种平台,可以安装在各种计算机硬件设备中,比如未来的手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。在跨平台适应性上,甩了威阮的Win好几条街,这也为未来袁明的移动操作系统崛起奠定了基础。
当袁明知道这个消息后,很快飞来了芬兰,托瓦兹为袁明演示了操作系统的各项功能,甚至还演示了自己写的一个简单图形界面。袁明对此赞不绝口,他已经在米国为图形界面申请专利了,当然要绕过萍果公司的专利,他申请的是十多年后的那种多任务多窗口的图形界面,所以他不担心以后萍果公司会告他侵权,相反的,未来只要威阮和萍果公司想要发展,就绕不过他的那些专利!
托瓦兹让袁明给操作系统起一个名字,袁明想都没想就说:“就叫它MinOS吧!”因为这个操作系统参考的是Minix操作系统,所以袁明保留的Min,但日后袁明希望这个操作系统可以是横跨PC和移动端的强大操作系统,所以直接命名它OS!另一方面,袁明的明,在鹰文中可以成为min,这也代表这他的一点小小的私心。
最终,袁明告诉托瓦兹,这个操作系统将分成两个版本,一个是私有版,用于商业用途,一些公司的私秘功能将在这个版本上开发;另一个是社区版,在删除公司机密之后,这个操作系统将开源到GNU社区,作为GNU可用的开源操作系统。这一下,可把托瓦兹高兴坏了,他对金钱其实没多大兴趣,只是装X的事情乐此不疲,这样一个长脸的事情,他当然愿意了。所以他当即就把社区版的维护工作给包揽下来了,还为社区版起了一个好听的名字叫“Linux”!