温故而知新——认识 Linux

认识 Linux

1、Linux 的内核版本

Linux 内核的命名格式为 “R.X.Y-Z”,查看内核版本的命令为 “uname -r”,例如:

[root@MiWiFi-R4A-srv ~]# uname -r
4.18.0-305.3.1.el8.x86_64
  • 数字 R 表示内核版本号;
  • 数字 X 表示内核主版本号,主版本号根据传统的奇偶系统版本编号来分配,奇数为开发板,偶数为稳定版;
  • 数字 Y 表示内核次版本号;
  • 数字 Z 表示内核小版本号。

不过,这种奇数、偶数的编号格式在 3.0 推出后就失效了。从 3.0 版开始,核心主要依据主线版本(MainLine)来开发,开发完毕后会往下一个主线版本进行。而旧的版本在新的主线版本出现之后,会有两种机制来处理:1、一种机制为结束开发(End Of Live;EOL),不会有继续维护的状态;2、另外一种机制为保持该版本的持续维护,亦即为长期维护版本(Longterm)。此可以参考网址:内核版本


2、MSDOS(MBR)与 GPT 磁盘分区表(partition table)

2.1、MSDOS(MBR)分区表格式与限制

早期的 Linux 系统为了兼容于 Windows 的磁盘,因此使用的是支持 Windows 的 MBR(Master Boot Record,MBR,主引导记录)的方式来处理开机管理程序与分区表!而==开机管理程序与分区表则通通放在磁盘的第一个扇区==,这个扇区通常是 512bytes 的大小。所以说,第一个扇区 512bytes 会有这两个数据:

  • 主引导记录(MBR):可以安装开机管理程序的地方,有 446bytes
  • 分区表(partition table):记录整个磁盘分区的状态,有 64bytes

由于分区表所在的区块仅有 64bytes 容量,因此最多仅能有四组记录区每组记录区记录了该区段的起始和结束的磁柱号码。这四个分区的记录被称为主分区(Primary)或扩展(Extended)分区。总结如下:

  1. 其实所谓的 “分区” 只是针对那个 64bytes 的分区表进行设定而已;
  2. 硬盘默认的分区表仅能写入四组分区信息;
  3. 这四组分区信息我们称为主分区和扩展分区。

那么,就会有一个问题:一个磁盘是否只能最多分出四个分区???

当然不!!!

既然第一个扇区所在的分区表只能记录四笔数据,那我可否利用额外的扇区来记录更多的分区信息?扩展分区的目的就是使用额外的扇区来记录分区信息,扩展分区本身不能被格式化。在扩展分区内再划分出来的分区,称为==逻辑分区==,这个分区可以格式化,并作为文件系统使用。

同时,MBR 还有一个很重要的性质,文件系统的命名会按照顺序使用数字命名,其中 1-4 已经分配给了分区表中的四个分区,所以逻辑分区只能从 5 开始

关于 MBR 的主分区、扩展分区和逻辑分区总结如下:

  1. 主分区与扩展分区最多可以有四个,其中扩展分区最多可以有一个;
  2. 逻辑分区是由扩展分区划分出来的;
  3. 主分区和逻辑分区可以被格式化作为文件系统使用,而扩展分区不可以。

由于分组分区表仅有 16bytes 而已,因此可记录的信息是相当有限的,所以,MBR 分区表存在着如下缺点:

  1. 操作系统无法抓取到 2.2T 以上的磁盘容量!
  2. MBR 仅有一个区块,若被破坏,经常无法或很难救援!
  3. MBR 内的存放开机管理程序的区块仅有 446bytes,无法容纳较多的程序代码。

2.2、GUID partition table,GPT 磁盘分区表

因为过去的一个扇区大小都是 512bytes,为了兼容所有的磁盘,因此在扇区定义上面,大多会使用所谓的==逻辑区块地址(Logical Block Address,LBA)==来处理。GPT 将磁盘所有区块以此 LBA(预设为 512bytes)来规划,而第一个 LBA 称为 LBA0(从 0 开始编号)。

请添加图片描述

上图的解释如下:

  • LBA0(MBR 兼容区块)

    与 MBR 相似,这个兼容区块也分为两个部分,一个就是跟之前 446bytes 相似的区块,存储了第一阶段的开机管理程序!而在原本的分区表的记录区内,这个兼容模式仅放入一个特殊标志的分区,用来表示此磁盘为 GPT 格式之意。

  • LBA1(GPT 表头记录)

    这个部分记录了分区表本身的位置与大小,同时记录了备份用的 GPT 分区(就是前面谈到的在最后 34 个 LBA 区块)放置的位置,同时放置了分区表的检验机制码(CRC32),操作系统可以根据这个检验码来判断 GPT 是否正确。若有错误,还可以通过这个记录区来取得备份的 GPT(磁盘最后的那个备份区块)来恢复 GPT 的正常工作!

  • LBA2-33(实际记录分区信息处)

    从 LBA2 区块开始,每个 LBA 都可以记录 4 笔分区记录,所以在默认情况下,总共可以有 4*32=128 笔分区记录。因为每个 LBA 有 512bytes,因此每笔记录用到 128bytes 的空间,除了每笔记录所需的标识符与相关的记录外,GPT 在每笔记录中分别提供了 64bits 来记载开始/结束的扇区号码,因此,GPT 分区表对于单一分区来说,它的最大容量限制就会在 264 * 512bytes = 264 * 1Kbytes = 233TB = 8 ZB.

但是,在磁盘管理工具上面,==fdisk 这个命令并不认识 GPT!得需要使用 gdisk 或者是 parted 命令才行!==另外,开机管理程序方面,grub 第一版并不认识 GPT!得要用 grub2 以后才认识!而且,是否能够读写 GPT 格式又与开机的检测程序有关,那开机检测程序又是什么呢?就是 BIOS 和 UEFI


3、开机流程中的 BIOS 和 UEFI 开机检测程序

3.1、BIOS 搭配 MBR/GPT 开机流程

首先我们需要提到 BIOS 和 CMOS,CMOS 是记录各项硬件参数且嵌入在主板上面的存储器,BIOS 则是一个写入到主板上的一个韧体(韧体就是写入到硬件上的一个软件程序)。这个 BIOS 就是在开机的时候,计算机系统会主动执行的第一个程序

接下来,BIOS 会分析计算机里面有哪些存储设备,我们以硬盘为例,BIOS 会依据使用者的设定去取得能够开机的硬盘,并且到该硬盘里面读取第一个扇区的 MBR 位置。MBR 这个仅有 446bytes 的硬盘容量里面会放置最基本的开机管理程序!此时,BIOS 就功德圆满,接下来就是 MBR 内开机管理程序的工作了!

这个开机管理程序的目的是加载(load)系统核心文件!由于开机管理程序是操作系统在安装的时候所提供的,所以它会认识该操作系统的文件系统,因此就能读取该操作系统的内核文件,接下来就是操作系统内核文件的工作了。开机管理程序和 BIOS 也功德圆满,接下来就是操作系统的工作了!

总结,整个开机流程到操作系统之前的应该是这样的:

  1. BIOS:开机主动执行的韧体,会认识第一个可开机的装置;
  2. MBR:第一个可开机装置的第一个扇区内的主要启动记录区块,内含开机管理程序(如果是 GPT 格式,那么 BIOS 可以从 LBA0 兼容区块读取到开机管理程序);
  3. 开机管理程序(boot loader):一个可以读取系统内核文件的软件;
  4. 内核文件:开始操作系统的功能…

BIOS 和 MBR 都是硬件本身支持的功能,至于 Boot Loader 则是操作系统安装在 MBR 上面的一套软件了。由于 MBR 只有 446bytes 而已,因此这个开机管理程序是非常小而美的。这个 boot loader 的主要任务如下

  1. 提供选单:用户可以选择不同的开机项目,这也是多重引导的重要功能;
  2. 载入内核文件:直接指向可开机的程序区块来开始操作系统;
  3. 转交其他 loader:将开机管理功能转交给其他 loader 负责。

注意第 3 个功能,那么它表示你的计算机系统里边可能具有两个以上的开机管理程序!有可能吗?我们的硬盘不是只有一个 MBR 吗?是没错!但是开机管理程序除了可以安装在 MBR 外,还可以安装在每个分区的启动扇区(boot sector)

总结如下:

  1. 每个分区都拥有自己的启动扇区(boot sector);
  2. 实际可开机的内核文件是放置在各分区内的;
  3. loader 只会认识自己的系统区内的可开机内核文件,以及其他 loader 而已;
  4. loader 可直接指向或者间接将管理权转交给另一个管理程序。

3.2、UEFI BIOS 搭配 GPT 开机流程

GPT 可以提供 64bits 寻址,而且 BIOS 是不兼容 GPT 的,还要通过 GPT 提供的兼容模式才能读写这个磁盘设备,而且 BIOS 仅为 16 位的程序,因此,UEFI(Unified Extensible Firmware Interface)这个统一可延伸韧体界面就产生了。


4、X window 与文本模式的切换

怎么切换 X window 与文件模式呢?我们通常称文本模式为终端机接口、terminal 或 console!Linux 预设下会提供 6 个 Terminal 来让使用者登录,切换的方式为使用:[Ctrl] + [Alt] + [F1]~[F6]

  • [Ctrl] + [Alt] + [F2]~[F6]:文字接口登录 tty2~tty6 终端机;
  • [Ctrl] + [Alt] + [F1]:图像接口桌面。

是否默认就启动图像界面,只需要在后续管理服务中,将 “graphical.target” 这个目标服务设定为默认,就能够默认使用图像界面了。在服务管理中,已经开始使用 systemd 模式,这个模式将很多的服务进行相依性管理。


5、正确的关机方法

正常关机情况下,需要注意以下几件事:

  • 观察系统的使用状态:

    查看目前有谁在线:who;

    查看网络的联机状态:netstat -a

    查看背景执行的程序:ps -aux

  • 通知在线使用者关机的时刻:

    shutdown 的特别指令

  • 正确的关机指令使用

    shutdown 和 reboot

与关机/重启相关的指令:

  • 将数据同步写入硬盘中的指令:sync
  • 管用的关机指令:shutdown
  • 重新启动,关机:reboot、halt、poweroff
  1. 惯用的关机指令:shutdown

    [root@MiWiFi-R4A-srv ~]#/sbin/shutdown [-krhc] [时间] [警告信息]
    选项与参数:
    -k	:	不要真的关机,只是发送警告信息出去!
    -r	:	在将系统的服务停掉之后就重新启动(常用)
    -h	:	将系统的服务停掉后,立即关机。(常用)
    -c	:	取消已经在进行的 shutdown 指令内容。
    时间	:	指定系统关机时间!
    
    
    范例:
    [root@MiWiFi-R4A-srv ~]# /sbin/shutdown -h 10 'I will shutdown after 10 mins.'
    Shutdown scheduled for Thu 2021-08-19 17:46:54 CST, use 'shutdown -c' to cancel.
    
    [root@MiWiFi-R4A-srv ~]# shutdown -h now	现在就关机
    
    [root@MiWiFi-R4A-srv ~]# shutdown -h 20:25
    Shutdown scheduled for Thu 2021-08-19 20:25:00 CST, use 'shutdown -c' to cancel.
    
    [root@MiWiFi-R4A-srv ~]# shutdown -h +10
    Shutdown scheduled for Thu 2021-08-19 17:48:49 CST, use 'shutdown -c' to cancel.
    
    [root@MiWiFi-R4A-srv ~]# shutdown -r now	现在重启
    
    [root@MiWiFi-R4A-srv ~]# shutdown -r +30 'The system will reboot.'
    Shutdown scheduled for Thu 2021-08-19 18:13:22 CST, use 'shutdown -c' to cancel.
    
    [root@MiWiFi-R4A-srv ~]# shutdown -k now 'The system will reboot.'	并不会重启,只是吓唬人
    
  2. 重新启动,关机:reboot,halt,poweroff

    [root@MiWiFi-R4A-srv ~]# sync; sync; sync; reboot
    
    [root@MiWiFi-R4A-srv ~]# halt	#系统停止~屏幕可能会保留系统已经停止的信息!
    
    [root@MiWiFi-R4A-srv ~]# poweroff	#系统关机,所以没有提供额外的电力,屏幕空白!
    
  3. 实际使用管理工具 systemctl 关机

    这些指令,都会去完成一样的工作,即:都会去呼叫 systemctl 这个重要的管理命令

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值