目录
- 1.交叉编译工具的安装
- 2.内核源码获取
- 3.嵌入式设备带操作系统的启动过程扫盲
- 4.Linux内核源码树扫盲
- 1.内核源码简介
- 2.Linux内核源代码目录树结构
- tree指令查看
- 内核源码目录树
1.交叉编译工具的安装
参照我之前的笔记
2.内核源码获取
下载哪个版本取决于树莓派的版本,用命令查看
uname -r
官网是外网下载慢,这里是提前下载好的树莓派源内核码资源
链接: https://pan.baidu.com/s/1d8KgnJIc8QoDlZMyt4ITDw
提取码: f3d4
官网下载方式(方便以后下载树莓派其他内核版本):
官网地址:https://github.com/raspberrypi/
3.嵌入式设备带操作系统的启动过程扫盲
4.Linux内核源码树扫盲
1.内核源码简介
2.Linux内核源代码目录树结构
tree指令查看
通过安装tree指令方便看内核源码树目录。
树状显示当前文件夹下包络的文件。做第三方工具安装的时候,可用于检查包里的内容是否完整。
- 安装
sudo apt-get install tree
- 使用
tree
内核源码目录树
arch
包含和硬件体系结构相关的代码,每种平台占一个相应的目录。
每个平台中比较重要的包括:
- kernel(内核核心部分)
- mm(内存管理)
- math-emu(浮点单元仿真)
- lib(硬件相关工具函数)
- boot(引导程序)
- pci(PCI总线)
- power(CPU相关状态)
block
部分块设备(内存之类的存储介质等)驱动程序。
crypto
常用加密和散列算法(如AES、SHA等)(形成了一个标准,不需要自己去写这些算法),还有一些压缩和CRC校验算法。
Documentation
关于内核各部分的通用解释和注释。(大多看不懂)
drivers
设备驱动程序,每个不同的驱动占用一个子目录。
fs
各种支持的文件系统,如ext、fat、ntfs等。
include
头文件。其中,和系统相关的头文件被放置在linux子目录下。
init
内核初始化代码(注意不是系统引导代码)。
ipc
进程间通信的代码。
kernel
内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在arch/*/kernel目录下。
lib
库文件代码
mm
内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。
net
网络相关代码,实现了各种常见的网络协议。
scripts
用于配置内核文件的脚本文件。
security
主要是一个SELinux的模块。
sound
常用音频设备的驱动程序等。
usr
实现了一个cpio。
内核源码目录树详细结构介绍,参照博文:https://www.cnblogs.com/senior-engineer/p/4929703.html