硬件打交道也不是不可以,还可以增加安全性。
不过,暂时他并没有考虑这个情况。
现在blx是直接和天眼直接进行操作,反正这个系统暂时还只是他一个人用,他自己自然不会对这些硬件进行恶意操作。
林鸿将数据传输到天眼中之后,便开始了超脑系统的启动过程。
和计算机类似,启动的时候,超脑系统也将会对指定的硬件结构进行自检,只不过,刚开始林鸿只指定了几个特定的硬件结构,首先是cpu,然后便是显示器视网膜屏存储结构硬盘和内存。
只要这几个部件没有出现什么问题,就让blx继续执行代码,最终成功启动。如果出现了什么意外情况,则系统挂起,并且给出提示信息。
这个过程是必须的,因为硬件如果出了问题,继续执行也没有任何意义,因为很多代码都将无效。例如,假如硬盘出现了问题,就算系统能够运行起来,但是却无法保存数据,文件系统无法工作,功能将大大受到限制。
当然,显示器对于计算机来说,并不是必须的,很多服务器就干脆不配备显示器,系统也能够一样运行。
自检硬件,到底要不要挂起,这就得看具体的情况。
短暂的自检过后,blx成功通过,然后正式开始软件的启动过程。
这个过程很快,基本上是一闪而过,然后林鸿就看到,眼前凭空出现了一个黑底的矩形屏幕,其大小和一个17英寸的显示器差不多,就那么固定在前方,就好像前面真的出现了一个这样的显示器。
接着,显示屏上面开始出现绿色字符:
hello
blx
hello
blx
持续不断地这样显示,如此循环,绿色字符不断向上刷动。
看到这一幕,林鸿脸上露出笑容。
这个画面,才真正意味着,blx在天眼里面正式运行成功。
之前所显示的内容,只是他手动对视网膜屏进行操作才出现的结果,就好像,他用手在屏幕上画了了一个图案。
而现在,则确确实实地是系统中所显示出来的内容,这个内容,是可以随时很方便地进行修改的。
并且,这两个词汇交替进行显示,意味着blx系统中的多进程功能正在运行,也就是说,这个系统虽然简单,但至少已经具备了多任务处理的能力。
被加载到内存中执行的程序实例,称为进程,一个进程从建立到终止,全由操作系统的核心掌控。
操作系统的内部有一个进程队列,针对进程的状态和需求,根据不同的算法安排执行的顺序。每个进程会分配到一小段cpu时间,该段时间结束cpu马上切换到其他进程执行。
像这种不停的在各种进程之间切换执行即上下文切换的系统,称为多任务操作系统。
有多任务,自然就有单任务,dos系统在运行在本地实模式的时候,就是单任务的,也就是说在同一时刻,只能运行一个进程。要想运行其他程序,必须先将当前程序退出。
一般来说,多任务是现代操作系统的一个重要特征,当年lux开始编写的时候,首先实现的就是这个功能。而林鸿现在所做的,只不过是重复走了这一个过程而已。
证明了这一步没有问题,林鸿便开始将文件系统模块和内存管理模块给挂载上去。
由于这是微内核的结构,要挂载这些模块,系统连重启都不要,直接进行挂在就行了。
将文件系统挂载上去之后,林鸿测试了一个简单的文件读取和写入操作,进行了文件的创建,重命名,朝里面写入数据,并且将其显示出来。当然,这些操作,林鸿使用的并不是系统调用命令,而是像之前那样,完全手动进行
将这一步完成之后,他便开始继续完善他的shell,也就是字符终端的外壳程序。
他现在好像又回到了当初和lus一起编写lux的时候的时期,那个时候是将一个开源的bash移植到lux里面,而现在,他也大量参考了bash的shell外壳程序,开始编写更为复杂的系统调用命令。
shell是操作系统里面非常重要的东西,就好像是机床里面的母床一样,有了它,就可以在里面建立一个生产环境,极大的加快以后的系统编写进度。一旦将shell完成,就好像从0直接跳到了100,有了一个质的飞跃。他在里面实现诸如ls,move和py之类的命令,就变得像是做11之类的算术题这么简单。