第42章:万事开头难
作者:伯兄      更新:2017-12-19 12:26      字数:2408

对于这些质量第一啊什么的,一切都跟陈经无关,最近陈经比较烦,他精简系统方面还是没有一点进展,他也不是没试过不精简了,直接就现在系统的功能来用机器语言写出来,但是,他发现现在的系统也仅仅是能给他设计理念上的帮助而已,要把这些设计转换成机器语言难度不是一般地大,他也试着直接用X86CPU的指令直接编写个浏览器出来,但是一大堆的0和1把它给晃晕了,而且系统每增加一K就要多写入8192差不多一万个0和1,而要编写出一个浏览器的功能不仅仅要它能浏览一般的文本,还要能够执行Javascript脚本,不然的话这就无法使浏览器成为一个能互动的系统,而要实现Javascript功能,那就得编写出一个JS引擎,本来用高级语言编写就比较麻烦了,现在要求用机器语言来那需要的工作简直是恐怖,而且不注意的时候就很容易出错。

为了尽量减少出错的机率,陈经已经做了一个软件,把X86的所有指令都集成在上面,这样就不用一个0一个1地输入,其实这和汇编已经很类似了,但这软件是仅仅能生成X86CPU的指令,而且可以直接通过CPU运行不用再编译解码什么地了,这也正是机器语言速度远超其它语言的地方,其它的语言编写出来的程序虽说也是二进制码,但是它们还要经过解码之后才能让CPU指令认识,但机器语言是一开始就以CPU指令来编写软件,两者运行效率那是没得比的,因此陈经才千方百计想办法用机器语言编写一个系统内核,可惜即使是陈经已经做了十足的准备,他还是发现自己根本无法编写出一个浏览器作系统内核,主要还是在JS引擎上,它太复杂了,基本上不是可能直接用器语言写出来。

现在陈经已经基本上放弃了用机器语言编写整个浏览器的想法,只能通过机器语言部分实现浏览器功能,首先JS部分必须要取消,也就是说系统内核将不支持JS脚本,不过对于浏览基本的HTML静态网页功能还是可以做出来的,甚至CSS也没问题,至于JS只能通过外部程序来实现了,不能通过内核支持JS不得不说是一件遗憾的事,但情况不允许也陈经只能做到这步了,最多在以后写JS引擎的时候用汇编来写吧,虽说比不上机器语言,但起码比用高级语言写起来效率要高得多。

现在摆在陈经面前的问题就是系统内核不支持JS脚本,而本来系统是用一个JS语言改进过来的V语言来作为系统的开发环境的,一个系统无论如何系统都要有一个开发环境的,现在的情况就是系统不支持任何一门编程语言,那样的话就只能直接用机器语言来编写软件,但这基本是不可能的事,这样做难度太大了,而且大一点的软件根本不可能做得出来,现在陈经最头疼的也就这点了。

难道真要放弃自己的想法?陈经也开始有所动摇,但一想自己都作了那么久的准备了,而且这可是设计智能操作系统的基础,因此他不是咬牙继续想办法。

在经过苦思冥想并对比各个操作系统之后,终于还是让陈经想到了一个不是办法的办法,他发现自己又砖进死胡同里了,在内核里无法集成太复杂的编程语言,但是,可以集成一些简单点的,类似汇编这种语言啊,于是他就分析编程经常要用到的一些语句,然后通过组合若干条CPU指令组成一些新的指令,不过这些指令是通过系统内核来运行的,CPU不能直接运行,因此陈经暂且把它们称为底层指令集,这个指令集可以通过内核转化成机器语言。

通过底层指令集再来组合就可以做高级语言能做的事,这样就能通过底层指令集来建立一个JS引擎了,而陈经现在又有了新的想法,它打算把这个JS引擎看成是V语言的子集,这样只需编写出一个V语言就可以实现JS脚本功能了,在当初分析V系统代码的时候他就有这个想法了,当然这一切还要通过一些技术来处理。

但一切都不难,只要有了办法花些时间都能做得出来,现在陈经需要分析的就是底层指令集需要那些功能,要知道底层指令集是越少越好的,虽说底层指令集并不复杂,但是,也是需要很多工作的,要通过一条一条的CPU指令来做出这个底层指令集的,如果底层指令集太多的话要做出来也很困难的,陈经虽然已经尽可能地减少了指令数,但做出来之后还是有六百多条的底层指令,每个指令又由不少的CPU指令来构成,这一做下来,整个内核就占了113K,其实实现HTML和CSS功能的代码仅仅是6K而已,剩下的107K则是底层指令集所占的空间,113K要多少个二进制字符呢,算一下吧113×1024×8=925696一共九十二万多个字符,这就是这段时间陈经的工作,当然由于它用事先编写好的软件,每条CPU指令输入一个代号就行了,所以实际上没输入那么多,但光想着用这么多个字符来编程就知道恐怖了,陈经就算再怎么强大也要花费三个月的时间才搞好。

可以说现在内核出来了,也算是做出了个最简单的操作系统了,但这个系统现在唯一的功能就是查看由HTML代码和CSS编写出的网页,要实现更多的功能,还要通过底层指令集编写出V语言开发环境,但这比起内核的设计来不知道轻松了多少倍,并且V系统也有现在的V语言,只是现在要通过底层指令集来重新编写而已,结果才花半个月,陈经已经顺利完成了这个工作,现在一个基础的系统可以说已经完成了,这就花费了快四个月,时间也已经从开学时的炎热夏季变成了寒冬时节,这还是参考V系统代码,在它的基础上精简而已,如果是从头开始的话不知道不要多久。