第三周 构造一个简单的Linux系统
20135331文艺
首先 在上周内容中我们学习了
计算机三个法宝:
1、存储程序计算机
2、函数调用堆栈
3、中断
本周中得知
操作系统两把宝剑:
1、中断上下文的切换:保存现场和恢复现场
2、进程上下文的切换
跟踪分析Linux内核的启动过程
在Linux的内核结构目录中 arch中x86较为重要
kernel为Linux的核心代码所在
实验部分 : (本次实验实在实验楼中完成 )

直接在命令行中输入 Linuxkernel文件 ,进入目录
再输入qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img启动文件 如下图:

系统支持三条命令:help、version和quit
接下来使用gdb调试
输入qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img -s -S
-S表示:在CPU初始化之前,冻结CPU
-s表示在:1234端口上创建一个tcp接口

在这里遇到了一个问题 在输入file linux-3.18.6/vmlinux 却找不到文件
这里重新输入指令 先进入Linuxkernel文件夹之后在调试即可出现
( : 由于网速太差的原因 在输入target remote:1234 时出现了连接超时 导致以下命令无法进行 但知道做法 (故在此引用以下别人完成的一张截图))
设置断点,把内核启动的起点start_kernel设为断点,在init/main.c文件中输入c 系统从冻结状态开始启动 
启动后如下:
分析start_kernel :
首先在init目录下的main.c中启动kernel 
init-task既手工创建的PCB 0号金城最终的idle进程 (也就是说PCB在此初始化)

init-process :1号进程 第一个用户态进程

系统没有进程需要执行时 就调度到0号进程 rest-init 一直存在
: 在0号进程创建1号进程后,一个进程创建另一个进程和线程,一生二、二生三、三生万物,系统内核就启动了
第三周 构造一个简单的Linux系统的更多相关文章
- Linux内核设计第三周——构造一个简单的Linux系统
Linux内核设计第三周 ——构造一个简单的Linux系统 一.知识点总结 计算机三个法宝: 存储程序计算机 函数调用堆栈 中断 操作系统两把宝剑: 中断上下文的切换 进程上下文的切换 linux内核 ...
- 《Linux内核分析》 第三周 构造一个简单的Linux系统MenuOS
Linux内核分析 第三周 构造一个简单的Linux系统MenuOS 张嘉琪 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/ ...
- 20135327郭皓--Linux内核分析第三周 构造一个简单的Linux系统MenuOS
Linux内核分析第三周 构造一个简单的Linux系统MenuOS 前提回顾 1.计算机是如何工作的三个法宝 1.存储程序计算机 2.函数调用堆栈 3.中断 2.操作系统的两把宝剑 中断上下文的切换 ...
- 第三周 构造一个简单的Linux系统MenuOS
一. Linux内核源代码简介 稳定版内核:Linux-3.18.6 Linux内核源代码的目录结构: arch目录:在Linux内核源代码里占有的比重很大,因为Linux内核支持很多的体系结构, ...
- linux内核分析 第三周 构造一个简单的Linux系统MenuOS
一.计算机的三个法宝 存储程序计算机,函数调用堆栈,中断二.操作系统的两把剑:1.中断上下文的切换,保存现场和恢复现场2.进程上下文的切换. 三.linux内核源代码的分析: ·arch/目录保存支持 ...
- Linux内核分析第三周——构造一个简单的Linux系统MenuOS
构造一个简单的Linux系统MenuOS 李雪琦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/UST ...
- 第三周——构建一个简单的Linux系统MenuOS
[洪韶武 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ] 第三周 构建一个 ...
- 《Linux内核分析》第三周 构建一个简单的Linux系统MenuOS
[刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK THREE ...
- 《Linux内核分析》第三周学习小结 构造一个简单的Linux系统OS
郝智宇 无转载 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 第三周 构造一个简单的Linux系统Me ...
随机推荐
- Elasticsearch Java client(ES Client 简介、Java REST Client、Java Client、Spring Data Elasticsearch)
elasticsearch系列七:ES Java客户端-Elasticsearch Java client(ES Client 简介.Java REST Client.Java Client.Spri ...
- Hadoop源码阅读环境搭建(IDEA)
拿到一份Hadoop源码之后,经常关注的两件事情就是 1.怎么阅读?涉及IDEA和Eclipse工程搭建.IDEA搭建,选择源码,逐步导入即可:Eclipse可以选择后台生成工程,也可以选择IDE导入 ...
- Ansible 连接主机显示报错的处理方案
一.在ansible安装完毕后一般需要以SSH的方式连接到需要进行管理的目标主机,一开始遇到了如下问题: 192.168.15.4 | UNREACHABLE! => { "ch ...
- zookeeper_节点数据版本号问题
转自:Simba_cheng 更新节点数据的方法: 同步方法:Stat setData(final String path, byte data[], int version) 异步方法:void s ...
- hostname命令详解
基础命令学习目录首页 原文链接:https://idc.wanyunshuju.com/cym/68.html Linux操作系统的hostname是一个kernel变量,可以通过hostname命令 ...
- poweroff命令详解
2019-02-17 基础命令学习目录首页 原文链接:https://www.cnblogs.com/Baron-Lu/p/6951297.html 在本篇中,我们会向你解释 shutdown. ...
- Hadoop错误码速查
经常遇到的exception是:PipeMapRed.waitOutputThreads(): subprocess failed with code N "OS error code 1: ...
- Task 6.2冲刺会议六 /2015-5-19
今天主要写的是登陆界面,用户状态,历史登录信息,默认用户等等.由于大部分时间都是把代码组合拳起来的过程,所以总会出现各种bug,有好大一部分不会修复.明天要继续这一部分还有熟悉一下聊天的主界面.
- vs2013 CodeLens
那东西叫 CodeLens 只有VS2013 旗舰版 (update 2及以上) 才可以用,高级版 专业版都没有.如何打开CodeLens呢?在VS菜单栏 >> 工具 >> ...
- 学习率(Learning rate)的理解以及如何调整学习率
1. 什么是学习率(Learning rate)? 学习率(Learning rate)作为监督学习以及深度学习中重要的超参,其决定着目标函数能否收敛到局部最小值以及何时收敛到最小值.合适的学习率 ...