一、Linux系统的启动过程

1、POST开机自检
linux开机加电后,系统开始开机自检,该过程主要对计算机各种硬件设备进行检测,如CPU、内存、主板、硬盘、CMOS芯片等,如果出现致命故障则停机,并且由于初始化过程还没完成,所以不会出现任何提示信号;如果出现一般故障则会发出声音等提示信号,等待故障清除;若未出现故障,加电自检完成。

2、加载主引导目录(MBR)
开机自检完成后,CPU首先读取位于CMOS中的BIOS程序,按照BIOS中设定的启动次序(Boot Sequence)逐一查找可启动设备,找到可启动的设备后,去该设备的第一个扇区中读取MBR。 CPU将MBR读取至内存,运行GRUB(Boot Loader常用的有GRUB和LILO两种,现在常用的是GRUB),GRUB会把内核加载到内存去执行。

3、加载内核,初始化initrd
CPU将MBR读取至内存,运行GRUB(Boot Loader常用的有GRUB和LILO两种,现在常用的是GRUB),GRUB会把内核加载到内存去执行。

4、进行系统初始化
内核并加载进内存运行并以读写方式挂载完根文件系统后,执行第一个用户进程init,包括加载设备、初始化硬件、检查文件系统、设置系统运行级别等。

5、打印登录提示符
系统初始化完成后,init给出用户登录提示符(login)或者图形化登录界面,用户输入用户和密码登陆后,系统会为用户分配一个用户ID(uid)和组ID(gid),这两个ID是用户的身份标识,用于检测用户运行程序时的身份验证。登录成功后,整个系统启动流程运行完毕!

二、Linux系统的一般执行过程

系统启动后,用户可以通过图形化界面或终端窗口来和Linux交互,从而启动用户程序,在这一过程中,背后的Linux系统中主要涉及的操作为进行的执行和切换,其主要步骤如下(从进程x切换到进程y):

正在运行的用户态进程X
发生中断(包括异常、系统调用等),CPU完成以下动作:
当前CPU上下文压入进程X的内核堆栈。
加载当前进程内核堆栈相关信息,跳转到中断处理程序,即中断执行路径的起点。
保存现场,此时完成了中断上下文切换,即从进程X的用户态到进程X的内核态。
中断处理过程中或中断返回前调用了schedule函数,其中的switch_to做了关键的进程上下文切换。将当前进程X的内核堆栈切换到进程调度算法选出来的next进程(本例假定为进程Y)的内核堆栈,并完并完成了进程上下文所需的EIP等寄存器状态切换。详细过程见前述内容。
执行进程y(y曾经也以相同的步骤被切换出去过)。
恢复现场,与(3)中保存现场相对应。注意这里是进程Y的中断处理过程,而(3)中保存现场是在进程X的中断处理过程,因为内核堆栈从进程X切换到进程Y了。
从Y进程的内核堆栈中弹出(2)中硬件完成的压栈内容。此时完成了中断上下文的切换,即从进程Y的内核态返回到进程Y的用户态。
继续运行用户态进程y。
具体的过程在另一篇博客 Linux操作系统分析Lab5:深入理解进程切换 中已经进行分析,这里不再赘述。

三、从CPU和内存的角度看Linux系统的执行

(1)从CPU执行指令的角度

(2)从内存的角度来看

四.课程收获

该课程对我而言最大的收获主要分成两个部分。第一个最大的收获就是学习了很多关于linux的基本命令,比如文件夹的建立,在不同文件夹之间的转换,解压缩文件,压缩文件,并且在安装不同的linux内核时反复使用熟悉了这些命令。除此之外,由于我使用的是远程的云主机进行实验,所以在实验的过程中,我掌握了远程连接主机的方法。孟老师在教授我们这个课程时,让我们使用vscode来阅读linux源码,在这个过程中,我学习到了很多关于vscode使用的小技巧,以及基本的gdb调试方案。

两位老师在课上对Linux系统下函数执行过程中栈和寄存器的变化、系统的中断和异常、虚拟化技术等进行了深入的分析,使得我对Linux操作系统更加了解。

Linux操作系统本身是一个优秀且庞大的项目,通过本课程的学习,我学会了如何阅读和理解这样一个大型项目,如何正确的调试大型项目。另外,项目本身也有着优秀的源码,通过阅读源码,使得我学到了更多关于系统项目的编写规范和技巧。

学号:467

Linux操作系统分析——课程总结报告相关推荐

  1. Linux操作系统分析-课程总结报告

    一.结合虚拟化技术分析Linux系统的一般执行过程 a. 一个 Linux 系统在虚拟化技术中的一般执行过程: 用户登录:当用户登录到 Linux 系统时,系统会创建一个用户会话. 系统启动:Linu ...

  2. Linux操作系统分析--课程总结报告

    一.结合虚拟化技术分析Linux系统的一般执行过程 1.Linux系统的一般执行过程 最一般的情况:正在运行的用户态进程X切换到运行用户态进程Y的过程 1)正在运行的用户态进程X 2)发生中断--sa ...

  3. linux操作系统分析 课程,“Linux操作系统”课程分析与项目化改造

    摘要:性能卓越的开源系统Linux在当今社会具有极其重要的教育资源价值.本文通过引入中小企业转平台项目中的真实案例,重新整合设计出既能体现职业岗位真实工作任务,又能涵盖培养技能所需知识模块的综合项目, ...

  4. linux操作系统分析 课程,《Linux操作系统》课程的现状与分析

    第卷第期 安 徽 水利 水 电职 业技 术 学 院 学报 年 月 上() <操 作 系统 >课 程 的现状 与分 析 李俊娇 , 冉 兆昶 , 甘琳瑛 (蚌埠经济技术职业学 院 ,安徽 蚌 ...

  5. linux网卡配子接口,Linux 操作系统分析 中国科学技术大学计算机系 陈香兰( 0512 - 87161312 ) Autumn 2010....

    Linux 操作系统分析 中国科学技术大学计算机系 陈香兰( 0512 - ) Autumn 2010 11/23/09 Linux 操作系统分析 2/92 主要内容  进程描述符  进程切换  ...

  6. Linux操作系统分析------期末总结、感谢老师、祝我们越来越好

    王雪 原创作品转载请注明出处 <Linux内核分析>MOOC课程 http://mooc.study.163.com/course/USTC-1000029000 一.博客目录: 1.第一 ...

  7. linux操作系统分析实验—基于mykernel的时间片轮转多道程序实现与分析

    linux操作系统分析实验-基于mykernel的时间片轮转多道程序实现与分析 学号384 原创作业转载请注明出处+中国科学技术大学孟宁老师的Linux操作系统分析 https://github.co ...

  8. 【Linux操作系统分析】设备驱动处理流程

    1 驱动程序,操作系统,文件系统和应用程序之间的关系 字符设备和块设备映射到操作系统中的文件系统,由文件系统向上提供给应用程序统一的接口用以访问设备. Linux把设备视为文件,称为设备文件,通过对设 ...

  9. Linux操作系统分析 | 深入理解系统调用

    Linux操作系统分析 | 深入理解系统调用 实验要求 1.找一个系统调用,系统调用号为学号最后2位相同的系统调用 2.通过汇编指令触发该系统调用 3.通过gdb跟踪该系统调用的内核处理过程 4.重点 ...

最新文章

  1. 2022-2028年中国HDPE膜行业市场研究及投资发展分析报告
  2. 超实用总结:AI实践者需要用到的10个深度学习方法
  3. 科技领域看不见的手如何影响企业未来命运
  4. python能做游戏吗-python能开发游戏吗
  5. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】...
  6. P6102-[EER2]谔运算【位运算】
  7. 【安全系列】IPSEC ×××之安全基础篇
  8. 使用宏破解EXCEL工作表保护密码的方法
  9. 寻找http://localhost/phpmyadmin出现的问题:HTTP 错误 404.0 - Not Found 您要找的资源已被删除、已更名或暂时不可用
  10. webstorm 2017 激活破解方法大全
  11. FT232H USB转串口,I2C,JTAG高速芯片
  12. 天堂2 mysql一闪而过_天堂2革命闪退怎么办_天堂2革命彻底解决游戏闪退方法_手心游戏...
  13. Codeforces Round #670 (Div. 2) C D E
  14. 上位机、下位机的初略解释
  15. python是解释性语言!
  16. matlab 求已知概率密度函数的随机数生成
  17. 计算机博士论文 评阅意见,博士论文评阅意见
  18. umi+@umijs/plugin-qiankun的应用
  19. 艾泰转发规则虚拟服务器,艾泰HiPER 510典型配置案例详解
  20. vim教程之基本使用

热门文章

  1. java模拟双色球彩票程序
  2. 新版CSDN设置主题背景
  3. 向EXCEL模板文件中写入数据和插入新行
  4. CentOS下安装JDK8
  5. 因变量顺序类别的回归(R语言)
  6. c语言贪吃蛇程序尾巴掉了,c语言贪吃蛇 要怎么重新开始 要怎么写
  7. 【NOIP2013提高组】火柴排队
  8. 2015年传智播客java_2015年的Java –重大事件
  9. (7) IFC构件的位置信息 (Industry Foundation Class)
  10. Openwrt 开启openvpn服务访问内网