1. 为什么要阅读Linux内核?
(1)爱好,喜欢Linux(黑客精神)
(2)想深入理解Linux底层运行机制,对操作系统有深入理解
(3)阅读Linux内核,对计算机体系会有更深刻的认识。作为开发者,不管你从事的是驱动开发、应用开发还是后台开发,都需要了解操作系统内核的运行机制
(4)作为开发人员不应该只局限于自己的领域,需要了解调用机制
2. Linux0.01内核源码
2.1 基本介绍
Linux的内核源码可以从网上下载,解压缩后文件一般也都位于Linux目录下。内核源码有很多版本,可以从Linux0.01内核入手,总共1W行左右
内核地址:The Linux Kernel Archives
很多人害怕读Linux内核,Linux内核这样大而复杂的系统代码,阅读起来确实有很多困难,但是也不象想象的那么高不可攀
2.2 Linux0.01内核源码目录&阅读
(1)Linux0.01阅读需要懂C语言
(2)阅读源码前,应知道Linux内核源码的整体分布情况。现代的操作系统一般由进程管理、内存管理、文件系统、驱动程序和网络等组成。Linux内核源码的哥哥目录大致与此相对应
(3)在阅读方法和顺序上,有纵向和横向之分。所谓纵向就是顺着程序的执行顺序逐步进行;所谓横向,就是按模块进行,它们经常结合在一起进行
(4)对于Linux启动的代码可顺着Linux的启动顺序一步步来阅读;对于想内存管理部分,可以单独拿出来进行阅读分析。实际上这是一个反复的过程,不可能读一遍就理解
linux内核源码阅读&目录介绍&main.c说明
boot:和系统引导相关的代码
fs:存放Linux支持的文件系统代码
include:存放Linux核心需要的头文件,比如asm、linux、sys
kernel:和系统内核相关的源码
lib:存放库代码
mm:和内存管理相关的代码
time_init();初始化运行时间
tty_init();tty初始化
trap_init();陷阱门(硬件中断向量)初始化
sched_init();调度程序初始化
hd_init();缓冲管理初始化
sti();所有初始化完成后开启中断
move_to_user_mode();进入到用户模式
3. Linux内核最新版和内核升级
3.1 内核地址
下载地址:The Linux Kernel Archives
3.2 下载&解压最新版
wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.15.2.tar.xz
tar-zxvf linux-6.15.2.tar.xz
3.3 Linux内核升级应用实例
3.4 具体步骤
uname -a(查看当前的内核版本)
yum info kernel -q(检测内核版本,显示可以升级的内核)
yum update kernel(升级内核)
yum list kernel -q(查看已安装的内核