第188部分(第2/4 页)
构,这样显然是不对的,缺乏远见,因为体系结构的进化速度是非常快的,这样会导致以后不利于移植。
而LINUS也承认·微内核在设计思想上的确是更胜一筹,但是微内核在实现和调试上的难度非常大,这也是为什么GNU自己的系统HURD迟迟无法发布的原因。
INUS认为,快速实现一个可以使用的系统更为重要,如果等将所有设计都优化到最后再去实现,这个过程将极为漫长,那LINUX或许就会成为HURD那样的难产儿。
而历史似乎证明LINUX所作出的决定是正确的,LINUX正以一种令人难以置信地速度在互联网上流传起来,而HURD系统却逐渐地销声匿迹。
如果是几年前让林鸿来设计系统,他的决定或许会和LINUS一样,也选择开发和入门都较为容易一点的宏内核体系。不过现在他却不会这么做,因为他已经完全有把握能够克服其中的一些问题。
并且,他想要编写的实时操作系统,是为了军事用途,军事中的东西,架构可不都是XB6而是千奇百怪,宏内核显然无法满足这个要求,只有将系统服务的实现和系统的基本操作规则分离开来,并且一个服务组件的失效不能导致整个系统的崩溃,这才是军用产品所需要的功能。
林鸿新建了一个项目文件夹,名称为“LINX”,沿袭了UNIX的命名法则,而前面的IN却是林鸿的姓氏。
然后,他在里面新建了个文件,敲下了这个系统的第一行代码。
第331章 我想学
编写操作系统是一件非常繁杂的事情,必须对计算机系统每一个细节都了解清楚,通电之后,每一个硬件在最初的状态,里面保存着那些数据,代码是如何一步一步地执行的……等等等等。
林鸿主要使用的编程语言,是C语言,当然,其中还会有有些地方需要用到汇编语言,例如最初引导启动的那部分代码BaatLaader。
C语言的确是一种非常强大的语言,几乎现在大部分流行的操作系统都是C语言,或者其变种语言所编写的,例如UNIXLINUX甚至WINDOWS
当年,LINUS在MINIX系统下编写LIbUX的内核,而现在,林鸿则在INUX系统下,编写INX的内核。
由于林鸿已经有了不少系统编程经验,他刚开始的时候进度是非常快的。
首先,代码编写环境是现成的,根本不用再花另外的时间和精力去配置。
要想编写一个操作系统,其编程环境也是有一定复杂性的,并不说能够编写应用软件的环境就可以,而是需要特别定制,这一步通常需要耗费程序员相当大的精力和时间。因为你需要编写的系统很可能是一个全新的体系,现有的软件和工具可能满足不了你的需求,故而不得不自己动手去实现这些工具软件。
这就像是,你想制造一台机器,但是却没有现成的工具′还必须自己去发明一台车床用来制造汽车的配件。可想而知,发明车床的时间可能就需要耗费一段极长的时间。
正所谓“磨刀不误砍柴工”,要想砍柴砍得快,就必须要有锋利的刀具,但是磨刀也是需要花费时间的。
而林鸿现在这一步可以直接省略了。因为他的开发环境完全可以和LINUX的开发环境一致,因为使用的编程语言是一样的。
其次,诸如BaatLaader这样的引导程序也几乎是现成的只要修改少量的代码就可以直接将原来的进行重用。
所以,他在很快的时间之内,就将第一个例程“HMMaLun编写了出来。
重启之后,引导进入他新编写的操作系统显示器上,便开始间歇性的打印“HMlla”以及“Ln这两个词语。
正如当年INUS编写的第一个多进程程序一样,他这个也实现了两个线程,这两个线程同时运行在CPU中,共享着CPU的时间片。
虽然早已料到这样的结果,但是林鸿还是看了一下效果。
这是程序员们经常干的事情,虽然早就料到程序执行的结果但是还是会选择亲自输入一遍,然后运行再看电脑执行一遍。这样可以有一个感性的认知,同时也是对自己的一种潜在的激励,看着自己亲自编写出来的程序渐渐成型,让电脑展现出各种效果,其中的自豪感是无以言表的。
熟悉心理学的林鸿自然知道,这实际上是人的控制本能,尤其是男孩子从小就有这种控制**。他们希望玩遥控汽
本章未完,点击下一页继续。