1、如何编译内核
tar -Jxvf linux-3.5-20170929.tar.xz -C /~
解压内核压缩包至自己的家目录
建议删除arch目录与我们无关的其他架构的文件夹
通过./config生成Makefile,但是因为我们初学内核,不懂得用
meumconfig选择哪些选项编译进入内核,故./millet4412_linux_defconfig来生成我们的Makefile通过make -j 4
开启内核4个线程去编译我们的内核。
最终提示 Kernel: arch/arm/boot/zImage is ready
2、追踪源码
Linux源码的追踪会一直伴随着我们整个的内核学习。故学会追踪源码是必须的。修改vimrc 第二行为 linux-3.5下cags的绝对路径
首先下载ctags工具。通过apt直接下载即可。
解压cscope-15.8b.tar.gz并./configf make make install安装(可能出问题,根据提示安装对应的包,每次失败执行 make distclean)
taglist_46.zip (unzip xxx -d text) 解压
cp doc/taglist.txt /usr/share/vim/vim74/doc/
cp plugin/ /usr/share/vim/vim74/plugin/
最后修改vimrc 第二行为 linux-3.5下cags的绝对路径
可以通过 vim -t strlen 在任意目录下随便的追踪内核代码
3、Linux内核文件初识
init 内核的启动程序
fs文件系统相关
Documentation为文档(没有man手册了,在内核阶段)
include是与硬件接口无关的函数声明
kernel 内核支持中断 电源 进程 时间管理 调度
arch/arm/includ 硬件相关的函数声明
apc 进程通信
lib 与体积结构无关的库文件
mm 内存管理相关代码
net 协议栈
sound 声卡
scipts脚本