前情提要

最近想在mini2440上模仿linux 0.12的代码实现arm版本的linux。
一来是想巩固下arm,在就是学习下操作系统的相关只是。
哎、最后之前的想法非常幼稚,心想学就学最新,当时想看懂linux 3.x的版本。
没想到越看越老,从3.x到2.x, 再到0.12 呵。
我想真把 0.12 玩的非常通其实也不是件易事。
从硬件到系统,mmu到进程,等等。如何有机的组在一起运行起来,也是很费精力。

废话不多说,学习的环境为,gentoo + qemu_mini2440.

以下都是自己瞎理解,并不一定对,但会慢慢完善。

我们可以想象下,linux文件系统,是吧我们想利用的资源,以虚拟一种树状目录结构管理。最初我们主要想把,硬盘上的内容以树状的结构管理起来。
但是发现,其实好多硬件都可以放到这个树中。例如:字符设备串口等。
这要我们能清楚的管理硬件。简单既是美。这也是linux可能玩不了复杂的,只能简单的想到一切皆文件的理念吧。

我们先不考虑虚拟文件系统,其实虚拟文件系统只是在我们这个真实的文件系统上再虚拟一层。因为可能由于兴趣原因,我们不想在每个硬盘上都放一种真实文件,有的像放fat,有的想放ext3,有的想法minix。呵呵,有点开玩笑。由于一个电脑上有多个文件系统。我们又不想让用户用写个应用还得open_ext3 read_ext3z这个样子。所以我们又封装了以下open->open_ext3,用户还是只要调用open就可以了,所以有了虚拟文件系统。
不过我们现在不想管,我们就一个文件系统minix。因为我怕乱了,额。