第209章 linux第一版(1 / 2)

一秒记住【www..l】,为您提供精彩小说阅读。

ls发过来的源码包,总共大概12000行代码,他编写这些代码总共花费了十天左右的时间,要是算上之前为此而准备的时间,则至少还要加上一个月。而林鸿将这些代码阅读完毕,却只花了大概三个小时就看完了。

林鸿发现,里面很多地方都借鉴了x的写法,毕竟之前ls一直都在研究x,从上面借鉴了不少特点和功能。例如,文件系统的结构。

x的文件系统是模仿x来写的,只有将文件系统实现了,才有可能对磁盘进行读写,可以说文件系统就是对磁盘的管理程序。虽然现在的lx并没有涉及到磁盘的读写功能,但是这个一部分ls还是将其实现了出来。

按照编程的惯例,通常第一个程序都是实现“ello,wolrd”,ls也曾经在显示器上打印过这个语句,但是他发给林鸿的这个版本的功能,已经不仅仅是这么简单了。

他在这个版本中实现了两个重要的功能,即保护模式和多进程。

这两个特点是dos系统所不具备的,被视为现代操作系统的重要功能。

“保护模式”是针对内存的一个说法。

el公司在1978年发布了一个16位的cp,即8086,这个cp是el历史上一个重要的里程碑,是奠定了el在pc领域芯片的最最要的产品之一。

8086cp总有20根地址线,可以最大寻址2的16次方,也就是1b的地址空间。

这就是基于8086cp的计算机所能支持的最大内存地址,这个模式被称为“实模式”。dos系统就是工作在这个模式下。

实模式只支持最多1b的内存。就林鸿想要升级自己正在使用的这台康柏计算机,在内存条上再加一条1b的内存,dos系统也识别不出来,根本无济于事,性能没有任何提升。

这是16位cp的硬件结构所决定的,在当时1b内存已经相当不错。所有应用程序都足够使用。

不过,在电子领域,存在着“摩尔定律”,集成电路不断迅速发展,很快8086cp就无法满足要求了。

于是el便在1985年推出了8086的升级版本80386。

这一次,寄存器的位数被翻了一倍,从16位升级到32位。

80386cp增加了不少优点,不但寻址空间大大,而且还引入了多任务处理和保护模式的概念。

保护模式下,对内存的管理已经不再是以前的分段式结构。而是变成了分页机制,这种机制有非常大的优点,可以让内存管理性能得到极大的提升。

但是,在计算机领域,有一种“向前兼容”的规则,也就是说,80386必须兼容8086cp的机制,以前在那个上面能运行的程序。在升级后的cp上也能运行。

所以在默认情况下,这个“保护模式”是没有被打开来的,使用的还是“实模式”。

而要想打开“保护模式”,则需要用代码对第20号地址线进行操作,将其“唤醒”。它就是进入保护模式的守门人,必须通过它的同意才行。

说起来简单,但是整个过程具体实现起来却是相当复杂的。

这也是ls为什么花了这么长时间才最终将v0.00版编写完毕的原因。

他们想让lx跟上时代的发展,让lx未来的功能能够和现在的这些最新操作系统相媲美,进入保护模式是必不可少的,因为只有进入了保护模式才能最大程度地发挥出80386cp的最大性能。

林鸿之前看《操作系统设计与实现》的时候,在这部分看得非常迷糊,专门还去查了不少资料。可是心中还是对这种机制有些想不通,为什么要这样设计。

但是,今天他看到了ls的实现代码之后,顿时有一种突然顿悟的感觉。

与平时编程的时候,不用去关心硬件底层结构不同,操作系统的底层代码却是和硬件紧密相连。最初的那boo和lod儿程序,都必须用汇编才能胜任。精确到cp的某一个寄存器,也精确到磁盘的某一个扇区。

要想理解这些代码,必须对cp和磁盘的硬件结构了解得非常清楚。例如cp有多少引脚,里面有多少个寄存器,每一个寄存器的作用又是什么。

好在这些技术参数。el有着非常详细地技术文档。这么小小的一块芯片,涉及到的技术资料却是几本厚厚的大部头书籍。

林鸿不得不感叹。这小小的芯片之中,承载的却是人类文明中最先进的知识结晶,将人类的智慧发挥到了极处,每一个引脚,没一个寄存器都是经过了千百次不断试验之后才最终定下来的。

林鸿按照ls在里面写的说明文档,将开发环境配置好,然后在x平台下对这份代码进行了编译。

修复了几个细小的b之后,他最终将lx的镜像文件给编译出来了。

他只有一台计算机,所以最终只好将这个lx安装在了本机上。

当然,他使用的又是多系统安装方式,其他两个系统并没有受到影响。

加入书签