Operating System Design操作系统OSDesign
Linux-2.4分析 ToolChain
Configuration of OS Source
为了实现最大限度的模块化,必须有一个Infrastructure,处于依赖树的金字塔的最低层,不依赖于任何其他模块。初步入选的模块和文件是:printf系统,types定义,基本string操作,link list操作,其他基础数据结构(暂无)。只有这些模块的头文件是直接放到include目录的根目录的.其实C99标准定义了一个standalone模式供编译器选择编译像OS这样的程序,这里选择的文件并非和C99完全相同.其他模块的头文件 通过makefile创建的符号链接放到include,这样, 具体模块的头文件和C文件放在一起,很容易移植和学习。
1.build doc scripts tools debug: 这些不是OS的一部分,但又不可或缺。build和scripts包含Makefile的源文件。debug是Bochs的配置和脚本。 2.boot 由bootsect.S setup.S 和 setup32构成的启动支持。扩展方便。 3.includekernel 现在这两个目录构成kernel的主体部分。最基本的原则是尽量剥离OS的各个部分。 4.fs 将具体的文件系统和OS的逻辑做最大限度的隔离,在FAT部分不会涉及任何和OS相关的东西,目标是一个FS的driver lib。 5.driver 和fs的思路一直,对硬件的操作逻辑和OS对driver的要求彻底分离。 6.lib 现在放了一些杂七杂八的东西。