码迷,mamicode.com
首页 > 系统相关 > 详细

Linux内核分析(第三周)

时间:2016-03-09 12:46:03      阅读:319      评论:0      收藏:0      [点我收藏+]

标签:

构造一个简单的linux系统menuOS.

一、简介

1.两把宝剑:中断-上下文的切换(保存现场和恢复现场) 进程-上下文的切换

2.linux-3.18.6

  arch/x86目录下的代码是我们重点关注的;

  内核启动相关代码基本在init目录下;(start_kernel函数相当于普通C程序的main函数)

  linux内核的核心代码在kernel目录下

 

二、构造一个简单的linux系统

1.wget  xxxxxxx  下载源代码

 xd -d

 tar -xvf      解压

 make i386_defconfig

编译内核

2.cd  ~~~~

   ........

   ........

 cd menu

 gcc -o init(1号用户态进程)

制作根文件系统

3............

  find

  ..........(打包)

启动menuOS系统

 

三、跟踪调试linux内核的启动过程

1.使用gdb跟踪调试linux内核的方法

技术分享

 

启动Menu程序

技术分享

技术分享

输入(gdb)file linux-3.18.6/vmlinux

在targe remote之前加载符号表

再输入(gdb)targetn remote:1234

再输入(gdb)break_startkernel

(设置断点)

技术分享

 

简单分析start_kernel

init——task,手工创建的PCB,0号进程即最终 idle进程

trap_int,涉及到一些中断

rest_init

当系统没有进程时候,需要执行就调度到idle进程。

Linux内核分析(第三周)

标签:

原文地址:http://www.cnblogs.com/java44/p/5257602.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!