第一百九十一章linux
林鸿在minix平台上重新编译的cqcq软件版本没有图形化界面,相当于是专门给有一定技术基础的用户而准备的,要想查询一些信息,必须使用命令进行查询。
他使用命令查看了一下在线列表,发现此刻竟然有三人在线,一个是他自己,另外一个是菲丽丝,还有一个cq号为10002的用户,昵称为露西。
看来,这个露西应该就是菲丽丝的姐妹了。
菲丽丝,改进后的版本感觉怎么样?
选择与菲丽丝通话,给她发了一条信息。
石头大叔,你上线啦?新版本比之前的要好太多了,太方便了!我的好姐妹露西也在用,并且我都没怎么教她,很快就上手了。
是吗?那太好了。另外,我已经在里面加入了文件共享功能,你可以试用一下。
看到了,我刚刚还给露西传了一个文件呢!我都用了这个软件这么久了,有什么变化,立刻就会知道。还有一个聊天室功能对吧?要不我开一个房间,我们三个人一起在里面聊天吧?
我现在有点事情,下次吧。你可以多找几个朋友来用用,如果他们有什么建议,你帮我都搜集起来,不管好的坏的都可以,回头一起发给我。
这个完全没有问题,现在的这个版本很容易使用,我相信她们会很愿意加入的!
那我先下了,还有点事情。
嗯!明天我会派人去接你,可别将这事给忘记了!
看到菲丽丝的反馈,林鸿心情也非常高兴。
自己做的东西,能够得到别人的认可,这种感觉的确不错。黑客们不断地探索着未知的世界,然后免费公布自己的成果,除了本身兴趣的内在动力,有很大因素就在于想得到别人的认可。
从某种角度来看,这也是一种虚荣心,只不过技术宅们比较含蓄,他们以这种独特的方式来满足自己内心的虚荣心,可能连他们自己都没有意识到这一点。
由于minix下还是没有自己的邮件客户端,林鸿并不能直接和linus进行联系,不得不将编写好的源代码和程序一起打包,拷贝到软盘当中。然后再切换到ms-dos系统下,使用email将cqcq的软件包一起发给了linus。
这样,他们联系起来就可以更方便了。
接着,林鸿便重新登录到cqcq上挂着,一边研究着minix的源代码,一边时不时地刷新一下在线列表。
菲丽丝发消息过来询问怎么又上了,邀请他一起加入聊天,林鸿只好进入菲丽丝创建的聊天室中聊了一会儿。
可以看得出来,那个露西的性格比菲丽丝还要更加活泼,一直旁敲侧推地询问林鸿的一些信息,问题显得非常露骨,对方完全将林鸿当做是菲丽丝的男朋友在问话,搞得林鸿难以招架,只能敷衍说着一些模棱两可的话。
再次看了一下在线人数之后,他的眼神不由一亮,因为看到线上突然出现了一个第四个在线成员,名为linus。
终于上了!
林鸿连忙和其他两个女孩说了一声,从聊天室中退了出来,然后主动和lus打了一声招呼。
stone:你好,linus,我是stone。
linus:你好,呵呵!你真是给了我一个惊喜,没想到我刚刚才将gcc发给你,你转身就在里面开发了一个即时通信程序!
stone:代码都是现成的,你知道,这并不是很难。
linus:在minix下直接和你对话的感觉真不错!stone,你给我的惊喜可不仅仅是这个。
linus:我还记得,在不久之前,你还是一个对计算机完全没有概念的火腿,而现在,你所掌握的技术和知识,已经和我差不多了。
stone:我要学习的东西还有很多。
linus:你还是那么谦虚!stone,这个cqcq软件,是不是宣布你愿意正式加入这个操作系统项目?
stone:当然!我已经完全喜欢上了这个系统,我喜欢这种了解一切的感觉!我决定在接下来的一段时间内,将你发过来的所有源代码都仔细阅读一遍。
linus:真是个不错的注意!伙计,我现在有一个新的计划,你知道,minix版权本身并不是完全开源的,作者对其还有所保留,所以我想重新重构这个操作系统的内核。
linus:你听说过gnu项目吗?
stone:gnu?是不是gcc诞生的操作环境?只在书籍上看到过,似乎是一个自由软件项目,但是具体情况并不是很了解。
linus:gnu是一个类unix的操作系统,由gnu计划推动,目标在于建立一个完全相容于unix的自由软件环境,也就是完全自由的操作系统。这个计划,最早是由理查德*斯托曼在1983年启动的,它是自由软件基金会最早致力的目标。
linus:虽然这些年来gnu虽然发展得不错,在上面出现了很多非常优秀的软件,但是它的重要组件,也就是操作系统的内核hurd却因为过于复杂一直紧张缓慢。
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!
……