作业三--Linux内核分析
一、Linux内核源码
arch目录支持不同CPU的源代码,是内核源码中比较大的文件。
fs文件系统Linux内核的源码放在kernel目录中。
二、构造一个简单的Linux系统MenuOS

三、使用gdb跟踪调试Linux内核的方法
-S freeze CPU at startup(在CPU运行前冻结)

-s 在tcp::1234窗口中创建gdb server.
在程序中设置断点,然后c运行文件,之后可以用list指令来查看函数运行的位置。

如上图,先在tcp:1234端口创建gdb sever,然后把断点设置在init函数上,最后查看init函数的位置:

如图,看到init函数在start_kernel函数的尾部。函数内容如上图。
四、简单分析start_kernel函数
首先定义了全局变量 init_task,即手工创建的PCB,0号进程即最终的idle进程。
特定内核模块都会涉及到start_kernel,因为所有的模块都会调用到init函数。
mm_init:内存管理模块初始化 sched_init调度模块初始化
rest_init:在进程内核启动时就一直存在的0号进程。
init_process是1号进程,也就是第一个用户态进程。当没有1号进程系统会找默认路径下的程序来作为一号进程。
函数运行时会当系统没有进程调用时就调度到idle进程。
0号进程创建了1号进程和其他服务的内核线程。
作业三--Linux内核分析的更多相关文章
- 分析Linux内核中进程的调度(时间片轮转)-《Linux内核分析》Week2作业
1.环境的搭建: 这个可以参考孟宁老师的github:mykernel,这里不再进行赘述.主要是就是下载Linux3.9的代码,然后安装孟宁老师编写的patch,最后进行编译. 2.代码的解读 课上的 ...
- Linux内核分析——第三周学习笔记
20135313吴子怡.北京电子科技学院 chapter1 知识点梳理 一.Linux内核源代码简介 (视频中对目录下的文件进行了简介,记录如下) arch目录 占有相当庞大的空间 arch/x86目 ...
- linux内核分析作业8:理解进程调度时机跟踪分析进程调度与进程切换的过程
1. 实验目的 选择一个系统调用(13号系统调用time除外),系统调用列表,使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 分析汇编代码调用系统调用的工作过程,特别是参数的传递的方 ...
- Linux内核分析作业7:Linux内核如何装载和启动一个可执行程序
1.可执行文件的格式 在 Linux 平台下主要有以下三种可执行文件格式: 1.a.out(assembler and link editor output 汇编器和链接编辑器的输出) ...
- linux内核分析作业:操作系统是如何工作的进行:完成一个简单的时间片轮转多道程序内核代码
计算机如何工作 三个法宝:存储程序计算机.函数调用堆栈.中断机制. 堆栈 函数调用框架 传递参数 保存返回地址 提供局部变量空间 堆栈相关的寄存器 Esp 堆栈指针 (stack pointer) ...
- 《Linux内核分析》第三周 构建一个简单的Linux系统MenuOS
[刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK THREE ...
- Linux内核分析第三周学习总结:构造一个简单的Linux系统MenuOS
韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.Linux内 ...
- Linux内核启动分析过程-《Linux内核分析》week3作业
环境搭建 环境的搭建参考课件,主要就是编译内核源码和生成镜像 start_kernel 从start_kernel开始,才真正进入了Linux内核的启动过程.我们可以把start_kernel看做平时 ...
- Linux内核分析(三)----初识linux内存管理子系统
原文:Linux内核分析(三)----初识linux内存管理子系统 Linux内核分析(三) 昨天我们对内核模块进行了简单的分析,今天为了让我们今后的分析没有太多障碍,我们今天先简单的分析一下linu ...
随机推荐
- vijos P1037搭建双塔
P1037搭建双塔 Accepted 标签:动态规划 背包 描述 2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难.为了纪念“9?11”事件, ...
- 干掉拖延症!写给新人的GTD方法
部门周会上有一个环节是每个同学讲述本周之最:最认可自己的.最反思的.最困惑的.其中,最认可自己,代表自己阶段性的成就感,在从外界取得成就感之前,首先自己要认可自己.最反思,要注意,不能只反不思,要记录 ...
- OGG
Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步. ...
- DWZ(JUI) 教程 中如何整合第三方jQuery插件
Query插件一般是$(document).ready()中初始化 $(document).ready(function(){ // 文档就绪,初始化jQuery插件| }); // 或者或缩写形 ...
- vpn连接成功后,本地无法连接外网
把在远程网络上使用默认网关前面的对勾取消掉,确定就ok啦...
- 理解C#系列 / C#语言的特性
C#语言的特性 大多数语句都已(;)结尾 用({})定义语句块 单行注释(//),多行注释(/*......*/)智能注释(///) 区分大小写 用namespace名称空间对类进行分类 在C#中的所 ...
- CTG
服务端:一.修改IP地址AIX上CICS REGION的目录/var/cics_regions/your_region_name/database/LD二.修改文件LD.stanza中的IP地址三. ...
- 第一次使用easyUI
一.项目结构图 二.在WebContent下新建resource文件夹,在resource底下创建easyui.将easyUI包放入其中. 三.在springMVC-servlet.xml写入资源路径 ...
- 会场安排问题—NYOJ14
时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工作就是安排学校 ...
- codevs 3186 队列练习2
3186 队列练习 2 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 题目描述 Description (此题与队列练习1相比改了2处:1加 ...