转自 <http://blog.itpub.net/241185/viewspace-254982/>
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内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和...Linux内核源码的各个目录大致与此相对应,本文将为大家介绍Linux操作系统内核源码目录结构。
linux目录结构图解,linux目录结构图解,linux目录结构图解
#### 二、源码目录结构解析 Linux内核源码包含大量的目录和文件,每个目录都有其特定的功能和意义。下面详细介绍几个重要的目录: 1. **arch/**:这个目录包含了不同架构(如x86、ARM等)相关的代码。其中`arch/...
MaxWit Linux源码目录结构较为复杂,主要包括以下关键部分: - `arch/`:包含与架构相关的文件。 - `drivers/`:包含各种硬件驱动程序。 - `include/`:包含内核编译过程中需要的头文件。 - `kernel/`:包含内核的...
Linux内核源码目录结构 Linux内核源码采用树形结构。功能相关的文件放到不同的子目录下面,使程序更具有可读行。 使用Source Insight打开源码,如下图所示,可以看到源码是树形结构。 下面我们来介绍每...
在“linux下连同目录结构一起复制的bash脚本”这个场景中,我们需要创建一个名为`copyd`的脚本,该脚本会接收两个参数:源目录和目标目录。这里是一个简单的示例脚本: ```bash #!/bin/bash # 检查参数数量是否...
在Ubuntu中,目录结构遵循了POSIX标准和FHS(Filesystem Hierarchy Standard),这是一种统一的组织方式,使得不同的Linux发行版之间具有一定的兼容性。 首先,让我们从根目录`/`开始,它是整个文件系统层次结构的...
4. **文件系统**:Linux 0.12支持了基本的虚拟文件系统(VFS),虽然功能有限,但已经包含了文件打开、关闭、读写等基本操作,以及目录结构的管理。 5. **设备驱动**:早期的Linux内核包含了基本的硬件驱动,如字符...
Android源码目录结构是Android系统开发的核心知识之一,下面将详细解析Android源码目录结构中的关键知识点。 首先,Android源码目录结构按照功能模块被划分为多个子目录,这些子目录包括: 1. bionic:这是Android...
"nxp源码(官方原版uboot以及linux源码)" 这个标题指明了我们正在处理的是与NXP公司相关的开源项目源代码,其中包括两个关键部分:U-Boot和Linux内核。NXP是一家全球知名的半导体公司,尤其在嵌入式处理器和微控制...
下面将详细介绍Linux 0.11内核源码的主要组成部分及其工作原理。 一、进程管理 在Linux 0.11中,进程管理主要负责创建、调度和销毁进程。源码中的`process.c`文件包含了这部分的核心代码。它实现了基于轮转的简单...
源码的结构复杂,包含众多的文件和目录,每一部分都有其特定的功能。 7. Linux内核编译:下载Linux内核源码后,开发者需要进行编译工作才能生成可以在自己的硬件上运行的内核。编译过程包含配置内核选项、编译内核...
在分析Linux源码时,可以先从`include/`目录下的头文件开始,了解基本的数据结构和函数原型;然后关注`kernel/`目录下的核心模块;接着研究`drivers/`目录下的设备驱动代码;对于网络相关,可以查看`net/`目录。同时...
### Android源码目录结构详解 在深入探讨Android源码的目录结构之前,我们先了解一点背景知识:Android作为全球最广泛使用的移动操作系统之一,其源码庞大且复杂,覆盖了从用户界面到底层硬件驱动的各个方面。对于...
### Android源码目录结构详解 #### 一、总览 Android 源码是一个庞大的工程,涉及多个领域,包括但不限于操作系统、硬件驱动、虚拟机、应用程序等。理解其目录结构对于深入研究Android系统至关重要。 #### 二、...
尽管没有现代Linux中那么复杂,但它已经实现了文件权限和目录结构的概念。 5. **设备驱动**: 早期的Linux包含了对基本硬件设备的驱动,如键盘、磁盘和串行口。这些驱动程序是操作系统与硬件交互的桥梁,使得操作...
在本文中,我们将探讨 Linux 源码树的基本结构、主要组成部分以及设备驱动相关的知识,同时也会涉及源码编译的过程。 1. **Linux 源码树结构** Linux 源码树通常按照模块进行组织,包括以下关键目录: - `arch`: ...
首先,Linux源码的结构清晰,由多个子目录组成,如arch、block、fs、include、kernel等。`arch`目录包含不同体系架构的代码,如x86、arm等,展示了Linux如何支持多平台。`fs`目录则包含了各种文件系统的实现,如ext4...
Linux源码是操作系统的核心部分,由C语言编写而成,它为硬件提供了抽象层,使得开发者可以编写不依赖底层硬件细节的应用程序。Linux内核的源码对于理解操作系统的工作原理、进行系统级编程以及定制和优化操作系统...
首先,我们来看看Linux内核1.0的源码结构。源码通常被组织为多个子目录,包括“arch”(架构)、“include”(头文件)、“drivers”(驱动程序)、“fs”(文件系统)、“init”(初始化)和“mm”(内存管理)等。...