Linux内核
Linux内核具有如下重要特性。
- 可移植性:支持硬件平台广泛,在大多数体系结构上都可以运行。
- 可裁剪性:及可以运行在超级计算机上,也可以运行在很小的设备上。
- 标准化和互用性:遵守标准化和互用性规范。
- 完善的网络支持。
- 安全性:源码开放,缺陷暴露。
- 稳定性和可靠性。
- 模块化:运行时根据系统需要加载程序
内核配置
内核自行配制:
- 尺寸小。自己定制内核可以使代码尺寸减小,运行将会更快。
- 节省内存。由于内核部分代码永远占用物理内存,定制内核可以是系统拥有更多的可用物理内存。
- 减少漏洞。不需要的功能编译进入内核可能会增加系统被攻击者利用的忌讳。
- 动态加载模块。根据需要动态的加载或者卸载模块,可以节省系统内存。但是,将来某种功能编译为模块方式会比编译到内核内的方式速度慢一些。
内核源码获取
要获得Linux内核源码,可以遵循以下步骤:
-
访问Linux内核官方网站 https://www.kernel.org/,在下载页面中选择需要的版本进行下载。
-
通过Git将内核源码克隆到本地:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
也可以使用其他镜像网站来加速下载速度,例如GitHub、阿里云等。
- 解压下载的源码:
tar -xvf linux-x.y.z.tar.gz
其中,x.y.z是内核版本号。
Linux内核源码顶层目录
以下是Linux内核源码顶层目录的表格及其说明:
目录/文件名 | 说明 |
---|---|
arch/ | 存放不同硬件架构的代码 |
block/ | 存放块设备驱动程序 |
certs/ | 存放用于数字证书验证的X.509证书 |
crypto/ | 存放密码学相关代码 |
Documentation/ | 存放内核文档 |
drivers/ | 存放硬件驱动程序 |
firmware/ | 存放外部设备的固件文件 |
fs/ | 存放文件系统相关代码 |
include/ | 存放内核头文件 |
init/ | 存放初始化代码 |
ipc/ | 存放进程间通信(IPC)相关代码 |