第119部分(第2/4 页)
起来就快了。
所以,在午夜十二点之前,他就完成了总共二十多个系统调用,即将当初linus移植到minix里面的所有功能都给搞定了。
他登上cqcq,看到linus正好也在线,于是便发了个消息给他,然后将源代码直接在线传给了对方。
【linus:伙计,你的效率真快,移植了bash,以后的编写工作会要大大加速了!】
【stone:下一步是不是可以将gcc移植过来?这样我们可以不用再切换到minix的环境中编译系统了,直接在linux平台下编译。】
【linus:我这两天本来正打算着手做这件事,但是现在我有一个新的想法。】
【stone:说来听听。】
【linus:我觉得我们应该另外实现一个文件系统,而不是直接使用minix的文件系统。】
在此之前,为了降低编写代码的难度,linus从minix中借鉴了很多代码,其中最为完整的就是文件系统的实现。
【linus:minix的文件系统是专门为微内核设计的,当初在设计的时候也只考虑过教学用途,目的是为了更好的让学生理解,根本无法真正用在大型操作系统上,在性能上有着致命的缺陷,我想你也应该发现了这点。】
林鸿对此表示赞同。
minix系统在文件处理方面的效率的确有些慢了,刚开始的时候还感觉不到,但是在他编译系统的时候,就极其明显了,文件一多,搜索查找以及读取文件的效率就变得极为缓慢。在这点上,还比不上dos系统。
minix的文件系统是模仿unix的文件系统而设计的,其数据结构整体上和unix文件系统大致相同,大致也可分为引导块、超块、柱面、节点等。
但是作者安德鲁这个系统本身是用来作为教学用的,所以在设计的时候,就考虑到要让学生能够比较容易理解,将其中的一些复杂实现就省略了,只保留了其骨架,进行适当修改之后,能够让其正常运转,并没有经过大量文件存储方面的性能测试。
当磁盘中文件比较少的时候,根本感觉不到其中的差异。
但是,linus在编写linux操作系统的时候,代码虽然不是很多,也就一万两千行左右,但是这一万两千行代码并不是只在一个文件里面,而是分布在多大几十个文件和上十个目录当中。…;在编译系统的时候,编译器会按照编译索引文件maefile来按照顺序对这些源代码一个一个地查找,并链接起来,然后再统一进行编译。
按理说来,只有这么点文件,这个过程应该是非常快的,但是事实证明,要想将linux的0。00版本编译出来,都至少要花费四十分钟的时间。
当初林鸿一直pzip那么一个小软件的时候,都花费了十分钟左右的时间。
这样的效率实在太低了,要是在unix或者dos下,所花费的时间可能只有五分之一甚至十分之一。
linus于是便开始寻找到底哪里出现问题,为什么会导致编译速度如此缓慢。
最终他发现,原来这是minix文件系统设计方面的原因,他觉得有必要对这点进行改变了,他可不想将这样一个文件系统移植到linux里面,那简直就像是在美餐一顿的时候吃了一只苍蝇那么恶心。
身为技术宅linus是绝对不允许这样的情况出现在linux中的。
林鸿也觉得这个问题的确很重要,文件系统是操作系统的基石,如果地基不打好,会直接影响到上层建筑的高度。
【linus:我最近这段时间都在想这个问题,接下来会正是着手开始设计了。不过在此之前,我会先解决一件更为重要的事情。】
【stone:更为重要的事情?】
【linus:每一个男人都要经历过的事情啊,你懂的,哈哈!】
【stone:不懂。】
【linus:……差点忘记你的年龄似乎比我要小不少了。我要去追求一位心仪的女孩,这该懂了吧?】
林鸿看到linus的话,顿时有些汗颜。他刚刚的确没有反应过来,这也不能怪他,刚刚他们还在讨论技术方面的问题,突然之间就跳跃到追求女孩的话题上,作为一个世纪年龄才十四岁的中国籍技术宅来说,能想到这个问题才怪。
【stone:原来如此。那预祝你马到成功
本章未完,点击下一页继续。