原文地址

/arch。arch是architecture的缩写。arch目录下是好多个不同架构的CPU的子目录,譬如arm这种cpu的所有文件都在arch/arm目录下,X86的CPU的所有文件都在arch/x86目录下。

/block。是块的意思,在linux中block表示块设备,块设备是以数据块方式接收和发送的数据的设备。譬如说SD卡、iNand、Nand、硬盘等都是块设备。几乎可以认为块设备就是存储设备。block目录下放的是一些linux存储体系中关于块设备管理的代码。

/crypto。是加密的意思。这个目录下放了内核本身所用的加密API,实现了常用的加密和散列算法,还有一些压缩和CRC校验算法。

/Documentation。里面放了一些帮助文档。

/drivers。驱动目录,这个目录是内核中最庞大的一个目录,里面分门别类的列出了linux内核支持的所有硬件设备的驱动源代码。

/firmware。固件。什么是固件?固件其实是软件,不过这个软件是固化到IC里面运行的,为了了让计算机读取和理解从设备发来的信号的代码,就像S5PV210里的iROM代码。

/fs。fs就是file system,文件系统,里面列出了linux支持的各种文件系统的实现。

/include。头文件目录,公共的(各种CPU架构共用的)头文件都在这里。每种CPU架构特有的一些头文件在arch/***/include目录及其子目录下。在include目录之下,还有和体系结构相关的代码,在include/asm-体系结构之中。

/init。init是初始化的意思,这个目录下的代码就是linux内核启动时初始化内核的代码。

/ipc。ipc就是inter process commuication,进程间通信,里面都是linux支持的IPC的代码实现。

/kernel。kernel就是内核,内核中最核心的部分,包括进程的调度(sched.c),以及进程的创建和撤销(fork.c和exit.c)和平台相关的另外一部分核心代码在arch/***/kernel目录下。

/lib。lib是库的意思,这里面都是一些公用的库函数,注意这里的库函数和C语言的库函数不一样的。在内核编程中是不能用C语言标准库函数,这里的lib目录下的库函数就是用来替代那些标准库函数的。譬如要把字符串转成数字用atoi,内核编程中只能用lib目录下的atoi函数,不能用标准C语言库中的atoi。譬如在内核中要打印信息时不能用printf,而要用printk,这个printk就是我们这个lib目录下的。

/mm。mm是memory management,内存管理,此目录包含了与体系无关的部分内存管理代码。与体系结构相关的内存管理代码位于arch/***/mm下。

/net。该目录下是网络相关的代码,譬如TCP/IP协议栈等都在这里。

/scripts。脚本,这个目录下全部是脚本文件,这些脚本文件不是linux内核工作时使用的,而是用来辅助对linux内核进行配置编译生产的。当运行make menuconfig或者make xconfig之类的命令配置内核时,用户就是和位于这个目录下的脚本进行交互的。

/security。安全相关的代码。对计算机免于受到病毒和黑客的侵害很重要.

/sound。音频处理相关的。

/tools。linux中用到的一些有用工具

/usr。实现用于打包和压缩的cpio等。这个文件夹中的代码在内核编译完成后创建这些文件。

/virt。此文件夹包含了虚拟化代码,它允许用户一次运行多个操作系统。通过虚拟化,客户机操作系统就像任何其他运行在Linux主机的应用程序一样运行。

根目录下的一些单独文件:

COPYING:许可和授权信息。Linux内核在GPLv2许可证下授权。该许可证授予任何人有权免费去使用、修改、分发和共享源代码和编译代码。然而,没有人可以出售源代码。

CREDITS : 贡献者列表。

Kbuild:是kernel build的意思,就是内核编译的意思,设置一些内核设定的脚本。打个比方,这个脚本设定一个ARCH变量,这是开发者想要生成的内核支持的处理器类型。

Kconfig:这个脚本会在开发人员配置内核的时候用到。

MAINTAINERS:这是一个目前维护者列表,他们的电子邮件地址,主页,和他们负责开发和维护的内核的特定部分或文件。当一个开发者在内核中发现一个问题,并希望能够报告给能够处理这个问题的维护者时,这是是很有用的。

Makefile:这个脚本是编译内核的主要文件。这个文件将编译参数和编译所需的文件和必要的信息传给编译器。

README:这个文档提供给开发者想要知道的如何编译内核的信息。

REPORTING-BUGS:这个文档提供如何报告问题的信息。

linux内核源码目录结构分析的更多相关文章

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

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

  2. Linux内核源码目录说明

    Linux内核源代码位于/usr/src/linux目录下,其结构分布如图1.3所示,每一个目录或子目录可以看作一个模块,其目录之间的连线表示“子目录或子模块”的关系.下面是对每一个目录的简单描述. ...

  3. linux内核源码目录(转)

    Linux用来支持各种体系结构的源代码包含大约4500个C语言程序,存放在270个左右的子目录下,总共大约包含200万行代码,大概占用58MB磁盘空间. 源代码所有在目录:/usr/src/linux ...

  4. Linux 内核源码目录结构

    arch:包含和硬件体系结构相关的代码,每种平台占用一个相应的目录. block:块设备驱动程序 I/O 调度. crypto:常用加密和散列算法(如AES.SHA等),还有一些压缩和CRC校验算法. ...

  5. Linux内核源码目录

    linux和Android的Makefile和android.mk Uboot流程分析(未编辑完) Kernel的IIC驱动分析(未编辑完)

  6. Linux内核源码分析方法

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

  7. linux内核源码注解

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

  8. ubuntu下linux内核源码阅读工具和调试方法总结

    http://blog.chinaunix.net/uid-20940095-id-66148.html 一 linux内核源码阅读工具 windows下当然首选source insight, 但是l ...

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

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

随机推荐

  1. 可遇不可求的Question之MySqlClient的Guid 类型的映射篇

    关于 Guid 类型的映射 MySql 没有原生的 Guid 类型,一般使用 binary(16) 或者 char(36) 这两个类型.早期版本的 Connector/Net 将 binary(16) ...

  2. jdk1.8.0环境变量设置

    jdk1.8.0环境变量设置 1.jdk安装完毕 打开如下链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloa ...

  3. (二)Javascript面向对象编程:构造函数的继承

    Javascript面向对象编程:构造函数的继承   这个系列的第一部分,主要介绍了如何"封装"数据和方法,以及如何从原型对象生成实例. 今天要介绍的是,对象之间的"继承 ...

  4. python基础自学 第四天

    break和continue break:某一条件满足,退出循环,不在执行后续重复代码 continue:某一条件满足时,不执行后续重复的代码 注意:在循环中,如果使用continue这个关键字,使用 ...

  5. 让DIV随滚动条滚动

    $(window).scroll(function(event){        //JQ监听滚动条 $('DIV').css("top", $(window).scrollTop ...

  6. 无法从项目中获取SSIS包的列表

    一直做的SSIS项目,突然在生成项目的时候没有反应,crtl + alt +o 提示:无法从项目中获取SSIS包的列表,发现是最近的包没有设计数据源, 解决思路:检查最近的包,挨个运行一遍,看看有没有 ...

  7. email program (客户端)演变过程有感

    以下内容全部为个人读后感(参考百度百科的相关资料) 首先我认为电子邮件是一个非常伟大的发明,它不仅成本低,而且传输效率快! 关于它的起源,我从百度百科中看到了两种说法     1.1969年10月世界 ...

  8. 【2016年终大典】i春秋一年中不可错过的安全精华

    这是一个24小时不下课的安全技术大学堂, 每分钟250条学习状态发布, 每天迎接3万求知若渴的用户, 最高同时在线人数超过2万人: 这是一个知识分享的聚宝盆, 安全技术课程208门.2138节.427 ...

  9. 第70节:Java中xml和tomcat

    第70节:Java中xml和tomcat 前言: 哭着也要看完,字数: jdbc crud - statement dao java.sql.Driver The interface that eve ...

  10. js实现复制内容自动添加版权信息

    场景:当我从网上复制了所需代码到编辑器粘贴时,总会有如下版权信息提示   看到好几次后,在好奇心的驱使下开始搜寻答案.网上有好几种写法,最开始我找到了如下JS代码 document.body.onco ...