《linux内核分析》第三次课 实验作业
潘聪 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000
---------------------------------------------------------------
实验要求:
使用gdb跟踪调试内核从start_kernel到init进程启动
详细分析从start_kernel到init进程启动的过程并结合实验截图撰写一篇署名博客,并在博客文章中注明“真实姓名(与最后申请证书的姓名务必一致) + 原创作品转载请注明出处 + 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-1000029000 ”,博客内容的具体要求如下:
题目自拟,内容围绕Linux内核的启动过程,即从start_kernel到init进程启动;
博客中需要使用实验截图
博客内容中需要仔细分析start_kernel函数的执行过程
总结部分需要阐明自己对“Linux系统启动过程”的理解,尤其是idle进程、1号进程是怎么来的。
3)请提交博客文章URL到网易云课堂MOOC平台Linux内核分析MOOC课程,编辑成一个链接可以直接点击打开。
-----------------------------------------------------------------
配置环境要点如下:
1. i386_defconfig中有一个下划线(因为没看到纠结了好久。。)
2. -lpconfig中老师给的命令的连字符不对(又纠结了好久。。)
3. dbg看代码是否清晰?答案是否。又不想花大量的时间配置vim/emacs,于是用wine装了神器sourceinsight用来阅读代码
sudo apt-get install wine #中间ttf的一个协议说明对话框用tab选择到ok
自行下载sourceinsight
自行配置sourceinsight(最主要的是放大字体!另外记得熟悉各类跳转的快捷键)
新建一个新的项目,包含linux下的所有文件夹,需要一段时间收集symbols,否则就没办法自由的跳转定义和引用了(这才是用sourceinsight的理由不是么)
------------------------------------------------------------------
MenuOS启动截图如下:
--------------------------------------------------------------------------------------
kernel_start启动过程(重要部分):
首先,我们需要知道关于进程(linux中严格意义上没有线程)在linux内核中是如何表示的。
进程可以分为用户进程和内核进程,区别在于内核进程有更大的权限,当用户程序需要执行高权限的命令时,存在一个用户进程和内核进程之间的传递,从而内核进程执行关键命令后将结果返回到用户进程。
在源代码中,用户进程用task_struct表示,包含进程的基本信息,如进程号,进程状态,函数入口,堆栈等信息。而对应的内核进程用init_task表示,结构基本与task_struct一致,即init进程。这个进程是0号进程,也是第一个出现的内核进程。
与此相对的是init进程,其为1号进程,也是第一个出现的用户进程,是其他所有用户进程的父进程。其他所有的用户进程通过init进程执行do_fork()函数而得到。
在start_kernel函数中,进行了大量的内核初始化过程,包括内存、cpu、错误检测等;我们重点分析的是其启动init进程的过程。源代码因为大家都有,就不贴上来了。在此说明的是,init_task进程不在start_kernel函数中创建,而在更早的初始化过程中创建,而init进程在子函数rest_init中创建。rest_init函数在启动完init进程后并没有退出,而是继续往下执行道了cpu_startup_entry函数,从而使进程实际上进入了无限循环,也就是原执行流在fork出init进程后,把自己变成了idle进程。
转载于:https://www.cnblogs.com/codingpenguin/p/4346208.html
《linux内核分析》第三次课 实验作业相关推荐
- Linux内核分析(三)----初识linux内存管理子系统
原文:Linux内核分析(三)----初识linux内存管理子系统 Linux内核分析(三) 昨天我们对内核模块进行了简单的分析,今天为了让我们今后的分析没有太多障碍,我们今天先简单的分析一下linu ...
- Linux内核分析——第三周学习笔记
20135313吴子怡.北京电子科技学院 chapter1 知识点梳理 一.Linux内核源代码简介 (视频中对目录下的文件进行了简介,记录如下) arch目录 占有相当庞大的空间 arch/x86目 ...
- linux内核分析实验三,linux内核分析第三次实验
WIN10 CMD 启动虚拟WIFI 1.以管理员身份运行命令提示符: 快捷键win+R→输入cmd→回车 2.启用并设定虚拟WiFi网卡: 运行命令:netsh wlan set hostednet ...
- Linux内核分析 - 网络[三]:从netif_receive_skb()说起
在netif_receive_skb()函数中,可以看出处理的是像ARP.IP这些链路层以上的协议,那么,链路层报头是在哪里去掉的呢?答案是网卡驱动中,在调用netif_receive_skb()前, ...
- 《Linux内核分析》 第三周 构造一个简单的Linux系统MenuOS
Linux内核分析 第三周 构造一个简单的Linux系统MenuOS 张嘉琪 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/ ...
- [网易云课堂]Linux内核分析(九)—— 课程总结
付何山+原创作品转载请注明出处+<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000; 导读:本文分为两个部分 ...
- Linux内核分析期末总结
<Linux内核分析>期末总结 20135313吴子怡.北京电子科技学院 Chapter1 往期博客传送门 (1)计算机是如何工作的:Linux内核分析--第一周学习笔记 (2)操作系统是 ...
- linux内核启动分析 三,Linux内核分析 实验三:跟踪分析Linux内核的启动过程
贺邦 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一. 实验过程 ...
- linux内核教学的全套视频,中科大老师全程讲解Linux内核分析视频教程《附加介绍+总结》共23节课...
中科大老师全程讲解Linux内核分析视频教程<附加介绍+总结>共23节课" F4 u& {+ T) p5 G' W ]; o% m 2 q: ]. j8 I; q' D ...
- Linux 内核分析 之一:How Computer Works 实验
说明 欧长坤 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 这学期学校恰好有操 ...
最新文章
- Android 10 vivo,更快更安全,vivo产品经理宣布:iQOO将首批适配Android 10正式版
- 007-迅雷定时重启AutoHotkey脚本-20190411
- mybatis mapper.xml dtd_全栈开发踩坑之路4-用MyBatis实现服务
- 7.3. UUID()
- the fair-sounding
- python网络爬虫教程-终于明了python网络爬虫从入门到实践
- 【机器学习】搞懂机器学习的常用评价指标!
- cad画直角命令_炸了,CAD fro命令配合tk命令,极轴追踪无敌!
- Windows下如何安装MySQL服务
- java .do是什么_为什么Java Web应用程序使用.do扩展名?它从哪里来的?
- goods购物表MySQL的代码_python采用sqlachmy购物商城
- 在linux系统上启动oracle的服务
- python 横向拼接_python实现横向拼接图片
- FFmpeg命令(七)、 音频与视频合并成视频
- MATLAB---读取STL文件并解析
- 基于爬虫+人脸识别库实现指定人物自动采集
- 论文 | 科研软件 —— Microsoft VisioPro 2019安装及注册教程
- python 中文分词工具
- class.forName
- CSS学习笔记之学成在线项目(下) 3.3
热门文章
- JDK1.8 Collection知识点与代码分析--TreeMap
- [Rootkit] dll 隐藏 - VAD
- 飞机大战C++源代码
- 基于北京二手房价数据的探索性数据分析和房价评估——数据的可视化分析
- 引用网页链接的BibTEX格式
- 在网吧想免费上网又何不自己动动手呢?
- Jmeter 修改背景色和字体
- 关于 Cannot read property ‘length‘ of null 报错的解决办法
- Hibernate框架学习1
- 【修真院“纯洁”系列之十九】驱逐令