Linux系统

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

Linux操作系统诞生于1991 年10 月5 日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。

严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。

如何启动

我们平时在工作或学习中经常使用Linux操作系统,但是他是如何从关机状态启动的呢?

BIOS

BIOS(Basic Input/Output System)基本输入输出系统。计算机在开机启动时,首先会读取这个系统,然后BIOS上会有一个加电自检(POST)的过程。加电自检过程其实就是检查计算机硬件的过程,包括检查CPU和内存,检查计算机最基本的组成单位(控制器,运算器,存储器),还会检查其他硬件。如果没有异常,就加载BIOS程序到内存中。BIOS加载到内存中,他的一个主要功能是存储了磁盘的启动顺序,BIOS会根据启动顺序去查找磁盘头的MBR信息,并加载和执行MBR中的BootLoader程序。一旦BootLoader程序被检测并加载到内存中,BIOS就将控制权交给BootLoader程序。

MBR

MBR(Master Boot Record)主引导记录。磁盘上第0磁道第一个扇区被称为MBR。他的大小是512字节,里面存放了预启动信息、分区表信息。MBR大体可分为两个部分:第一部分为引导区,占了446个字节。第二部分为分区表,占了64个字节,记录硬盘的分区信息。最后两字节用于MBR的有效性检验。 预引导区的作用之一是找到标记为活动(ACTIVE)的分区,并将活动分区的引导区读入内存。

GRUB

GRUB(Grand Unified Bootloader)多系统启动程序,其执行过程可分为三个步骤:Stage1:它的主要工作就是查找并加载第二段Bootloader程序(stage2),但系统在没启动时,MBR根本找不到文件系统,也就找不到stage2所存放的位置,因此,就有了stage1_5

Stage1_5:该步骤就是为了识别文件系统

Stage2:GRUB程序会根据/boot/grub/grub.conf文件查找Kernel的信息,然后开始加载Kernel程序,当Kernel程序被检测并在加载到内存中,GRUB就将控制权交接给了Kernel程序。

Kernel

Kernel,内核。kernel是Linux系统最主要的程序,kernel的文件很小,只保留了最基本的模块,并以压缩文件的形式存储在硬盘中,当GRUB将kernel读进内存,内存开始解压缩内核文件。解压后,系统会调用start_kernel()函数来启动一系列的初始化函数并初始化各种设备,完成Linux核心环境的建立。至此,Linux内核已经建立起来了,基于Linux的程序应该可以正常运行了。

在 start_kenrel()的结尾,内核通过kenrel_thread()创建出第一个进程(用户空间的进程),执行/sbin/init,之后就将控制权交接给了init程序。

Init

Init,初始化。进行OS初始化操作, 实际上是根据/etc/inittab(定义了系统默认运行级别)设定的动作进行脚本的执行,第一个被执行的脚本为/etc/rc.d/rc.sysinit,这个是真正的OS初始化脚本,它做的工作非常多,包括设定PATH、 设定网络配置(/etc/sysconfig/network)、启动swap分区、设定/proc等等。

执行完后,根据配置的启动级别,执行对应目录底下的脚本,最后执行/etc/rc.d/rc.local这个脚本,至此,系统启动完成。

Runlevel

runlevel,运行级别,不同的级别会启动的服务不一样,init会根据定义的级别去执行相应目录下的脚本,Linux的启动级别分为以下几种

  0:关机模式

  1:单一用户模式(直接以管理员身份进入)

  2:多用户模式(无网络)

  3:多用户模式(命令行)

  4:保留

  5:多用户模式(图形界面)

  6:重启

  在不同的运行级别下,/etc/rc.d/rc这个脚本会分别执行不同目录下的脚本

  • Run level 0 – /etc/rc.d/rc0.d/
  • Run level 1 – /etc/rc.d/rc1.d/
  • Run level 2 – /etc/rc.d/rc2.d/
  • Run level 3 – /etc/rc.d/rc3.d/
  • Run level 4 – /etc/rc.d/rc4.d/
  • Run level 5 – /etc/rc.d/rc5.d/
  • Run level 6 – /etc/rc.d/rc6.d/

linux 磁盘检测卡主_Linux启动过程相关推荐

  1. linux开机到登陆的流程图,1-描述linux开机到登陆界面的启动过程.docx

    1-描述linux开机到登陆界面的启动过程详解课件 简要描述linux系统从开机到登陆界面的启动过程(面试用)简述:1.开机BIOS自检2.MBR引导3.grub引导菜单4.加载内核kernel5.启 ...

  2. Linux设备开机卡主

    1 linux 设备开机卡主 卡在了执行 /etc/rc.d/rc.local  中设置的开机启动命令中了. 解决方法 参考这篇文档修改grub https://m.linuxidc.com/Linu ...

  3. centos7 启动流程图_Linux启动过程详解

    Linux启动过程详解 作者:江远航 一.启动流程图如下 图1 Linux启动流程图 BIOS ---> MBR ---> Kernel---> Init 二.Linux启动顺序 一 ...

  4. rhel系统启动过程_Linux启动过程详解

    一.Linux系统开机启动过程 第一步:开机自检,加载BIOS 第二步:读取MBR 第三步:Boot Loader grub引导菜单 第四步:加载kernel内核 第五步:init进程依据initta ...

  5. Linux内核移植之四:内核启动过程

    内容来自 韦东山<嵌入式Linux应用开发完全手册> 与移植U-Boot的过程相似,在移植Linux之前,先了解它的启动过程.Linux的启动过程可以分为两部分:架构/开发板相关的引导过程 ...

  6. Linux磁盘检测工具smartctl的使用和分析

    1          编写目的 在如今大数据的环境中,磁盘的性能和稳定性是非常重要的一个业务因素.在Linux系统中,smartctl是较为常用的磁盘检测工具. 本文基于Linux系统中smartct ...

  7. rufus中gpt和mrb磁盘_UEFI/BIOS/MBR/GPT启动过程详解与常见系统启动问题

    做系统一大头疼事情就是UEFI/BIOS/MBR/GPT等等的选择.系统平台和硬件日新月异,基本上中文站的解释正确性参差不齐,出了问题也查不到正确解决方案,我也遇到过很多次系统启动的问题(这就是为什么 ...

  8. linux磁盘检测和修复

    显示磁盘和闪存的信息,以及分区信息 [root@bogon shell]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 se ...

  9. linux boot 缺省状态,Bootload启动过程全描述(uclinux)【转载】

    一.Bootloader 理论上,uClinux引导时并非一定需要一个独立于Kernel Image的Bootloader Image.然而,将Bootloader与Kernel分开设计能够使软件架构 ...

最新文章

  1. math.floor()和math.ceil()的使用
  2. android 图片墙拼贴,三步搞定 用APP打造图片文字拼贴效果
  3. c#制作发行版 vs_vs2019制作多项目工程模板 - Jackie Hao
  4. VSCode调试Python时终端输出中文乱码解决方法1
  5. LA 6047Perfect Matching(回文串哈希)
  6. Linux下用C获取so库所在路径
  7. Atitit 图像处理之仿油画效果 Oilpaint油画滤镜 水彩画 漫画滤镜 v2
  8. JVM-三色标记算法
  9. CSDN博客上传的图片水印去除
  10. 华为在俄罗斯开设基于ARM技术的数据中心:技术之外,环境使然?
  11. MLY -- 14.Evaluating multiple ideas in parallel during error analysis
  12. ERP系统的备份考虑
  13. 华生:救市之争的误导和政策定位
  14. 【草稿待续】统一的嵌入式软件编程模型——驱动
  15. centos破解root密码
  16. java 压缩 tar_Java将文本文件压缩为tar.gz
  17. 普通域账户不能运行金山打字通的解决方案
  18. 综合管廊电气设计思路及分析
  19. Bytebridge数据采集标注平台(Saas型)
  20. 【V-MoE】论文学习笔记

热门文章

  1. 【Leetcode】创建二叉树
  2. [云炬创业学笔记]第二章决定成为创业者测试9
  3. [云炬创业管理笔记]第三章测试2
  4. 03- 网络最新流行
  5. [云炬创业基础笔记] 第四章测试12
  6. 云炬Android开发报错处理教程 解决Android Studio kotlin等依赖下载慢,下载超时失败的问题
  7. 窥探黑盒-卷积神经网络的可视化
  8. 算法导论-排序算法-分治法
  9. code ro rw zi 编译的一个ARM的程序,编译结果中的一句话
  10. const函数和const对象