Linux基础系列—Linux内核源码目录结构
2016-02-25 09:54
549 查看
/**
******************************************************************************
* @author 暴走的小哥哥
* @version V1.0.0
* @date 2016-02-25
******************************************************************************
* < Beijing university of posts and telecommunications >
*******************************************************************************
******************************************************************************
* platform exynos4412 iTOP-4412
*******************************************************************************
使用Source Insight打开源码,如下图所示,可以看到源码是树形结构。
下面我们来介绍每一个目录的作用。
arch目录是平台目录。处理器原厂提供一套Linux内核的源码,那么在这个目录下都有一套针对具体处理器CPU的子目录。每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别控制系统引导,内存管理,系统调用,动态调频,主频率设置部分等。
在arch目录中有关键的平台文件。任何一款支持Linux的处理器,都有一部分内核代码是针对特定的处理器来提供的,具体的实现就是通过平台文件。
迅为4412的平台文件,是arch→arm→mach-exynos→mach-itop4412.c。
arch→arm→boot目录,默认编译生成的内核镜像是在这个目录下。
在arch→arm→kernel目录中,有针对具体CPU处理器的代码,有相关内核特性实现方式,如信号处理等。这一部分当然是芯片厂商做好了,4412的这部分就是三星已经做好的部分。
在arch→arm→lib目录中,有一些和硬件相关库函数,后面学习驱动的时候会使用到。
在arch→arm→tools目录中,包含了生成镜像的工具。
如下图所示。
在binary目录中,有一些无源码的驱动以二进制放到该文件夹,例如一些测试版本或者不愿意公布源码,都可以将二进制文件放到这个目录中。
在drivers目录中,就是需要重点学习的部分,后面的实验都是围绕这一步进行的。
在include目录中,通用的Linux头文件都在该文件下。
如下图所示,部分目录如下。下面的这些目录,几乎不需要我们去动其中任何一个文件。
如下图所示,有内核编程的范例,实现安全性的代码,声卡设备驱动等
还有内核裁减配置工具目录tools,这一部分实现的功能是将.c编译成目标文件,连接合并成可运行的内核镜像文件等。提供给大家的内核源码一百多M,最后编译成的zImage只有不到5M,这都是依靠这个工具来实现的,后面会有针对性的实验来教大家如何使用编译工具。
******************************************************************************
* @author 暴走的小哥哥
* @version V1.0.0
* @date 2016-02-25
******************************************************************************
* < Beijing university of posts and telecommunications >
*******************************************************************************
******************************************************************************
* platform exynos4412 iTOP-4412
*******************************************************************************
Linux内核源码目录结构
Linux内核源码采用树形结构。功能相关的文件放到不同的子目录下面,使程序更具有可读行。使用Source Insight打开源码,如下图所示,可以看到源码是树形结构。
下面我们来介绍每一个目录的作用。
arch目录是平台目录。处理器原厂提供一套Linux内核的源码,那么在这个目录下都有一套针对具体处理器CPU的子目录。每个CPU的子目录,又进一步分解为boot,mm,kernel等子目录,分别控制系统引导,内存管理,系统调用,动态调频,主频率设置部分等。
在arch目录中有关键的平台文件。任何一款支持Linux的处理器,都有一部分内核代码是针对特定的处理器来提供的,具体的实现就是通过平台文件。
迅为4412的平台文件,是arch→arm→mach-exynos→mach-itop4412.c。
arch→arm→boot目录,默认编译生成的内核镜像是在这个目录下。
在arch→arm→kernel目录中,有针对具体CPU处理器的代码,有相关内核特性实现方式,如信号处理等。这一部分当然是芯片厂商做好了,4412的这部分就是三星已经做好的部分。
在arch→arm→lib目录中,有一些和硬件相关库函数,后面学习驱动的时候会使用到。
在arch→arm→tools目录中,包含了生成镜像的工具。
如下图所示。
在binary目录中,有一些无源码的驱动以二进制放到该文件夹,例如一些测试版本或者不愿意公布源码,都可以将二进制文件放到这个目录中。
在drivers目录中,就是需要重点学习的部分,后面的实验都是围绕这一步进行的。
在include目录中,通用的Linux头文件都在该文件下。
如下图所示,部分目录如下。下面的这些目录,几乎不需要我们去动其中任何一个文件。
如下图所示,有内核编程的范例,实现安全性的代码,声卡设备驱动等
还有内核裁减配置工具目录tools,这一部分实现的功能是将.c编译成目标文件,连接合并成可运行的内核镜像文件等。提供给大家的内核源码一百多M,最后编译成的zImage只有不到5M,这都是依靠这个工具来实现的,后面会有针对性的实验来教大家如何使用编译工具。
相关文章推荐
- Linux查看程序端口占用情况
- Linux下执行可执行文件
- 后台权限数据表和linux后台执行脚本命令例子
- linux sendEmail工具的安装使用
- linux中快速清空文件内容的几种方法
- linux crontab 计划任务编写
- linux下如何建立内核源码树
- linux修改root管理员密码
- linux sed 的用法
- 《Linux内核参数基础优化及隐藏文件名与内核版本》
- 关于linux多线程同时对一个fd做select
- linux awk命令详解
- unix/linux 字节对齐补齐
- linux grep命令详解
- centos关机与重启命令详解
- Linux 内核list_head container_of
- Linux 标准库下的unistd.h
- Linux服务启动报:Address already in use 解决方法:预留端口避免占用ip_local_reserved_ports
- linux僵尸进程产生的原因以及如何避免产生僵尸进程
- Linux运维细讲第一节之文件权限