`
jackchen0227
  • 浏览: 143401 次
  • 性别: Icon_minigender_1
  • 来自: 帝都
社区版块
存档分类
最新评论

linux 内核文件结构

阅读更多


1、Linux核心源程序通常都安装在/usr/src/linux下,而且它有一个非常简单的编号约定:任何偶数的核心(的二个数为偶数,例如2.0.30)都是一个稳定地发行的核心,而任何奇数的核心(例如2.1.42)都是一个开发中的核心。

2、核心源程序的文件按树形结构进行组织,在源程序树的最上层,即目录/usr/src/linux下有这样一些目录和文件:

◆ COPYING: GPL版权申明。对具有GPL版权的源代码改动而形成的程序,或使用GPL工具产生的程序,具有使用GPL发表的义务,如公开源代码;

◆ CREDITS: 光荣榜。对Linux做出过很大贡献的一些人的信息;

◆ MAINTAINERS: 维护人员列表,对当前版本的内核各部分都有谁负责;

◆ Makefile: 第一个Makefile文件。用来组织内核的各模块,记录了个模块间的相互这间的联系和依托关系,编译时使用;仔细阅读各子目录下的Makefile文件对弄清各个文件这间的联系和依托关系很有帮助;

◆ ReadMe: 核心及其编译配置方法简单介绍;

◆ Rules.make: 各种Makefilemake所使用的一些共同规则;

◆ REPORTING-BUGS:有关报告Bug 的一些内容;

● Arch/ :arch子目录包括了所有和体系结构相关的核心代码。它的每一个子目录都代表一种支持的体系结构,例如i386就是关于intel cpu 及与之相兼容体系结构的子目录。PC机一般都基于此目录;

● Include/: include子目录包括编译核心所需要的大部分头文件。与平台无关的头文件在 include/linux子目录下 ,与 intel cpu相关的头文件在include/asm-i386 子目录下,而include/scsi目录则是有关scsi设备的头文件目录

● Init/: 这个目录包含核心的初始化代码(注:不是系统的引导代码) ,包含两个文件main.c和Version.c,这是研究核心如何工作的好的起点之一。

● Mm/:这个目录包括所有独立于 cpu 体系结构的内存管理代码 ,如页式存储管理内存的分配和释放等;而和体系结构相关的内存管理代码则位于arch/*/mm/,例如arch/i386/mm/Fault.c;

● Kernel/:主要的核心代码,此目录下的文件实现了大多数linux系统的内核函数,其中最重要的文件当属sched.c;同样,和体系结构相关的代码在arch/*/kernel中;

● Drivers/: 放置系统所有的设备驱动程序;每种驱动程序又各占用一个子目录:如,/block 下为块设备驱动程序,比如ide(ide.c)。如果你希望查看所有可能包含文件系统的设备是如何初始化的,你可以看drivers/block /genhd.c中的device_setup()。它不仅初始化硬盘,也初始化网络 ,因为安装nfs文件系统的时候需要网络;

● Documentation/: 文档目录,没有内核代码,只是一套有用的文档,可惜都是English的,看看应该有用的哦;

● Fs/: 所有的文件系统代码和各种类型的文件操作代码,它的每一个子目录支持一个文件系统, 例如fat和ext2;

● Ipc/: 这个目录包含核心的进程间通讯的代码;

● Lib/: 放置核心的库代码;

● Net/: 核心与网络相关的代码;

● Modules/: 模块文件目录,是个空目录,用于存放编译时产生的模块目标文件;

● Scripts/: 描述文件,脚本,用于对核心的配置;

一般,在每个子目录下,都有一个 Makefile 和一个Readme 文件,仔细阅读这两个文件,对内核源码的理解很有用。

对Linux内核源码的分析,有几个很好的入口点:一个就是系统的引导和初始化,即从机器加电到系统核心的运行;另外一个就是系统调用,系统调用是用户 程序或操作调用核心所提供的功能的接口。对于那些对硬件比较熟悉的爱好者,从系统的引导入手进行分析,可能来的容易一些;而从系统调用下口,则可能更合适 于那些在dos或Uinx、Linux下有过C编程经验的高手。这两点,在后面还将介绍到。

http://hi.baidu.com/sunblackshine/blog/item/a4a9130f7e87ecc27acbe16d.html

分享到:
评论

相关推荐

    LInux内核的目录文件

    LInux内核目录文件,希望对于大家理解linux内核结构有些帮助。

    linux 内核移植和根文件系统的制作

    这些linux内核并不总是适用于所有linux支持的体系结构。实际上,这些内核版本很多时候并不是为一些流 行的嵌入式linux系统开发的,也很少运行于这些嵌入式linux系统上,这个站点上的内核首先确保的是在Intel X86体系...

    Linux内核源代码情景分析 (上下册 高清非扫描 )

    丛书名: Linux内核源代码情景分析 出版社:浙江大学出版社 目录 第1章 预备知识 1.1 Linux内核简介. 1.2 Intel X86 CPU系列的寻址方式 1.3 i386的页式内存管理机制 1.4 Linux内核源代码中的C语言代码 1.5 Linux...

    Linux内核完全剖析基于0.11内核》--赵炯

    本书对早期的Linux操作系统内核(v0.11)全部源代码文件进行了详细的注释和 说明,旨在让读者能够在短时间内对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux系统打下坚实的基础。书中首先介绍了 ...

    深入分析Linux内核源码.chm

    1.5 Linux内核结构 1.6 Linux内核源代码 1.7 Linux内核源代码分析工具 第二章 Linux运行的硬件基础 2.1 i386的寄存器 2.2 内存地址 2.3 段机制和描述符 2.4 分页机制 2.5 Linux中的分页机制 2.6 Linux中的汇编语言 ...

    Linux内核分析及编程高清pdf版(2-1)

    本书作者在整理自己多年研发笔记的基础上,以精心挑选的典型开发实例,向读者详细讲述了Linux内核源代码的各部分结构、原理及组成框架,主要分析了 Linux最新版本(2.6.11)的内核源代码,帮助读者深入理解Linux内核...

    Linux系统内核文件Cache管理机制

    自从诞生以来,Linux 就被不断完善和普及,目前它已经成为主流通用操作系统之一,...本文介绍一下 Linux 内核中文件 Cache 管理的机制。以 2.6 系列内核为基准,主要讲述工作原理、数据结构和算法,不涉及具体代码。

    Linux 内核完全注释

    本书对 Linux 早期操作系统内核(v0.11)全部代码文件进行了详细全面的注释和说明,旨在使读者能够在尽量短的时间 内对Linux 的工作机理获得全面而深刻的理解,为进一步学习和研究Linux 系统打下坚实的基础。虽然所...

    linux内核完全注释(高清版)

    ·以内核源代码为基础,介绍了完整的linux内核实现原理 ·选择早期linux内核进行介绍,排除了目前内核中复杂而庞大的实现细节 ·整个内核代码仅有14000行 ·提供可运行相关内核的完整实验系统  本书对早期的linux...

    Linux内核网络栈源代码情景分析.pdf

    本书主要对 Linux 1.2.13 内核协议栈的全部源代码做了详细的分析, 该版本所有代码都在一个文件夹中,每种协议的实现都只有一个文件与之对应,分析该版本源代码可以方便读者迅速掌握 Linux 网络协议结构。...

    国嵌嵌入式(Linux)开发培训课件 内核开发与系统移植

    2. Linux内核源代码结构 3. Linux内核配置与裁剪 4. Linux内核模块开发 5. Linux内核启动流程 第二天 1. Linux内存管理 2. Linux进程地址空间 3. Linux内核地址空间 4. Linux内核链表 5. Linux内核定时器 第三天 1. ...

    深入分析Linux内核源代码

    自由软件Linux 操作系统源代码的开放,为我们掌握操作系统核心技术提供了良好的条 件。本书共分13 章,对Linux 内核2.4 版的源代码进行了...其中重点剖析了Linux 内核中最基础的部分:进程管理、内存管理及文件管 理。

    Linux内核解析案例详解

    内核结构和组件:了解Linux内核的整体结构和各个组件的功能,包括进程管理、内存管理、文件系统、网络协议栈等。 内核启动过程:了解Linux内核的启动过程,包括引导加载程序(bootloader)加载内核镜像、初始化内核...

    Linux内核 内容很全

    Linux内核源代码 117 11.1 怎样得到Linux内核源码 117 11.2 内核源码的编排 117 11.3 从何处看起 118 第12章 Linux数据结构 120 附录A 有用的Web和FTP站点 138 附录B 词汇表 139

    linux内核编程.pdf

    Linux内核编程 著者:Ori Pomerantz 翻译:徐辉 目 录 1.HELLO, WORLD................................................................................................三 EXHELLO.C............................

    Linux内核网络栈源代码情景分析

    《Linux内核网络栈源代码情景分析》主要对Linux1.2.13内核协议栈的全部源代码做了详细的分析,该版本所有代码都在一个文件夹中,每种协议的实现都只有一个文件与之对应,分析该版本源代码可以方便读者迅速掌握Linux...

    linux内核完全注释

    本书对Linux早期操作系统内核(v0.11)全部代码文件进行了详细全面的注释和说明,旨在使读者能够在尽量短的时间内对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux系统打下坚实的基础.书中首先以Linux...

    linux内核源码解析

    本书对 Linux 早期操作系统内核(v0.95)全部代码文件进行了详细全面的注释和说明,旨在使读者能够在尽量短的时间 内对 Linux 的工作机理获得全面而深刻的理解,为进一步学习和研究 Linux 系统打下坚实的基础。...

    Linux内核源代码导读

    内容涉及:从Makefile分析基于x86的Linux的代码结构、基于x86的Linux 2.6.26的启动、进程管理、中断处理、系统调用、调度、内存管理、进程地址空间、虚拟文件系统、ext2文件系统等等。 内容详尽、分析特彻,是学习...

    Linux操作系统内核源码目录结构详解

    在阅读源码之前,还应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和...Linux内核源码的各个目录大致与此相对应,本文将为大家介绍Linux操作系统内核源码目录结构。

Global site tag (gtag.js) - Google Analytics