虽然题目是start_kernel分析,但是由于我在ubuntu环境下配置实验环境遇到了一些问题,我觉得有必要把这些问题及其解决办法写下来。
首先我使用的是Ubuntu14.04 amx64,以下的步骤都是在此系统下的搭建步骤。
首先为了方便安装程序,需要获取root权限或使用root账号,在Ubuntu下,如果之前没有使用过root账号,可以设置root账号密码,虽不建议,但图方便,可以直接切换至root账号,方法如下:ctrl+alt+t调出控制台,sudo passwd root,输入账号密码,再设置root密码,再次确认。然后su root,输入密码,接下来就是以root账号操作了。
首先创建一个LinuxKernel目录,进入目录,下载内核,命令如下:


下载完成后,解压压缩包,命令如下:xz -d linux-3.18.6.tar.xz
tar -xvf linux-3.18.6.tar
解压完成后进入目录:


选择make选项,然后make,命令如下:


make完成之后,在LinuxKernel目录下创建rootfs目录:


接着使用git拷贝menu,发现没有安装git,安装git。


进入menu目录并编译初始化文件init:


发现缺少<sys/cdefs.h>支持:


网上查到建议安装libc6-dev-i386,


编译成功:


进入rootfs目录,复制init到rootfs目录:


制作根文件系统



安装


接着启动系统:


重新配置linux,发现缺少curses.h


安装ncurses库:


继续配置:







保存并退出。重新make编译。
到此,实验环境搭建完毕,接下来的就是分析start_kernel程序的执行过程了。
to be continued.(*^_^*)
by昆仑雪狐
原创作品转载请注明出处
《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000