笔下文学

字:
关灯 护眼
笔下文学 > 电子生涯 > 第贰拾贰章 重组 (上)

第贰拾贰章 重组 (上)

第贰拾贰章 重组 (上) (第1/2页)

“原来是这么写的呀!”奥尔森不高兴的说,“你当时如果说一下拼写,我就不会弄错了!”
  
  “可是也没见你问啊!”范含说,“我以为你早就知道了呢。”
  
  “我怎么会知道?”奥尔森说,“明明是你生造出来的词。”
  
  “确实是生造的,”范含承认,“不过这个发音很标准,完全符合发音规则,直接拼就能写出来。”
  
  “如果没有同音词的话。”奥尔森强调,“既然你没有主动拼写,我当然会以为就是英语里面已经有的词。”
  
  “也对……平时说话确实不需要拼读。”范含说,“实际上我在看到文件的时候才去翻字典查这个‘Eunuch’,以前还从来没遇到过。”
  
  “我猜也是这样,”奥尔森说,“现在你该解释一下为什么要造这个词了,文件里面相应的部分都要修改。”
  
  “呵呵……真是不好意思,”范含大笑,“真没想到你的人居然会想出那么多借口来阐述命名为这个‘Eunuch’的重要意义。”
  
  “你还有脸笑!”奥尔森说第一个单词的时候口气还有点儿不高兴,到了最后也忍不住笑出声来。
  
  “不笑了不笑了,”范含板起脸,问,“你知道‘Unique’的意思吧?”
  
  “知道,就是OnlyOne。”奥尔森回答。
  
  “和这个有点关系,”范含开始瞎编,“最初我想好的名字是叫‘Unix86’的,对,后面跟两个阿拉伯数字,一个八一个六。”
  
  “什么意思?”奥尔森问。
  
  “就是运行在x86体系上面的Unix。”范含说。
  
  “什么是x86?”奥尔森又问。
  
  “就是咱们的这个处理器架构呀?!”范含回答,“以后会慢慢形成一整套处理器系列的。”
  
  “为什么非得叫x86?”奥尔森继续问。
  
  “呃……”范含轻轻抽了自己一耳光,又说漏了,不过还是强打精神圆谎,“实际上,呃,我是先想好‘Unix86’这个名字,呃,再给拆成‘Unix’和‘x86’两部分的。”
  
  “怎么那话又绕回来了!”奥尔森说,“你就直截了当的说,‘Unix86’到底是什么意思?!”
  
  “当然就是‘八荒六合唯我独尊’的意思了。”范含总算有急智,找着一辙,“这个‘8’就是‘八荒’,‘6’就是‘六合’……我记得教过你这个成语吧?”
  
  “教过,”奥尔森说,“上次我还用过呢。”
  
  “呼……这就好办了。”范含长出一口气,“这个操作系统呢,应该是高度可移植的,所以就去掉了后面表示硬件体系的‘86’,只叫‘Unix’了。”
  
  “真的么?”奥尔森还是有点怀疑。
  
  “真的,”范含特诚恳的回答,“你看我什么时候撒过谎?”
  
  “嗯……这个名字的事就这么算了。”奥尔森说,“操作系统算是有了,你该考虑那一堆杀手级应用了。”
  
  “怎么?不是VAX才需要么?”范含奇怪,“现在这样的机器就是做出来也不能算‘杀手’。”
  
  “可是如果不做,VAX项目根本不会上马。”奥尔森解释,“现在就启动VAX项目,对DEC来说是一场赌博。虽然我是百分之百相信你,但是其他人,至少要看见一点苗头,才肯同意。”
  
  “好吧,那我就接着搓神灯吧。”范含答应下来,“不过首先得花几天工夫琢磨一下用户需要什么。”
  
  “你怎么不想想这些‘太监们’能干什么?”奥尔森问。
  
  “用得着么?”范含口气坚定地反问,“除了硬件限制,还有什么是这个系统干不了的么?”
  
  “唔……这倒是。这个系统的设计确实很灵活。”奥尔森承认,“是有那么一点‘八荒六合唯我独尊’的架势……这个成语我用得没错吧?”
  
  “没错,”范含说,“我再教你一个。”
  
  “哪个?”
  
  “千秋万载,一统江湖!”
  
  -------
  
  奥尔森正催着手下人写内核,根据协议,在法律上这些人都算做是FOR临时雇佣,这也是当初就商量好的,免得到后来在源代码的版权上纠扯不清。
  
  考虑当前条件,太过分的要求范含也没提,只要能勉强实现“协作式多任务”就行。
  
  实际上这个系统有点像最初的苹果MacOS,每个进程启动的时候都向内核申请一块固定大小的内存,申请失败就不能运行。反之,申请成功的话,内核就允许其“三规”:在规定时间到规定地点完成规定动作。
  
  这样一来,大部分内存管理的工作就都由应用程序自己负责,在自己那一亩三分地上面怎么折腾都行,就是不能越界,否则杀无赦……其实内核只要能做到这一点就肯定已经比DOS强得多了。
  
  所以,这个内核的内存管理模块相当简单,只要把主内存当作一个堆,能维护好就的了。
  
  进程调度也不复杂,除了Shell之外,别的进程都扔进唯一的一个循环队列里面,轮流执行。这种“协作式多任务”的特点就在于要求所有的进程都不能有“人品问题”,即“占着茅坑不拉屎”。只要暂时用不着CPU,就必须主动引退,让其他进程执行。
  
  在前一阵子指挥员工写那堆工具的时候,有个意外的惊喜。
  
  范含发现,对于如何编写“举止良好”的代码这一点上,根本用不着谆谆教导。现在的程序员一个个觉悟都挺高,主动“勤俭持家”,恨不得一个时钟周期分两回用。看来没什么好操心的了。
  
  文件系统这回也打算实现,因为机器的标准配置方案里面有了可以随机访问的外存。
  
  几个月前刚拿内存技术从IBM那里换来了磁盘技术,现在第一批温彻斯特硬盘刚出厂,容量256KB……对,是“K”,不是“M”,也不是“G”……确实惨了点。
  
  这一部分设计的时候是范含亲自操刀,主要参考了Minix文件系统1.0版,用来应付“极低端”配置还是可以的。不过,感觉比较奢侈的地方仍有很多,这些就只能自己动手丰衣足食了。
  
  磁盘还是照猫画虎的分成引导块、超级块、i节点块、文件信息块和数据块,这些没有必要改。不过文件信息不需要那么多,于是尽可能的精简了一些。
  
  由于是单用户,所有者的用户标识和组标识当然是没必要了,链接数也不需要,因为现在还不打算支持符号链接……都去掉。
  
  另外,文件权限也只需要记载所有者自己的“可读”、“可写”、“可执行”权限就成了,“rwx”只用一组,三位。真正的Unix上面则需要三组,每个文件除了主人自己的权限之外,还要记录工作组内其他用户和全体用户的权限。
  
  文件类型也省略了不少,除了标记是普通文件还是目录,还增加了两种设备文件的标记:“字符设备”和“块设备”。其他的如“符号链接”、“命名管道”和“套接字”,既然暂时用不到,那就不管。
  
  这两部分一共用了一个字节。
  
  长度用两个字节表示,单个文件最大不能超过64k。就现在而言,作为权宜之计,还是比较恰当的。毕竟目前一个硬盘也只能放下四个这种文件而已。
  
  文件占用的磁盘扇区的数量,用一个字节表示。本来这个数量应该按照“块”而不是扇区来统计,一个块可以包含多个扇区。不过现在的磁盘空间没有可供浪费的余地,每个扇区就算一块了。后来PC时代的硬盘一个扇区都是512字节,而现在只能做到256B。
  
  还有一部分应该用来记录文件所占据的所有磁盘块,这个稍微费点劲。
  
  在Minix上面,用了九个元素的短整型数组,前面七个是直接索引,如果文件大小在7k以下,可以快速的直接访问。第八个是一次间接索引,其指向的块记录了其他块的索引;第九个是二次间接索引,顾名思义,就是记录了指向其他记录了指向其他块的索引的索引。
  
  现在用不着这么烦,范含考虑再三,决定只用两个一次间接索引,两个256字节的块,刚好可以储存256个索引用来指向256个数据块,毕竟最大的文件也只需要256块就够了。
  
  

(本章未完,请点击下一页继续阅读)
『加入书签,方便阅读』
热门推荐
极品全能学生 凌天战尊 御用兵王 帝霸 开局奖励一亿条命 大融合系统 冷情帝少,轻轻亲 妖龙古帝 宠妃难为:皇上,娘娘今晚不侍寝 仙王的日常生活