(o゚▽゚)o 欢迎

不积跬步无以至千里,愿与君共勉!

Linux 系统启动过程

Linux 系统启动过程

  • 过程可以分为5个阶段
    • 内核的引导
    • 运行init
    • 系统初始化
    • 建立终端

- 用户登录系统

  • 内核引导
    • 当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动。
    • 操作系统接管硬件以后,首先读入 /boot 目录下的内核文件。
graph LR
操作系统-->/boot
  • 运行init
    • init 进程是系统所有进程的起点,没有这个进程,系统中任何进程都不会启动。
    • init 程序首先是需要读取配置文件 /etc/inittab。
graph LR
操作系统-->/boot
/boot-->init进程
  • 运行级别
    • 许多程序需要开机启动。它们在Windows叫做”服务”(service),在Linux就叫做”守护进程”(daemon)。
    • init进程的一大任务,就是去运行这些开机启动的程序。
    • Linux允许为不同的场合,分配不同的开机启动程序,这就叫做”运行级别”(runlevel)。启动时根据“运行级别”,确定要运行哪些程序。不是程序的优先级而是是否运行。
    • Linux 系统有7个运行级别 0~7
graph LR
操作系统-->/boot
/boot-->init进程
init进程-->运行级别
  • 系统初始化
    • /etc/rc.d/rc.sysinit 完成系统初始化的工作,是每一个运行级别都要首先运行的重要脚本。
    • 真正的rc启动脚本在 /etc/rc.d/init.d/ 目录下。
    • rc启动脚本一般能接受start、stop、restart、status等参数
    • /etc/rc.d/rc5.d/中的rc启动脚本通常是K或S开头的连接文件,对于以S开头的启动脚本,将以start参数来运行。
    • 而如果发现存在相应的脚本也存在K打头的连接,而且已经处于运行态了(以/var/lock/subsys/下的文件作为标志),则将首先以stop为参数停止这些已经启动了的守护进程,然后再重新运行,这样做是为了保证是当init改变运行级别时,所有相关的守护进程都将重启。
graph LR
操作系统-->/boot
/boot-->init进程
init进程-->运行级别
运行级别-->/etc/init.d
  • 建立终端
    • rc执行完毕后,返回init。这时基本系统环境已经设置好了,各种守护进程也已经启动了。
    • init接下来会打开6个终端,以便用户登录系统。
    • 显示登陆界面。
  • 用户登录系统
    • 一般来说,用户登录方式有三种:
      • (1)命令行登录
      • (2)ssh登录
      • (3)图形界面登录
graph LR
操作系统-->/boot
/boot-->init进程
init进程-->运行级别
运行级别-->/etc/init.d
/etc/init.d-->用户登录
  • Linux 关机
    • 关机指令
      • shutdown –h now
      • 或者 halt、poweroff、init 0
    • 重启系统
      • shutdown -r now
      • 或者 reboot、init6
阅读更多
版权声明:不积跬步无以至千里,愿与君共勉! https://blog.csdn.net/Crazy_Tengt/article/details/80522827
个人分类: 嵌入式Linux
想对作者说点什么? 我来说一句

Linux启动过程综述

2011年01月26日 121KB 下载

linux启动过程PDF

2009年08月10日 136KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭