Linux源码的获取
获取方式
网上下载:
- github下载:https://github.com/torvalds/linux
- 官网下载:https://www.kernel.org/
Linux下:
- 命令下载:已Ubuntu为例:
- apt-cache search linux-source:查找Linux源码
- apt-get install linux-source-x.xx.x:选择刚才查找的源码
- cd /usr/src:查看下载后的代码
- git:通过git命令下载
- 首先配置git:详细看另一篇文章;
- 去官网查找最新的Linuxkernel的git地址;
- git clone “git地址”:下载即可;
目录树架构
- /arch:architecture缩写,意思为架构。arch目录下为不同架构CPU的子目录,例如ARM等等;
- /block:块设备,以块为单位进行访问,例如SD卡、硬盘等,block下放的是一些Linux存储体系中关于块设备管理的代码;
- /certs:证书相关;
- /crypto:加密算法实现C代码;
- /Documentation:内核相关说明文档;
- /drivers:驱动目录,包含Linux内核所支持的所有硬件设备的驱动源代码;
- /fs:file system,文件系统,Linux内核所支持的各类文件系统;
- /include:头文件目录,公用文件头文件,处理器相关的头文件一般在arch/xxx/include中;
- /init:初始化,Linux内核启动时的初始化内核的代码;
- /ipc:inter process communication,进程间通信,Linux所支持的IPC代码的实现;
- /kernel:内核代码,比较核心的代码,包括进程调度、定时器等;
- /lib:相关公用的库函数,与处理器相关的函数代码位于arch/xxx/lib;
- /LICENSES:许可证相关;
- /mm:memory management,内存管理相关代码;
- /net:网络相关代码,实现各类常见的网络协议,例如TCP等协议;
- /samples:示例代码;
- /scripts:脚本文件代码,一般是用来辅助内核的配置和编译的;
- /security:安全相关代码;
- /sound:音频处理相关代码;
- /tools:Linux中的一些常用工具
- /usr:initramfs相关的代码,
- /virt:内核虚拟机相关;
- COPYING:许可和授权信息;
- CREDITS:贡献者列表;
- Kbuild:内核设定脚本,对内核中的变量进行设定;
- Kconfig:配置哪些文件编译,哪些不编译;
- Makefile:将编译参数、所需文件和必要信息传递给编译器;
- MAINTAINERS:维护人员信息;