《超脑黑客》

下载本书

添加书签

超脑黑客- 第178部分


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
直接在线传给了对方。linus:伙计,你的效率真快,移植了bash,以后的编写工作会要大大加速了铁幕1925!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软件。……
 
   

第220章 加密算法

   提醒书友注意休息眼睛哟篮球之游戏分身最新章节!第二卷 黑客圣地'第220章 加密算法第220章  加密算法对cqcq软件重构的想法,林鸿实际上在和凯文聊过之后,就开始在脑海中慢慢成型。对发送消息进行加密这个问题比较好解决,据林鸿所知,目前有一些加密性能比较好的加密算法都是免费并且公开的,他可以直接拿来使用。关键在于如何建立起负责消息传递中转的“秘密据点”。这些据点必须具有随机的特点,不能一直固定,这样就可以增加被追踪拦截的难度,好看的小说:前夫的吻痕。现在这种一台服务器管理并转发所有在线聊天客户端的信息的模式肯定是行不通了,因为这种结构太过脆弱,只要对方攻占了服务器,整个聊天网络就会瘫痪。林鸿经过慎重思考,觉得还是回归到自己最初的想法比较靠谱,也就是,把客户端和服务器端集成到一起。也就是说,网络上有多少个是用整个软件的客户,那么就有多少台消息中继服务器,每一台服务器都可以对消息进行中转,构成一个庞大的没有任何规律的网状网络。确定好了这个大体的方向之后,他脑海中各种灵感不断冒出,以至于他立刻从课桌里面拿出几张白纸,开始以极快地速度将这些想法以图形和简短的文字记录在这些纸上。不一会儿,不断冒出的想法就记满了五张白纸,林鸿这才停了下来。林鸿抽出其中一张,这张纸上,画了一张用方块代表计算机的网络拓扑图,用线条表示数据流动的方向。林鸿重新回过头来,对之前的思路进行整理,然后又对这张图进行完善和修补。接下来便又抽出另外一张纸,这张纸上画了四个方块表示计算机,中间用几条细线和一条粗线连接,细线表示少量数据交换,粗线表示真正的数据。想了一下,林鸿又重新在它们之间添加了两条粗线,将原来的那一根粗线给划掉了。经过刚才一阵头脑风暴,林鸿对于cqcq新版的架构已经有了底稿,总体的设计框架已经想清楚了,接下来就是对它的技术细节的实现。放弃中央控制服务器的架构,转而采用点对点的架构,消息可以通过每一个客户端进行中转,好看的小说:五行幻圣。不过,还是会存在一个对整个拓扑网络节点进行维护的“中继服务器端”,这些服务器端并不涉及到数据的中转,只保存客户端节点信息,例如ip映射地址,在线节点列表以及它们之间的拓扑结构。考虑到稳定性方面的问题,这些服务器端不能只有一个,而是多个,并且他们共同维护同一张数据表
小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架