【linus:我上周去参加了一个自由软件提倡者的演讲,觉得他们所提倡的gpl协议非常有意思,我的一个朋友也强烈建议我加入gnu自由软件的阵营……】
接着,linus详细给林鸿解说了一下开源协议gpl(gnu通用公共许可证)的详细内容,并且咨询林鸿的意见。
【stone:你是说想做一个任何人都可以免费下载并安装使用的艹作系统吗?】
【linus:是的。虽然minix也非常不错,但是这只能免费用于教育领域,你知道,当初我为了购买这套系统,可是花了不少钱和时间。】
linus至今还对那个经历耿耿于怀,他可是等了至少一个月的时间,花费了一百多美元才最终将minix安装在自己的计算机上。
而市场上其他系统,都是商业系统,要想使用,必须付出不小的费用进行购买。
为全世界所有的技术爱好者编写一个完全可以免费使用,但是功能又非常强大的艹作系统,这真是一个野心勃勃的想法,不过这非常酷,不是吗?
林鸿对此自然能是表示强烈支持。
于是,他和linus在cqcq软件上讨论了一下重新设计新的艹作系统的一些细节。
在这方面,linus比林鸿要更有经验,因为他在这一块已经研究了很久了,再加上有minix的参考经验,所以基本上都是他在给林鸿讲述基本概念。
minix的内核采用的是微内核结构设计。
微内核结构由一个非常简单的硬件抽象层和一组比较关键的指令或系统调用组成。这些指令,仅仅包括了创建一个系统必需的几个部分,如线程管理,地址空间和进程间通信等。
简单的说,就是内核非常小。这种设计思想的目的,是为了将系统服务和系统的基本艹作完全分离出来,将他们之间的关系淡化到最低程度。
例如文件系统在微内核中也是作为一个进程,崩溃了也没有关系,再像其他软件一样重启一下就好了。
minix的作者塔能鲍姆本身就是一个艹作系统设计方面的教授,在设计这个系统的时候就吸收了当时最先进的设计思想,微内核就是一种比较先进的内核结构。
但是linus似乎并不喜欢这个设计,他认为把很多系统结构和艹作全部作为组建存在于内核之外,会导致安全姓方面的漏洞,很容易受到攻击。另外,微内核内部过于简单,其进程管理和中断管理的能力也非常有限,相对于minix这样简单的玩具来说,的确可以满足要求,但是如果想要实现更加复杂的系统功能,就有点有心无力的感觉。
微内核结构,更适合单片机系统,这样的系统甚至连文件管理系统都不需要,而且已经配置比较低,内核自然越小越好。
与微内核相对应的结构,就是宏内核。
ms-dos使用的就是宏内核架构,这个架构分为内核空间和用户空间。
内核将硬件结构封装起来,形成比较高级的虚拟接口,供用户空间的程序进行调用。
【linus:我比较倾向于使用宏内核架构,这样艹作系统中的程序代码都是高度紧密结合在一起的,虽然可能会出现某个模块有bug而导致整个系统崩溃,但是如果经过精心设计和改善,这样的问题是可以完全避免的。】
【linus:更重要的是,这样的内核会让艹作系统的代码在硬件的运行效率更高,安全姓也更强。】
林鸿听他这么一说,也觉得有一定的道理。
其实在他看来,既然已经有案例证明两种架构都是可行的,使用哪种内核都无所谓,关键看怎么去实现它。
因为刚开始的时候,这个项目是从minix开始启动的,可能linus是想要彻底拜托minix笼罩的阴影,想要从根本架构上将重新设计的系统和minix区分开来。
【stone:那么,给这个系统取一个名字吧。】
【linus:我早就想好了,freax,来自英文单词freak,有“异想天开”的意思,你觉得怎么样?】
【stone:听上去不错。末尾改为x是像minix那样沿袭unix的习惯?】
【linus:是啊,x的发音听起来更酷,不是吗?】
【stone:要不,干脆叫linux吧,就是你的名字的后一位字母改为x。我觉得这个名字比freax更好一点。】
【linus:这样不好吧,太以个人为中心了。】
【stone:我觉得这不错啊,这只是一个代号。再说,这个项目本来就是你发起的,就用这个吧,“利纳克斯”,读起来也挺顺口的。】
【linus:ok,听你的,就叫linux!】
(未完待续)