【Linux基础】1. Linux 启动过程

news2024/11/17 23:34:37

文章目录

  • 【 1. 内核的引导 】
  • 【 2. 运行init 】
    • 运行级别
  • 【 3. 系统初始化 】
  • 【 4. 建立终端 】
  • 【 5. 用户登录系统 】
  • 【 6. 图形模式与文字模式的切换方式 】
  • 【 7. Linux关机 】

  • Linux系统的启动过程分为 5个阶段
    (1)内核的引导。
    (2)运行 init。
    (3)系统初始化。
    (4)建立终端 。
    (5)用户登录系统。

【 1. 内核的引导 】

  • 当计算机打开电源后,首先是 BIOS(Basic Input Output System,基本输入输出系统)开机自检,按照 BIOS 中设置的启动设备(通常是硬盘)。
  • 操作系统接管硬件以后,首先 读入 /boot 目录下的内核文件
    在这里插入图片描述

【 2. 运行init 】

  • init (初始化)进程是系统所有进程的起点,我们可以把它比拟成系统所有进程的老祖宗,没有这个进程,系统中任何进程都不会启动。
  • init 程序首先是需要 读取配置文件 /etc/inittab
    在这里插入图片描述

运行级别

  • 许多程序需要开机启动。它们在Windows叫做"服务"(service),在Linux就叫做 “守护进程”(daemon)
  • init进程的一大任务,就是去运行这些开机启动的程序。
    但是,不同的场合需要启动不同的程序,比如用作服务器时,需要启动Apache,用作桌面就不需要。
  • Linux允许为不同的场合,分配不同的开机启动程序,这就叫做 “运行级别”(runlevel)。也就是说, 启动时根据"运行级别",确定要运行哪些程序。
    在这里插入图片描述
  • Linux系统有7个 runlevel 运行级别 :
级别作用
运行级别0系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
运行级别1单用户工作状态,root权限,用于系统维护,禁止远程登录
运行级别2多用户状态(没有NFS)
运行级别3完全的多用户状态(有NFS),登录后进入控制台命令行模式
运行级别4系统未使用,保留
运行级别5X11控制台,登录后进入图形GUI模式
运行级别6系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

【 3. 系统初始化 】

  • 在init的配置文件中有这么一行: si::sysinit:/etc/rc.d/rc.sysinit 它调用执行了/etc/rc.d/rc.sysinit,而 rc.sysinit 是一个bash shell的脚本,它主要是完成一些系统初始化的工作,rc.sysinit 也是 每一个运行级别都要首先运行的重要脚本,它主要完成的工作有:激活交换分区,检查磁盘,加载硬件模块以及其它一些需要优先执行任务。
  • cppl5:5:wait:/etc/rc.d/rc 5这一行表示以5为参数运行/etc/rc.d/rc(其中,/etc/rc.d/rc是一个Shell脚本,它接受5作为参数)去执行/etc/rc.d/rc5.d/目录下的所有的 rc启动脚本, /etc/rc.d/rc5.d/目录下的所有的 rc启动脚本的特点
    • 这些启动脚本实际上都是一些连接文件,而不是真正的rc启动脚本,真正的rc启动脚本实际上都是放在/etc/rc.d/init.d/目录下。
    • 而这些rc启动脚本有着类似的用法,它们一般能接受start、stop、restart、status等参数。
    • 通常是K或S开头的连接文件,对于以 S 开头的启动脚本,将以start参数来运行;而如果发现存在相应的脚本也存在K打头的连接,而且已经处于运行态了(以/var/lock/subsys/下的文件作为标志),则将首先以stop为参数停止这些已经启动了的守护进程,然后再重新运行,这样做是为了保证是当init改变运行级别时,所有相关的守护进程都将重启。
  • 在每个运行级中将运行哪些守护进程,用户可以通过chkconfig或setup中的"System Services"来自行设定。
    在这里插入图片描述

【 4. 建立终端 】

  • rc执行完毕后,返回init,这时基本系统环境已经设置好了,各种守护进程也已经启动了。
  • init接下来会 打开6个终端,以便用户登录系统。在inittab中的以下6行就是定义了6个终端:
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6
  • 从上面可以看出在2、3、4、5的运行级别中都将以respawn方式运行mingetty程序,mingetty程序能打开终端、设置模式。
  • 同时它会 显示一个文本登录界面,这个界面就是我们经常看到的登录界面,在这个登录界面中会提示用户输入用户名,而用户输入的用户将作为参数传给login程序来验证用户的身份。

【 5. 用户登录系统 】

在这里插入图片描述

  • 一般来说,用户的登录方式有三种:
    (1)命令行登录
    (2)ssh登录
    (3)图形界面登录
  • 对于 运行级别为5的图形方式 用户来说,他们的登录是通过一个图形化的登录界面。登录成功后可以直接进入 KDE、Gnome 等窗口管理器。
  • 而本文主要讲的还是文本方式登录的情况:当我们看到mingetty的登录界面时,我们就可以输入用户名和密码来登录系统了。
    • Linux 的账号验证程序是 login,login 会接收 mingetty 传来的用户名作为用户名参数。
    • 然后 login 会对用户名进行分析: 如果用户名不是 root,且存在 /etc/nologin 文件,login 将输出 nologin 文件的内容,然后退出 (这通常用来系统维护时 防止非root用户登录)。
      /etc/usertty文件用于对用户作出附加访问限制:只有/etc/securetty中登记了的终端才允许 root 用户登录,如果不存在这个文件,则 root 用户可以在任何终端上登录没有其他限制。

【 6. 图形模式与文字模式的切换方式 】

在这里插入图片描述

  • Linux预设提供了六个命令窗口终端机让我们来登录。
    默认我们登录的就是第一个窗口,也就是tty1,这个六个窗口分别为tty1,tty2 … tty6,你可以按下Ctrl + Alt + F1 ~ F6 来切换它们。
  • 如果安装了 图形界面,默认情况下是进入图形界面的,此时我们就可以按Ctrl + Alt + F1 ~ F6来进入其中一个命令窗口界面。当我们进入命令窗口界面后再返回图形界面只要按下Ctrl + Alt + F7 就回来了。
  • 如果用的 Vmware 虚拟机,命令窗口切换的快捷键为 Alt + Space + F1至F6。如果在图形界面下按Alt + Shift + Ctrl + F1至F6 切换至命令窗口。

【 7. Linux关机 】

  • 在linux领域内大多用在服务器上,很少遇到关机的操作。毕竟服务器上跑一个服务是永无止境的,除非特殊情况下,不得已才会关机。
  • 正确的关机流程为:sync > shutdown > reboot > halt
    关机指令为:shutdown ,可以man shutdown 来看一下帮助文档。
  • 实例:运行如下命令关机
sync 将数据由内存同步到硬盘中。

shutdown 关机指令,可以man shutdown 来看一下帮助文档。例如你可以运行如下命令关机:

shutdown –h 10 ‘This server will shutdown after 10 mins’ 这个命令告诉我们,计算机将在10分钟后关机,并且会显示在登陆用户的当前屏幕中。

shutdown –h now 立马关机

shutdown –h 20:25 系统会在今天20:25关机

shutdown –h +10 十分钟后关机

shutdown –r now 系统立马重启

shutdown –r +10 系统十分钟后重启

reboot 就是重启,等同于 shutdown –r now

halt 关闭系统,等同于shutdown –h now 和 poweroff

  • 最后总结一下, 不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中
  • 关机的命令有 shutdown –h now halt poweroff 和 init 0 , 重启系统的命令有 shutdown –r now reboot init 6。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1322859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android修改submodule的lib包名

一、正常使用submodule的流程 在指定路径下: git clone gitgit.youraddress.com:android-apps/taobao.git cd taobao/ git checkout develop git submoudle init git submodule update二、改名步骤 需求:将LibStat改为libStat 因为Linux对大小写敏感…

国家开放大学 河南开放大学形成性考核 平时作业 统一参考资料

试卷代号:1258 房屋建筑混凝土结构设计 参考试题 一、单项选择题(每小题2分,共计40分) 1.( )是将框架结构中的部分跨间布置剪力墙或把剪力墙结构的部分剪力墙抽掉改为框架承重。 A.梁板结构体系 B.框…

银行数据分析进阶篇:银行业零售贷款营销与风控平衡分析

上周和大家分享了银行外呼数据分析与客户精准营销的案例,得到很多朋友正向的反馈,今天再次给大家带来银行业零售贷款营销与风控平衡分析的案例,结构清晰,可直接复制套用,特地分析给大家! 本文主要分享作者分…

车载软件易受攻击,如何规避嵌入式软件漏洞

在汽车开发中,汽车网络安全至关重要,特别是现在汽车软件变得日益互联。阅读本文,了解如何预防汽车网络安全漏洞。 为什么汽车网络安全很重要? 如今,互联汽车的解决方案远不只有简单的从A点到B点。通过实时数据共享、应…

【数值计算方法】《工程数值计算Python教程》笔记

文章目录 [toc]第一章:绪论 1.1 1.1 1.1|数值计算在工程科学中的重要性 1.2 1.2 1.2|数值计算方法 1.3 1.3 1.3|程序设计盒图计算方法的选取减少运算次数避免相近的数相减 1.4 1.4 1.4|误差的来源、表示及传递误差的来源和分类模型误差观测误差截断误差舍入误差 误差…

力扣日记12.19-【二叉树篇】二叉搜索树中的搜索

力扣日记:【二叉树篇】二叉搜索树中的搜索 日期:2023.12.19 参考:代码随想录、力扣 700. 二叉搜索树中的搜索 题目描述 难度:简单 给定二叉搜索树(BST)的根节点 root 和一个整数值 val。 你需要在 BST 中…

微软在 Perforce Helix 核心服务器中发现4个安全漏洞

微软分析师在对Perforce Helix的游戏开发工作室产品进行安全审查时,发现为游戏、政府、军事和技术等部门广泛使用的源代码管理平台 Perforce Helix Core Server 存在四大漏洞,并于今年 8 月底向 Perforce 报告了这些漏洞,其中一个漏洞被评为严…

HarmonyOS应用开发实战—开箱即用的活动创建页面【ArkTS】【鸿蒙专栏-33】

一.HarmonyOS应用开发实战—开箱即用的个人主页页面【ArkTS】【鸿蒙专栏-32】 1.1 项目背景 HarmonyOS(鸿蒙操作系统)是华为公司推出的一种分布式操作系统。它被设计为一种全场景、全连接的操作系统,旨在实现在各种设备之间的无缝协同和共享,包括智能手机、平板电脑、智能…

MFC 窗口创建过程与消息处理

目录 钩子简介 代码编写 窗口创建过程分析 消息处理 钩子简介 介绍几个钩子函数,因为它们与窗口创建工程有关 安装钩子函数 HHOOK SetWindowsHookExA([in] int idHook,[in] HOOKPROC lpfn,[in] HINSTANCE hmod,[in] DWORD dwThreadId ); 参数说明…

Kafka 安装与部署

目录 Kafka 下载 (1)将 kafka_2.11-2.4.1.tgz 上传至 /opt/software/ (2)解压安装包至 /opt/module/ [huweihadoop101 ~]$ cd /opt/software/ [huweihadoop101 software]$ tar -zxvf kafka_2.11-2.4.1.tgz -C ../module/&#…

PB开发Windows服务方案

1、项目简介 ​ PB作为一门客户端开发语言,虽然官方并未提供标准的Windows服务开发方案,但使用PB开发Windows服务并非无法实现。自PB9开始,PB提供了PBNI接口,PB与C可以通过这个接口互相调用,而C可以开发Windows服务。…

Java智慧工地数字化云平台源码(SaaS模式)

智慧工地是智慧城市理念在建筑工程行业的具体体现,智慧工地解决方案是建立在高度信息化基础上一种支持人事物全面感知、施工技术全面智能、工作互通互联、信息协同共享、决策科学分析、风险智慧预控的新型信息化手段。围绕人、机、料、法、环等关键要素,…

【算法与数据结构】376、LeetCode摆动序列

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:本题难点在于要考虑到不同序列的情况,具体来说要考虑一下几种特殊情况: 1、上…

python学习,2.简单的数据类型

1.了解数及运算 整数:1,2,3。 运算符:加减乘除,**(乘方) 浮点数:python将所有带小数点的数称为浮点数。 这一块和别的语言有些不一样, 像C,分为float,double&#x…

河南开放大学形成性考核 平时作业 统一参考资料

试卷代号:1288 现代管理原理 参考试题(开卷) 一、单项选择(下列选项中只有一个答案是准确的,请将其序号填入括号中。每小题2分,共20分) 1.“凡事预则立,不预则废”,说…

极简Windows本机下载安装启动zookeeper

1.下载zookeeper Apache Download Mirrors 注意!!!:安装的路径不要用中文 2.生成zoo.cfg文件 复制zookeeper的conf目录下的zoo_simple.cfg文件,并重命名为zoo.cfg 修改zoo.cfg文件中的路径(data,log…

Navicat 16最新操作

Navicat 16最新操作 1 知识小课堂1.1 Navicat 161.2 其他数据库连接工具 2 下载和安装2.1 下载2.2 安装 1 知识小课堂 1.1 Navicat 16 Navicat 16是一款功能强大的数据库管理工具,可以创建多个连接,方便管理不同类型的数据库,包括MySQL、Ora…

如何利用研发效能度量工具分析代码评审的效率、质量与瓶颈?

代码评审(Code Review)是保障代码质量中一个非常重要的环节,也是保证项目交付质量的关键一环。代码评审的开展对于产品质量提升、工程素养提升、研发团队的技术分享交流,或是完善团队代码规范,都能起到重要的促进作用。…

​【EI会议征稿通知】第三届智能系统、通信与计算机网络国际学术会议(ISCCN 2024)

第三届智能系统、通信与计算机网络国际学术会议(ISCCN 2024) 2024 3rd International Conference on Intelligent Systems, Communications and Computer Networks 第三届智能系统、通信与计算机网络国际学术会议(ISCCN 2024)将…

期货股市联动(期股联动助推资本市场上扬)

期股联动——期货股市助推资本市场上扬 随着我国资本市场的不断发展,期货和股票这两个市场也在逐渐紧密地联系起来。期货和股票的相互作用是一种“期股联动”,它能够促进资本市场的上扬。 期货与股票市场 期货市场是一种标准化的场外交易市场&#xf…