程序笔记   发布时间:2022-07-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux系统启动流程大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

1.打开计算机电源,计算机会自动从主板的BIOS(Basic Input/Output System)读取其中所存储的程序。   这一程序通常知道一些直接连接在主板上的硬件(硬盘,网络接口,键盘,串口,并口)。现在大部分的BIOS允许你从软盘、光盘或者硬盘中选择一个来启动计算机。2.计算机将从你所选择的存储设备中读取起始的512 bytes(比如光盘一开是的512 bytes,如果我们从光盘启动的话)。这512 bytes叫做主引导记录MBR (master boot record)。3.MBR会告诉电脑从该设备的某一个分区(partition)来装载引导加载程序(boot loader)。   Boot loader储存有操作系统(OS)的相关信息,比如操作系统名称,操作系统内核 (kernel)所在位置等。常用的boot loader有GRUB和LILO。4.boot loader会帮助我们加载kernel。   kernel实际上是一个用来操作计算机的程序,它是计算机操作系统的内核,主要的任务是管理计算机的硬件资源,充当软件和硬件的接口。   操作系统上的任何操作都要通过kernel传达给硬件。Windows和Linux各自有自己kernel。狭义的操作系统就是指kernel,广义的操作系统包括kernel以及kernel之上的各种应用。   我们可以在多个分区安装boot loader,每个boot loader对应不同的操作系统,在读取MBR的时候选择我们想要启动的boot loader。这就是多操作系统的原理。小结:BIOS -> MBR -> boot loader -> kernel

kernel5.如果我们加载的是Linux kernel,Linux kernel开始工作。kernel会首先预留自己运行所需的内存空间,然后通过驱动程序(driver)检测计算机硬件。   这样,操作系统就可以知道自己有哪些硬件可用。6.随后,kernel会启动一个init进程。它是Linux系统中的1号进程(Linux系统没有0号进程)。   到此,kernel就完成了在计算机启动阶段的工作,交接给init来管理。小结: kernel -> init process

init process7.(根据boot loader的选项,Linux此时可以进入单用户模式(single user modE)。   在此模式下,初始脚本还没有开始执行,我们可以检测并修复计算机可能存在的错误)   随后,init会运行一系列的初始脚本(startup scripts),这些脚本是Linux中常见的sHell scripts。这些脚本执行如下功能:   设置计算机名称,时区,检测文件系统,挂载硬盘,清空临时文件,设置网络……   当这些初始脚本,操作系统已经完全准备好了,只是,还没有人可以登录!!!

8.init会给出登录(login)对话框,或者是图形化的登录界面。   输入用户名(比如说vamei)和密码,DONE!   在此后的过程中,你将以用户(user)vamei的身份操作电脑。  此外,根据你@R_798_10589@时的设定,Linux还会将你归到某个组(group)中,比如可以是stupid组,或者是vamei组。   所以你将是用户vamei, 同时是vamei组的组员。(注意,组vamei和用户vamei只是重名而已,就好想你可以叫Dell, 同时还是Dell公司的老板一样。你完全也可以是用户vamei,同时为stupid组的组员)总结BIOS -> MBR -> boot loader -> kernel -> init process -> login用户,组

附:应用程序启动流程1.双击了快捷方式(xxx.exe 输入给操作系统)2.操作系统根据它提供的绝对路径找到了exe程序的硬盘位置,控制其代码从硬盘加载到内存。3.操作系统控制cpu从内存中读取该程序的代码并完成执行。

大佬总结

以上是大佬教程为你收集整理的linux系统启动流程全部内容,希望文章能够帮你解决linux系统启动流程所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。