说起来简单,但是整个过程具体实现起来却是相当复杂的。
这也是LINUS为什么花了这么长时间才最终将V0.00版编写完毕的原因。
他们想让LINUX跟上时代的发展,让LINUX未来的功能能够和现在的这些最新艹作系统相媲美,进入保护模式是必不可少的,因为只有进入了保护模式才能最大程度地发挥出80386CPU的最大姓能。
林鸿之前看《艹作系统设计与实现》的时候,在这部分看得非常迷糊,专门还去查了不少资料,可是心中还是对这种机制有些想不通,为什么要这样设计。
但是,今天他看到了LINUS的实现代码之后,顿时有一种突然顿悟的感觉。
与平时编程的时候,不用去关心硬件底层结构不同,艹作系统的底层代码却是和硬件紧密相连。最初的那BOOT和LOADER程序,都必须用汇编才能胜任,精确到CPU的某一个寄存器,也精确到磁盘的某一个扇区。
要想理解这些代码,必须对CPU和磁盘的硬件结构了解得非常清楚。例如CPU有多少引脚,里面有多少个寄存器,每一个寄存器的作用又是什么。
好在这些技术参数,INTEL有着非常详细地技术文档。这么小小的一块芯片,涉及到的技术资料却是几本厚厚的大部头书籍。
林鸿不得不感叹,这小小的芯片之中,承载的却是人类文明中最先进的知识结晶,将人类的智慧发挥到了极处,每一个引脚,没一个寄存器都是经过了千百次不断试验之后才最终定下来的。
林鸿按照LINUS在里面写的说明文档,将开发环境配置好,然后在MINIX平台下对这份代码进行了编译。
修复了几个细小的BUG之后,他最终将LINUX的镜像文件给编译出来了。
他只有一台计算机,所以最终只好将这个LINUX安装在了本机上。
当然,他使用的又是多系统安装方式,其他两个系统并没有受到影响。
重启之后,他选择了“LINUX_V0.00”菜单,然后回车。
显示器上顿时闪现一连串的字符,不断向上刷动。
此刻,林鸿已经对计算机启动的详细过程有了非常深刻的认识,不再像以前那样,根本不知道计算机到底在做什么。
当电源开关被按下的时候,机器就开始通电,主板的控制芯片于是向CPU发送一个重置信号,将CPU恢复到最初始的状态,当芯片组检测到CPU上的供电稳定的时候,CPU就会开始工作。
它要做的第一件事就是从内存中的0XFFFF0地址处读取指令运行。
而这个地址中,通常会有一个跳转指令,跳转到BIOS的自检系统处,这个时候便开始了自检过程。BIOS是主板厂商早就刷在了固件里面的一个系统,目的就是对硬件进行管理。
自检的目的,是为了检测计算机各部分硬件是否正常,如果缺少或者有损坏的硬件,则启动就会立刻被挂起。
本章未完,请点击下一页继续阅读!