Linux内核启动过程start_kernel分析

Posted on 2016-03-13 23:04  昆仑雪狐  阅读(1031)  评论(0编辑  收藏  举报
虽然题目是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