Linux内核主目录&boot目录(2)——基于0.12内核

Linux内核源代码目录结构
这里所有的RCS都可以忽略,因为它们都是空文件夹
├─boot                  #系统引导汇编程序
│  └─RCS
├─fs                    #文件系统
│  └─RCS
├─include               #头文件(*.h)
│  ├─asm                #与CPU体系结构相关的部分
│  ├─linux              #Linux内核专用部分
│  ├─RCS
│  └─sys                #系统数据结构部分
├─init                  #内核初始化程序
│  └─RCS
├─kernel                #内核初始化程序、信号处理、系统调用等程序
│  ├─blk_drv            #块设备驱动程序
│  │  └─RCS
│  ├─chr_drv            #字符设备驱动程序
│  │  └─RCS
│  ├─math               #数学协处理器仿真处理程序
│  │  └─RCS
│  └─RCS
├─lib                   #内核库函数
│  └─RCS
├─mm                    #内存管理程序
│  └─RCS
└─tools                 #生成内核Image文件的工具程序
    └─RCS

image

  • 注意到在Linux根目录的最底部有一个makefile文件,该文件是编译辅助工具软件make的参数配置文件。make软件的用途是通过识别哪些文件被修改过,从而自动决定在一个含有多个源程序文件的程序系统中哪些文件需要重新编译——make工具软件是程序项目的管理软件。

  • image
    boot目录中有三个汇编语言文件,是内核源代码文件中最先被编译的程序。他们的主要功能是当计算机加电时引导内核启动,将内核代码加载到内存中,并做一些进入32位保护运行方式前的系统初始化工作。

  • bootsect.S程序是磁盘引导块程序,编译后会驻留在磁盘的第一个扇区中。在PC加电ROM BIOS自检后,将被BIOS加载到内存0x7C00处运行;

  • setup.S程序主要用于读取机器的硬件配置参数,并把内核模块system移动到适当的内存位置处

  • head.s程序会被编译连接在system模块的最前部分,主要进行硬件设备的探测设置和内存管理页面的初始设置工作

posted @ 2022-08-23 15:43  CUHKSZ丶Travis  阅读(142)  评论(0)    收藏  举报