`

linux内核0.11学习笔记

阅读更多
linux0.11内核目录结构
linux
|
|--- boot 系统引导汇编程序
|
|--- fs 文件系统
|
|--- include 头文件(*.h)
|     |
|     |--- asm 与CPU体系结构相关的部分
|     |
|     |--- linux Linux内核专用部分
|     |
|     |--- sys 系统数据结构部分
|
|--- init 内核初始化程序
|
|--- kernel 内核进程调度、信号处理、系统调用等程序
|     |
|     |--- blk_drv 块设备驱动程序
|     |
|     |--- chr_drv 字符设备驱动程序
|     |
|     |--- math 数学协处理器仿真处理程序
|
|--- lib 内核库函数
|
|--- mm 内存管理程序
|
|--- tools 生成内核Image文件的工具程序

makefile文件,在Linux目录下,该文件是编译辅助工具软件make的参数配置文件。make工具软件的主要用途是通过识别哪些文件已被修改过,从而自动地决定在一个含有多个源程序文件的程序系统中哪些文件需要被重新编译。
boot目录中含有3个汇编语言文件,是内核源代码中最先编译的程序。这3个程序完成的主要功能是当计算机加电时引导内核启动,将内核代码加在到内存中,并做一些进入32位保护运行方式前的系统初始化工作。其中bootsect.s和setup.s程序需要使用as86软件来编译,使用的是as86的汇编语言格式,而head.s需要用GNU as来编译,使用的是AT&T格式的汇编语言。
bootsect.s程序是磁盘引导块程序,编译后会驻留在磁盘的第一个扇区中
setup.s程序主要用于读取机器的硬件配置参数,并把内核模块system移动到适当的内存位置处
head.s程序会编译链接在system模块的最前部分,主要进行硬件设备的探测设置和内存管理页面的初始设置工作。

fs文件目录系统
该目录中的程序可以划分成4个部分:高速缓冲区管理、低层文件操作、文件数据访问和文件高层函数。
文件系统,我们可以将它看成是内存告诉缓冲区的扩展部分。所有对文件系统中数据的访问,都需要首先读取到高速缓冲区中。fs目录中的程序主要用来管理高速缓冲区中缓冲块的使用分配和块设备上的文件系统。管理告诉缓冲区的程序是buffer.c,而其他程序则主要都是用于文件系统管理。
在file_table.c文件中,目前仅定义了一个文件句柄结构数组。ioctl.c文件将引用kernel/chr_dev/tty.c中的函数,实现字符设备的io控制功能。exec.c程序主要包含一个执行程序函数do_execve(),它是所有exec()函数簇中的主要函数。fcntl.c程序用于实现文件i/o控制的系统调用函数。read_write.c程序用于实现文件读/写和定位三个系统调用函数。stat.c程序中实现了两个获取文件状态的系统调用函数。open.c程序主要包含实现修改文件属性和创建于关闭文件的系统调用函数。

include头文件主目录
该目录总共有32个.h头文件。有关的描述在26页有讲。

内核初始化程序目录init
该目录下只有一个main.c文件。用于执行内核所有的初始化工作,然后移到用户模式创建新进程,并在控制台设备上运行shell程序。

kernel内核程序主目录
kernel/blk_dev块设备驱动程序子目录
kernel/chr_dev字符设备驱动程序子目录
kernel/math协处理器仿真和操作程序子目录
P27

lib内核库函数目录
P28

mm内存管理程序目录
P29

tools编译内核工具程序
P29。该目录下的build.c程序用于将Linux各个目录中被分别编译成生成的目标代码链接合并成一个可运行的内核映像文件image。
分享到:
评论

相关推荐

    Linux 内核完全注释0.11内核(修正版V3.0).pdf.7z

    0.11版本虽然相对于现代的Linux内核来说相当古老,但它包含了操作系统基础功能的雏形,如进程管理、内存管理、文件系统、设备驱动等关键模块,是学习操作系统原理和Linux内核开发的入门起点。 在《Linux内核完全...

    linux0.11 内核学习笔记

    这份“Linux0.11 内核学习笔记”详细解读了这个早期内核的结构、工作原理以及相关的编程技术。下面,我们将深入探讨其中的关键知识点。 一、内核架构 Linux 0.11内核采用单内核设计,所有的系统服务都集中在一个可...

    Linux 0.11学习笔记

    本篇笔记将围绕Linux 0.11的核心特性、内核结构、编译安装以及相关命令行操作进行详细介绍。 1. **Linux 0.11核心特性**: - Linux 0.11是一个单用户、多任务的操作系统,支持抢占式调度,允许多个程序同时运行。 ...

    Linux-0.11-Kernel-note:Linux-0.11内核源码笔记

    Linux-0.11内核源码笔记是对Linux操作系统早期版本0.11内核的深入解析,这对于理解操作系统的工作原理、学习Linux内核开发以及探究开源软件的精髓具有重要意义。Linux内核是Linux操作系统的核心部分,负责管理系统的...

    哈工大李治军老师操作系统实验答案及笔记linux-0.11.zip

    操作系统是计算机科学中的核心课程,...通过这些内容的学习,学生不仅可以理解操作系统的理论知识,还能通过实践加深对Linux内核的了解,掌握实际操作技能,对于未来从事操作系统开发或系统级编程工作具有极大的帮助。

    Linux内核创建一个进程的过程分析

    不管在什么系统中,所有的任务都是以进程为载体的,所以理解进程的创建对于理解操作系统的原理是非常重要的,本文是我在学习linux内核中所做的笔记,如有错误还请大家批评指正。注:我所阅读的内核版本是0.11。  ...

    linux学习资料

    这部分内容可能涵盖嵌入式系统的硬件选型、Linux内核裁剪、交叉编译、设备驱动开发等方面,是成为合格的嵌入式工程师的必修课程。 "Linux0.11的源代码"则为学习操作系统原理提供了实践平台。通过阅读和分析早期版本...

    mit-jos-2014:jos是mit6.828课程所用的操作系统,此处记录7个Lab的学习笔记

    把赵炯博士的那本Linux内核0.11完全注释翻了一遍,之后尝试自己重新编译0.11内核。但是发现有点困难,可能是编译器之类的变化不一致,报了一些看不见的错误,也找不到人一起讨论,就没有深入下去。后来又尝试了一下...

    SnailOS0.00-SnailOS0.00

    分别是《30天自制操作系统》、《一个操作系统的实现》和《Linux0.11内核完全注释》。这些书籍都有“轻理论而重实践”的特点,通过大量实践操作帮助读者逐步构建对操作系统的理解。 3. 编程语言在操作系统开发中的...

Global site tag (gtag.js) - Google Analytics