Linux基础-6.系统的启动过程
Linux启动时我们会看到许多启动信息
Linux系统的启动过程并不是大家想象中的那么复杂,其过程可以分为5个阶段:
- 内核的引导
- 运行init
- 系统初始化
- 建立终端
- 用户登录系统
init程序的类型:
•SysV:init,CentOS 5之前,配置文件:/etc/inittab
•Upstart:init,CentOS 6,配置文件:/etc/inittab, /etc/init/*.conf
•Systemd:systemd,CnetOS 7,配置文件:/usr/lib/systemd/system, /etc/systemd/system
1、内核引导
当计算机打开电源后,首先是BIOS开机自检,按照BIOS中设置的启动设备(通常是硬盘)来启动
操作系统接管硬件以后,首先读入/boot目录下的内核文件

2、运行init
init进程是系统所有进程的起点,可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动
init程序首先是需要读取配置文件/etc/inittab

3、运行级别
许多程序需要开机启动。在Windows中叫做“服务”(service),在Linux中叫做“守护进程”(daemon)
init进程的一大任务,就是去运行这些开机启动的程序
但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要
Linux允许为不同的场合,分配不同的开机启动程序,这就叫做“运行级别”(run level)。也就是说,启动时根据“运行级别”,三宝要运行哪些程序

Linux系统有7个运行级别(run level):
- 运行级别0:系统关机状态,系统默认运行级别不能设为0,否则不能正常启动
- 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登录
- 运行级别2:多用户状态(没有NFS)
- 运行级别3:完全的多用户状态(有NFS),登录后进入控制台命令行模式
- 运行级别4:系统未使用,保留
- 运行级别5:X11控制台,登录后进入图形GUI模式
- 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动
4、系统初始化

5、建立终端
系统初始化后,这时基本系统环境已经设置好了,各种守护进程也已经启动了
init接下来会打开6个终端(tty1~tty6),以便用户登录系统。
同时它会显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户的身份
6、用户登录系统
一般来说,用户的登录方式有三种:
- (1)命令行登录
- (2)shh登录
- (3)图形界面登录

对于运行级别为5的图形方式用户来说,他们的登录是通过一个图形化的登录界面。登录成功后可以直接进入KDE、Gnome等窗口管理器
对于文本方式登录的情况,当我们看到mingetty的登录界面时,我们就可以输入用户名和密码来登录系统了
Linux的账号验证程序是login,login会接收mingetty传来的用户名作为用户名参数,然后login会对用户名进行分析:如果用户名不是root,且存在/etn/nologin文件,login将输出nologin文件的内容,然后退出。这通常用来系统维护时防止非root用户登录。只有/etc/securetty中登记了的终端才允许root用户登录,如果不存在这个文件,则root用户可以在任何终端上登录
/etc/usertty文件用于对用户作出附加访问限制,如果不存在这个文件,则没有其他限制
7、图形模式与文字模式的切换方式
Linux预设提供了六个命令窗口终端机让我们来登录
默认我们登录的就是第一个窗口,也就是tty1,这六个窗口分别为tty1,tty2...tty6,可以按下ctrl+alt+F1~F6来切换
如果安装了图形界面,默认情况下是进入图形界面的,此时就可以按ctrl+alt+F1~F6来进入其中一个命令窗口界面
当你进入命令窗口界面后再返回图形界面只要按下ctrl+alt+F7就回来了

8、Linux关机
在Linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机
正确的关机流程为:sync > shutdown > reboot > halt
关机指令为:shutdown,可以用man shutdown来查看帮助文档
例如:可以运行如下命令关机:
sync 将数据由内存同步到硬盘中
shutdown 关机指令
shutdown -h 10 这个命令是说计算机将在10分钟后关机,并且会显示在登录用户的当前屏幕中
shutdown -h now 立马关机
shutdown -h +10 10分钟后关机
shutdown -r now 系统立马重启
shutdown -r +10 系统10分钟后重启
reboot 重启,等同于shutdown -r now
halt 关闭系统,等同于shutdown -h now和poweroff
init 0 关机
init 6 重启
Linux基础-6.系统的启动过程的更多相关文章
- 探索 Linux 系统的启动过程
引言 之所以想到写这些东西,那是因为我确实想让大家也和我一样,把 Linux 桌面系统打造成真真正正日常使用的工具,而不是安装之后试用几把再删掉.我是真的在日常生活和工作中都使用 Linux,比如在 ...
- Linux系统的启动过程
Linux 系统启动过程 Linux系统的启动过程可以分为5个阶段: BIOS自检 内核的引导. 运行init. 系统初始化. 用户登录系统. BIOS自检: BIOS是英文"Basic I ...
- Linux:系统的启动过程
Linux系统的启动过程 过程 通电-> BIOS-> LILO/GRUB-> Kernel Boot-> init->rc.sysinit init->rc -& ...
- Linux系统在启动过程中mbr主引导程序被破坏的解决方案
首先,mbr主引导程序被破坏是指系统在启动过程中,磁头找不到/boot分区(windows的启动分区在c盘). 1)下面我们模拟主引导分区被破坏的情况:(在启动分区划分446M的存储大小) 2)重启( ...
- Linux 基础一(系统分区、格式化与挂载)
1.Linux 基础之系统分区与格式化 讲分区之前,先说一下硬盘结构:硬盘(机械)的横截面是一个圆,并且被分成等大小的扇区,每个扇区的大小是 512Byte,其中有 446Byte 被用来存储启动信息 ...
- 001---Linux系统的启动过程
Linux系统的启动过程 按下电源 开机自检(BIOS):检查cpu.内存.硬盘是否有问题,找到启动盘. MBR引导(master boot record):主引导记录,读取存储设备的512bytes ...
- Linux从头学05-系统启动过程中的几个神秘地址,你知道是什么意思吗?
作 者:道哥,10+年的嵌入式开发老兵. 公众号:[IOT物联网小镇],专注于:C/C++.Linux操作系统.应用程序设计.物联网.单片机和嵌入式开发等领域. 公众号回复[书籍],获取 Linux. ...
- 详解linux系统的启动过程及系统初始化
一.linux系统的启动流程 关于linux系统的启动流程我们可以按步进行划分为如下: POST加电自检 -->BIOS(Boot Sequence)-->加载对应引导上的MBR(boot ...
- linux系统的启动过程简要分析
接触linux系统运维已经好几年了,常常被问到linux系统启动流程问题,刚好今天有空来梳理下这个过程:一般来说,所有的操作系统的启动流程基本就是: 总的来说,linux系统启动流程可以简单总结为以下 ...
随机推荐
- 解决移动端touch事件(touchstart/touchend) 的穿透问题
情景: 我们在移动端点击事件click对比touchend会有很明显的300ms的延迟,为啥? 浏览器在 click 后会等待约300ms去判断用户是否有双击行为(手机需要知道你是不是想双击放大网页内 ...
- WPF 手机验证码 发送按钮倒计时 代码
private async void SendButton_Click(object sender, RoutedEventArgs e) { var button = sender as Butto ...
- atitit.js 与c# java交互html5化的原理与总结.doc
atitit.js 与c# java交互html5化的原理与总结.doc 1. 实现html5化界面的要解决的策略1 1.1. Js交互1 1.2. 动态参数个数1 1.3. 事件监听2 2. sen ...
- flutter 生命周期
前言:生命周期是一个组件加载到卸载的整个周期,熟悉生命周期可以让我们在合适的时机做该做的事情, flutter中的State生命周期和android以及React Native的生命周期类似. 先看一 ...
- redis 适用场景、缓存选择、java实现
redis适用场景 查询多,修改少:如国家地区信息.商品分类.数据字典 缓存选择 hibernate二级缓存.mybatis二级缓存.redishibernate二级缓存.mybatis二级缓存默认不 ...
- C# 中 DataTable 使用详解。
在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结. 一.DataTable简 ...
- .net core 配置swagger遇到的坑
Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因: Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API. Swagger 可以生成 ...
- Ubuntu做Tomcat服务:insserv: warning: script 'tomcat' missing LSB tags and overrides
https://blog.csdn.net/hanchao5272/article/details/79819460 转载自:https://blog.bbzhh.com/index.php/arch ...
- Stored Properties 与 Computed Properties
Stored Properties 与 Computed Properties About Swift Stored Properties In its simplest form, a stored ...
- 在虚拟机里安装linux(centos 6.5)系统
菜鸟一枚,也是接触linux系统没多长时间,前一阵子网上说有一个高级数据库工程师,因为rm -rf / 命令干掉了数据库-(nb),居然还跑路了!厉害了我的哥!也是闲的我蛋疼,在虚拟机里试了一批,本来 ...