一、概述

  Linux内核庞大,但是这些文件的结构还是有章可循的,分别位于不同的目录下,各个目录功能相对独立。

二、源码结构表

目录名 描述
arch 体系结构相关的代码,对于每个架构的CPU,arch目录下有一个对应的子目录,比如arch/arm、arch/i386
block 块设备的通用函数
crypto 常用的加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法
drivers 所有的设备驱动程序,里面每一个子目录对一个一类驱动程序,比如drivers/block为块设备驱动程序,drivers/char为字符串设备驱动程序,drivers/mtd为NorFlash、NandFlash等存储设备的驱动程序
fs Linux支持的文件系统的代码,每个子目录对应一种文件系统,比如fs/jffs2、fs/ext2、fs/ext3
include 内核头文件,有基本头文件(存放在include/linux/目录下)、各种驱动或功能部件的头文件(比如include/media/、/include/mtd、include/net)、各种体系相关的头文件(比如include/asm-arm、include/asm-i386/)。当配置内核后,include/asm/是某个include/asm-xxx/(比如asm-arm)的链接
init 内核的初始化代码(不是系统的引导代码),其中的main.c文件中的start_kernel函数时内核引导后的第一个函数
ipc 进程间通信的代码
kernel 内核管理的核心代码,与处理器相关的代码位于arch/*/kernel/目录下
lib 内核用到的一些库函数代码,比如crc32.c、string.c,与处理器相关的库函数代码位于arch/*/lib目录下
mm 内核管理代码,与处理器相关的内存管理代码位于arch/*/mm
net 网络支持代码,每个子目录对应于网络的一个方面
security 安全、密钥相关的代码
sound 音频设备的驱动程序
usr 用来制作一个压缩的cpio归档文件:initrd的镜像,它可以作为内核启动后挂接的第一个文件系统
Documentation  内核文档
scripts 用于配制、编译内核的脚本文件

三、源码结构图

linux内核源码结构的更多相关文章

  1. Linux内核学习笔记2——Linux内核源码结构

    一 内核组成部分 内核是一个操作系统的核心,主要由五个部分组成:进程调度,内存管理,虚拟文件系统,网络结构,进程间通信. 1.进程调度(SCHED) 控制进程对CPU的访问.当需要选择下一个进程运行时 ...

  2. Linux基础系列—Linux内核源码目录结构

    /** ****************************************************************************** * @author    暴走的小 ...

  3. Linux内核源码分析方法

    一.内核源码之我见 Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次.如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径.我们都 ...

  4. linux内核源码注解

    轻松学习Linux操作系统内核源码的方法 针对好多Linux 爱好者对内核很有兴趣却无从下口,本文旨在介绍一种解读linux内核源码的入门方法,而不是解说linux复杂的内核机制:一.核心源程序的文件 ...

  5. Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3.0 ARMv7)

    http://blog.chinaunix.net/uid-20543672-id-3157283.html Linux内核源码分析--内核启动之(3)Image内核启动(C语言部分)(Linux-3 ...

  6. Linux内核源码分析 day01——内存寻址

    前言 Linux内核源码分析 Antz系统编写已经开始了内核部分了,在编写时同时也参考学习一点Linux内核知识. 自制Antz操作系统 一个自制的操作系统,Antz .半图形化半命令式系统,同时嵌入 ...

  7. Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7)【转】

    原文地址:Linux内核源码分析--内核启动之(4)Image内核启动(setup_arch函数)(Linux-3.0 ARMv7) 作者:tekkamanninja 转自:http://blog.c ...

  8. 和菜鸟一起学linux内核源码之基础准备篇

    来源:http://blog.csdn.net/eastmoon502136/article/details/8711104 推荐阅读:linux内核源码最初版linux内核源代码,简单易懂,适合初学 ...

  9. 【转】Linux内核源码分析方法

    一.内核源码之我见 Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次.如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径.我们都 ...

随机推荐

  1. HttpWebRequest抓数据遇到的问题

    1.有些网站访问速度慢,而且这个网站的连接数(比如全球内衣,另外对于女生各种什么内衣不懂的也可以上去查看了解哈),因为没有即时的关闭,造成抓取页面数据的时候超时也严重. 解决:把相应的HttpWebR ...

  2. 在code.org上自己写一个flappy bird游戏

    博客搬到了fresky.github.io - Dawei XU,请各位看官挪步.最新的一篇是:在code.org上自己写一个flappy bird游戏.

  3. java转c#代码工具集合

    1#:Java语言转换器助手地址:http://www.microsoft.com/en-us/download/details.aspx?id=14349 2#:Octopus的.NET转换器地址: ...

  4. Jsp学习(2)

    Jsp的三大指令 (1).include 作用:相当于把当前页面去包含页面 语法: <%@include file="/common/test.jsp" %> 实例如下 ...

  5. At-rule | CSS @ 规则

    译自:MDN(Mozilla开发者网络) At-rule 一.什么是at-rules eg:@charset "utf-8"; at-rule 是CSS样式声明,以@开头,紧跟着是 ...

  6. TM1668 Led 驱动芯片源程序

    #define P_1668DAT_In RA0 //数据输入端口 #define P_1668DAT LATA0 //数据输出端口 #define P_1668CLK LATA1 #define P ...

  7. JMeter对Oracle数据库进行压力测试

    步骤 (1)复制ORACLE的JDBC驱动JAR包文件(ojdbc14.jar)到JMeter的lib目录下. (2)运行jmeter.bat (3)建立线程组:右键测试计划->添加->T ...

  8. CentOS 6.7安装配置Ansible

    1.准备CentOS环境 yum update && yum upgrade 2.控制服务器与被管理服务器要求 Master:Python 2.6+ Slave:Python 2.4+ ...

  9. Css3 兼容新旧浏览器

    想想10年前用 IE6,火狐,遨游,谷歌等浏览器学习css时,那叫一个艰苦,各种hack各种抓耳挠腮,不是margin塌陷就是元素飞了... 当前借着css3这个东风,如果各大浏览器厂商能统一一下,也 ...

  10. [Mime] MimeEntity--MimeEntity Mime实体帮助类 (转载)

    点击下载 MimeEntity.rar 这个类是关于Mime实体的类看下面代码吧 /// <summary> /// 类说明:Assistant /// 编 码 人:苏飞 /// 联系方式 ...