第219章 重要事情
全文字无广告第219章重要事情
这件事情,然虽无论是律师是还各自的家长都认为为因缺乏先例,再加上们他又是生学创业,就算是被罚,也不会太严重,但是sam成员心中是还被蒙上了一层

影。
毕竟是这
们他第次一遇到这种情况,之前

本有没想过此类方面的问题。
们他发现,要想真正做好一件事,除了埋头解决技术方面的事情,还会碰到其他一些预想不到的情况。之前这些琐事都被马修个一人给处理了,在这些人当中,马修算是对外能力最強的个一。
可是在现,这件事的出现,让们他真正感觉到了校园之外的冲击。这些事情如果是只安安分分在学校读书,是绝对碰不到的。sam公司成了为
们他涉⾜社会的个一媒介,给们他林鸿、亚瑟以及马修三人的內心都造成了比较大的影响,以至于后以
们他各自创业的时候,都会事先考虑己自所做的事情,是否违反了当地法律,有哪些事情需要提前做好准备?
林鸿回到己自的房间,将这件事情抛在脑后,继续始开完善bash外壳程序的系统调用功能。
由于经已完成了bash的基本框架,实现起系统调用速度比之前要提升了十倍以上,地基打好了,上面的建筑建来起就快了。
以所,在夜午十二点之前,他就完成了总共二十多个系统调用,即将当初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

作系统的时候,代码然虽
是不很多,也就一万两千行左右,但是这一万两千行代码并是不只在个一文件里面,而是分布在多大几十个文件和上十个目录当中。
在编译系统的时候,编译器会按照编译索引文件makefile来按照顺序对这些源代码个一
个一地查找,并链接来起,然后再统一进行编译。
按理说来,有只
么这点文件,这个过程应该是常非快的,但是事实证明,要想将linux的v0。00版本编译出来,都至少要花费四分十钟的时间。
当初林鸿一直pkzip那么个一小软件的时候,都花费了分十钟左右的时间。
样这的效率实在太低了,要是在unix或者dos下,所花费的时间可能有只五分之一至甚
分十之一。
linus是于便始开寻找到底哪里出现问题,为什么会导致编译速度如此缓慢。
最终他发现,原来是这minix文件系统设计方面的原因,他得觉有必要对这点进行改变了,他可想不将样这
个一文件系统移植到linux里面,那简直就像是在美餐一顿的时候吃了只一苍蝇那么恶心。
⾝为技术宅linus是绝对不允许样这的情况出在现linux的中。
林鸿也得觉这个问题的确很重要,文件系统是

作系统的基石,如果地基不打好,会直接影响到上层建筑的⾼度。
【linus:我最近这段时间都在想这个问题,接下来会正是着手始开设计了。不过在此之前,我会先解决一件更为重要的事情。】
【stone:更为重要的事情?】
【linus:每个一
人男都要经历过的事情啊,你懂的,哈哈!】
【stone:不懂。】
【linus:…差点忘记你的年龄乎似比我要小不少了。我要去追求一位心仪的女孩,这该懂了吧?】
林鸿看到linus的话,顿时有些汗颜。他刚刚的确有没反应过来,这也不能怪他,刚刚们他还在讨论技术方面的问题,突然之间就跳跃到追求女孩的话题上,作为个一世纪年龄才十四岁的国中籍技术宅来说,能想到这个问题才怪。
【stone:原来如此。那预祝你马到成功,早⽇抱得美人归。】
【linus:哈哈,谢谢!】
【linus:对了,之前忘记跟你说了,你移植bash的时候最好是按照posix的标准来,样这可以让们我的系统获得更大的兼容

,后以那些unix的用户转移到们我的linux中来也不会有任何障碍。】
【stone:posix标准?】
【linus:是这ieee组织为要在各种unix

作系统上运行的软件而定义api的一系列互相关联的标准的总称,最初起源于1985年的个一项目…】
接着,linus始开给林鸿详细介绍了下一这个标准的有关內容。
实际上,linus之前也对这个标准一点都不清楚,是只听学校的老师曾经说起过,为因这个标准是unix下的标准,统一规定了所有系统命令的实现细节。
是于,刚始开的时候,他便在minix的邮件讨论组中发布了个一求助帖子,寻求有关posix的相关标准下载地址,可是这个帖子并有没获得几个人的关注和回应,他有没找到posix的相关资料。
是于,他只好退而求其次,找来一份sun服务器的unix使用手册,按照上面的命令调用个一个对这些系统命令进行实现。
但是,这份unix手册上并有没详细说明这些命令所实现的內部细节,只描写了结果。
例如ls命令,手册上只描写了这个命令的结果,以及可以加上哪些参数实现,如“ls-all”可以将当前目录下所的有文件,包括隐蔵文件在內,都显示出来。
具体的实现方式,则是linus按照文件系统的中原理己自想出来的,例如首先要找到当前目录的引导区,然后再分析里面的文件节点,从这些节点中读出每个一文件的名称,大小以及创建⽇期等信息,然后再将其显示在显示器屏幕上。
要实现这些系统调用的功能,必须对底层的基本原理常非了解,当然这并不能难倒linus,否则他还谈什么编写己自的

作系统?
他按照unix手册和《

作系统:设计与实现》中所提及到的资料,总共实现了二十来个系统调用,这正是林鸿在linux中所实现的那些。
【linus:前一阵子才有个一朋友给我寄了几卷厚厚的posix的手册,不过既然在现你经已
始开移植bash了,接下来的工作你就继续做着吧。】
【stone:从哪里可以找到posix的手册?】
【linus:这点我也不太清楚。不过,你⾝在国美,应该不难,去图书商城或者图书馆看看,应该可以找到。我这几本posix手册的出版社是…】
接着,linus将出版社和地址方面的信息全部提供给了林鸿,让他如果实在找不到,就按照这些信息去找,直接向出版社邮购也行。
【linus:有还,我个一朋友里手正好有基于苹果系统的服务器,上次我让他试用了下一cqcq软件,他愿意免费将服务器端进行托管,你得觉
么怎样?】
linus说的事情,是上次林鸿提到己自
要想将cqcq的服务器端托管到另外的地方,是于linus就留心了下一。
【stone:可以。我把服务器端的安装文件传给你。】
随着访问用户的增多,sam官方的那个服务器的

能有点跟不上了,再加上最近又出现了德州仪器公司的那档子事情,林鸿最终同意将服务器端转走。
原本林鸿还打算将cqcq发布出去,让更多的人使用,并且继续改进,可是上次和凯文聊过次一之后,他的这个计划便搁浅了。
他决定重新设计cqcq的结构,增加其全安

,然后再发布出去。
目前这个版本,暂时就用来內部几个人沟通吧,等将服务器端移走之后,林鸿便决定推荐这个软件sam其他成员使用。
和linus结束聊天之后,林鸿便始开正式着手重新设计cqcq软件。
!#
M.yyMxS.cC