linux内核源代码阅读的步骤

11:22:00 AM 0 Comments

直接阅读源代码特别是比较大的程序应该遵循一定的步骤进行
第一了解程序的功能框架
第二使用源代码阅读器source insight 按照程序执行流程,入口点,实参,形参逐次阅读、
linux内核的源码结构:
arch ---
不同的处理器类型
arm
boot
linux/arch/arm/boot/compressed/head.S
head.s 自引导的代码 解压内核
kernel head.s Kernel startup code
lib
match-不同的板子 针对不同类型的板子进行的初始化代码
match-3sc2410
gpio.c
irq.c clock.c cpu.c devs.c
block
crypto
documents 文档
drivers 驱动代码
fs 文件系统
include 内核头文件
init main.c 内核初始化 包含start-kernel(),restinit(),init()等初始化函数




ipc 进程通信的程序
kernle 内核
lib 库函数
mm 关于内存处理
net 关于网络
scripts 脚本用来编译内核的
security 安全
sound 声音
usr 用户

这样可以按照从arch/arm/boot head.s -> arch/arm/kernle/head.s -> init/main.c startkernel() 这样的顺寻读
第三可以从功能模块读起,单独的模块很多驱动模块,文件模块,网络模块。
最好先阅读一些中文的资料对内核的工作有所了解以后再读内核,比如要阅读驱动模块,最好是先把驱动的有关知识学一下,linux内核是怎么管理设备的,怎么写驱动,怎么注册设备,有了大概的了解以后,找一个简单驱动程序入手。

Some say he’s half man half fish, others say he’s more of a seventy/thirty split. Either way he’s a fishy bastard.