虽然题目是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

Linux内核启动过程start_kernel分析的更多相关文章

  1. Linux内核启动过程概述

    版权声明:本文原创,转载需声明作者ID和原文链接地址. Hi!大家好,我是CrazyCatJack.今天给大家带来的是Linux内核启动过程概述.希望能够帮助大家更好的理解Linux内核的启动,并且创 ...

  2. Linux移植之内核启动过程start_kernel函数简析

    在Linux移植之内核启动过程引导阶段分析中从arch/arm/kernel/head.S开始分析,最后分析到课start_kernel这个C函数,下面就简单分析下这个函数,因为涉及到Linux的内容 ...

  3. 【内核】linux内核启动流程详细分析

    Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件,包括内核入口ENTRY(stext)到start_kernel间的初始化代码, 主要作用 ...

  4. 【内核】linux内核启动流程详细分析【转】

    转自:http://www.cnblogs.com/lcw/p/3337937.html Linux内核启动流程 arch/arm/kernel/head-armv.S 该文件是内核最先执行的一个文件 ...

  5. Linux的启动过程的分析

    Linux的启动过程 Linux系统从启动大哦提供服务的基本过程为:首先机器家电,然后通过MBR或者UEFI装载GRUB,再启动内核,再由内核启动服务,最后开始对外服务 CentOS7要经历四个主要阶 ...

  6. 使用gdb跟踪Linux内核启动过程(从start_kernel到init进程启动)

    本次实验过程如下: 1. 运行MenuOS系统 在实验楼的虚拟机环境里,打击打开shell,使用下面的命令 cd LinuxKernel/ qemu -kernel linux-/arch/x86/b ...

  7. linux内核启动过程

    作者:严哲璟 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 通过qemu以 ...

  8. linux内核启动以及文件系统的加载过程

    Linux 内核启动及文件系统加载过程 当u-boot 开始执行 bootcmd 命令,就进入 Linux 内核启动阶段.普通 Linux 内核的启动过程也可以分为两个阶段.本文以项目中使用的 lin ...

  9. Linux内核启动及根文件系统载入过程

    上接博文<u-boot之u-boot-2009.11启动过程分析> Linux内核启动及文件系统载入过程 当u-boot開始运行bootcmd命令,就进入Linux内核启动阶段.与u-bo ...

随机推荐

  1. ef join 用法

    var customers = DB.Customer.Join(DB.Commission, cst => cst.CommissionId,                          ...

  2. 话说Spring Security权限管理(源码)

    最近项目需要用到Spring Security的权限控制,故花了点时间简单的去看了一下其权限控制相关的源码(版本为4.2). AccessDecisionManager spring security ...

  3. 一个在线jpg png转ICO的网站

    网站地址: https://lvwenhan.com/convertico/

  4. 一些随机数据的生成(日期,邮箱,名字,URL,手机号,日期等等)

    直接上代码 import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; import jav ...

  5. linux 硬盘速度测试

    [root@iZ25oat874uZ data]# time dd if=/dev/zero of=/var/test bs=8k count=1000000 1000000+0 records in ...

  6. Jquery开灯关灯效果

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. 第五次Java作业

    作业一: 文件显示列表框. 增加了下拉式组合框,text区域设置颜色为红色. import javax.swing.*; import java.awt.*; import java.io.File; ...

  8. Raspberry Pi Resources-Using the UART

    参考:RPi Serial Connection 本文来自:http://www.raspberry-projects.com/pi/programming-in-c/uart-serial-port ...

  9. Secondary NameNode:的作用?

    前言 最近刚接触Hadoop, 一直没有弄明白NameNode和Secondary NameNode的区别和关系.很多人都认为,Secondary NameNode是NameNode的备份,是为了防止 ...

  10. 重写equals方法

    用下面的例子来进行解释. String name; int id; @Override public boolean equals(Object otherObject) { if (this == ...