? 第一百九十章移植
林鸿回到自己房间,心情激动地将其中一张软盘插入光驱之中,然后从命令行进入了软盘之中。
这里面有一个名为“sourcecode”文件夹,林鸿进入这个文件夹,再用dir命令显示了一下,列出了长长的一个文件夹列表。
林鸿大致的浏览了一下,发现这张软盘里面保存的全部是源代码,分门别类地放置在对应的文件夹中,主要分为内核、内存管理和文件系统三大部分,其他都是一些引导代码还有驱动程序源代码之类的。
将这块软盘退了出来,林鸿查看了一下另外一张软盘。
这张软件里面的内容才是minix的镜像系统,可以直接从这块软盘中启动进行安装。
现在的软盘体积已经比以前大多了,再加上linus直接将这个系统做成了压缩镜像,所以一张软盘就装下了。
林鸿本想立刻就进行安装,可是转念一想,自己对这个系统并不是很熟悉,如果将原来的系统给删掉了,他的很多事情就做不了了,例如上网和进行程序开发。
于是,他决定在硬盘上安装双系统,能够在启动的时候对系统进行选择,这样就可以按照需要进入不同的系统。
不过林鸿暂时对双系统安装并不是很了解,于是暂时将这事放下,先去各大论坛查一下相关的资料。
在几个论坛上逛了一圈,林鸿就基本上心中有数了,他原本就已经有扎实的基础,心中也有一个模糊的概念,只是不想浪费时间再去试验摸索,学习一下大家的经验可以节省时间和精力。
双系统启动其实很简单。
在硬盘的第一个扇区上记录了两个重要重要的区域,分别是mbr(主要启动记录区)和分区表。
这两个区域都很重要,但是和启动有关的则是mbr。在这块区域中,安装了一个“开机启动管理程序”,这个程序才是安装双系统的关键所在,只要将新系统的“开机启动管理程序”也写进硬盘,这样在开机的时候,就会看到有两个这样的管理程序,选择对应的菜单,就可以进入不同的系统。
这个原理,就好像是在超市门口拜访两个指示牌,一个是指向dos系统,另外一个则是指向minix系统。
先去下楼去吃完晚饭之后,林鸿再次回到房间,正式开始安装minix。
为了顺利将minix的“开机启动管理程序”写入mbr,林鸿还废了一番心思,刚开始的几次还没能成功,幸好他之前已经将原来的mbr给备份了,否则原来的系统可能都无法启动了。
经过几番尝试,林鸿终于成功将minix给安装到了硬盘上。
他迫不及待地重启计算机,然后选择minix菜单,回车。
显示器上立刻出现了许多检测信息,不断地向上滚动着,这台计算机的所有硬件都被检测了一遍,全部都ok之后,最终才进入了一个字符界面。
由于林鸿在此之前就已经看过了那本《操作系统:设计与实现》,所以对minix的系统命令非常熟悉,他很快就上手了,将所有记住的命令都试验了一遍。
接着,林鸿在这个操作系统里面找到了一份详细的帮助手册,这是linus撰写的,里面详细地列出了他对这个系统所进行了哪些修改。
其中,令林鸿感到惊讶的是,linus竟然已经顺利完成了终端仿真器的编写。
也就是说,用这个完全可以和一些服务器进行连接了。
林鸿立刻动手试了一下,首先填上网络账号和密码登录网络,然后再输入服务器的sam协会的bbs服务器ip地址,连接之后,再输入服务器的登录账号和密码。
仿真终端上出现了熟悉的命令行界面。
接下来,林鸿按照linus所列举的那些功能一个个试用过去,他发现原本只是用来作为教学用的精简版系统,功能竟然已经强大如斯,甚至比苹果计算机前期的几个版本的系统都要强大。
最让林鸿动心的功能,是linus竟然在里面集成了一个名为bash的shell程序。
这个程序实际上在系统刚启动的时候就运行了,只不过林鸿并没有察觉,后来看了文档之后才发现,原来他看到的命令行界面并不是minix自带的那个,而是已经被linus成功给替换了。
shell即外壳程序,这是区别于操作系统内核的一个重要部分,通常的表现形式就是一个字符命令行界面,例如dos界面也是一个壳。
通过接受用户输入的命令,shell可以调用执行相应的应用程序。
另外,shell也是一种程序设计语言,它可以交互式解释和执行用户输入的命令,或者自动地解释和执行预先设定好的一连串的命令。作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。
有了这个shell,可以说,这个经过linus改装过后的系统,功能已经完全可以媲美dos系统了,更重要的是,这个操作系统的源代码是公开的,林鸿可以查看所有的实现细节,而dos操作系统则是一个黑匣子,完全不知道底层的运行机制,只能有一些有限的被封装好的api接口和中断。