《鸟哥的Linux私房菜》(基础篇)笔记整理(第0~3章)

分类: 打印机驱动使用 发布时间:2018-11-28 10:57

在结束了C++ Primer Plus和计算机组成原理的第一遍学习之后,我又开始了新课程的学习。目前在学习鸟哥的Linux私房菜(基础篇),采用的是第三版(书本学习)和第四版(电子版)相结合的方式,所以整理的笔记会混合第三版和第四版的知识点,但是考虑版本更迭关系,整理知识会以第四版为主。

1.计算机的五大单元:输入设备、输出设备、控制单元、算术逻辑单元、内存。

2.CPU的种类:精简指令集(RISC)和复杂指令集(CISC)。

3.CPU的外频和倍频:

(1)外频指CPU和外部组件进行数据传输/运算速度;倍频则是CPU内部用来加速工作性能的倍数。

CPU的频率=CPU外频X倍频。

4.新的CPU设计中,已经将北桥的内存控制芯片整合到CPU内,而CPU与主存储器、显示适配器沟通的总线通常被称为系统总线,是内存传输的主要通道,速度较快;南桥是输入输出总线,联系硬盘、USB、网卡等。

5.CMOS主要功能为记录主板上面的重要参数,包括系统时间、CPU电压与频率、各项设备的I/O地址与IRQ等;BIOS为写入到主板上某一块闪存或者EEPROM的程序,它可以在开机的时候执行,加载CMOS中的参数,并尝试调用存储设备中的开机程序,进一步进入操作系统当中。

6.操作系统的角色

图0.1 操作系统的角色

7.系统内核的功能:

(1)系统调用接口;

(2)程序管理;

(3)内存管理;

(4)文件系统管理;

(5)设备驱动。

8.个人计算机的主存储器主要组件为动态随机存取内存(DRAM),CPU内部的第二层缓存(Cache)则使用SRAM。

9.磁盘连接到主板的接口多为SATA和SAS,目前主流为SATA3.0。

1.GNU是GNU’s Not Unix的缩写。GPL是GNU General Public License的缩写。

1.在Linux中,每个设备都被当做一个文件来对待,每个设备都有设备文件名。各硬件设备在Linux中的文件名

/dev/usb/lp[0-15](USB打印机)

/dev/psaux(PS/2界面)

/dev/sr[0-1](通用,CentOS较常见)

/dev/cdrom(当前CDROM)

/dev/tape(当前磁带)

SATA/SCSI型:/dev/st0

(1)由于现在IDE的磁盘基本都被淘汰,所以现在连IDE的文件名也被仿真成/dev/sd[a-p]了。

(2)正常机器的SATA借口的文件名都是/dev/sd[a-p],但由于我使用的是虚拟机安装linux,所以使用的是/dev/vd[a-p]。

2.IDE的硬盘文件名顺序是按照接口顺序来的,如下:

但是在SATA是按照LINUX核心侦测到磁盘的顺序来设置顺序。

3.早期磁盘第一个山区内含有重要的信息我们称为MBR(Master Boot Record)格式,但是现在硬盘越来越大,也就出现了新的GPT(GUID partition table)格式。

4.关于MBR

分区的原因:

(1)数据的安全性;

(2)数据的效能考虑。

MBR仅使用第一个512bytes区块来记录。第一个512bytes有两个数据,MBR(可以安装开机管理程序的地方,有446bytes)和分区表(记录整个硬盘分区状态,有64bytes)。

我们利用参考柱面号码来进行分区,在分区表所在的64bytes容量中,总共分为四组记录区,每组记录区记录了该区段的启始与结束的柱面号码。例如:

由于分区表仅能写入四组分区信息,这四个分区被称为主(Primary)或扩(Extended)分区。我们可以用扩展分区来将一个硬盘分为更多的分区。扩展分区的想法是:既然第一个扇区所在的分区表只能记录四条数据,那就可以利用额外的扇区来记录更多的分区信息。由扩展分区继续切出来的分区,就被称为逻辑分区(logical partition)。例如:

注意:由于前四个号码都是保留给Primary或Extended用的。所以逻辑分区的设备名称号码应该从5开始。

MBR主要分区、拓展分区和逻辑分区的特性:

(1)主分区和拓展分区最多只能有4组(硬盘限制);

(2)扩展分区最多只能有一个(操作系统限制);

(3)逻辑分区是由扩展分区持续切割出来的分区;

(4)能够被格式化后作为数据访问的分区为主分区和逻辑分区,扩展分区无法格式化;

(5)逻辑分区的数量以操作系统而不同,在LINUX系统中SATA硬盘已经可以突破63个以上分区的限制。

5.关于GPT

GPT已经没有扩展分区和逻辑分区的概念。GPT使用34个LBA(Logical Block Address,逻辑区块地址)区块来记录分区信息。如图3.1所示。

图3.1 GPT的LBA块示意图

LBA0(MBR相容区块):分为两个部分,第一个就是跟之前相似,储存了第一阶段的开机管理程序;后面的那部分放入一个特殊标志,表示此磁盘为GPT格式。

LBA1(GPT表头记录):记录了分区表本身的位置和大小,同时记录了备份用的GPT分区(即最后34个LBA区块)放置的位置,同时放置了分区表的检验机制码(CRC32)。

LBA2-LBA33(实际记录分区信息的地方):每个LBA都可以记录4个分区记录,所以默认情况下总共有4*32=128个分区记录。GPT在美国记录中分别提供了64bits来记载开始/结束的扇区号码。

6.MBR的开机流程

简单来说,整个个开机流程到操作系统之前的动作如下:

(1)BIOS:开机主动执行,会认识第一个可开机的设备;

(2)MBR:第一个可开机设备的第一个扇区内的主要启动记录区块,内含开机管理程序;

(3)引导加载程序(Boot loader):一个可读取内核文件来执行的软件;

(4)内核文件:开始操作系统的功能。

7.UEFIBIOS搭配GPT的开机流程

传统BIOS与UEFI差别如下:

不可变的内存存取

不可变的输入/输出存取

8.目录树结构

整个目录树架构中最重要的就是根目录(root directory),这个根目录的表示方法为一条斜线(/),所有文件都与目录树有关,呈现方式如下图。

图3.2 目录树相关性示意图

9.文件系统与目录树的关系——挂载

所谓挂载,就是利用一个目录当成进入点,将磁盘分区的数据放置在该目录下,也就是说进入该目录就可以读取该分区的信息。

10.boot loader的主要功能:提供菜单、载入内核文件、转交其它loader。boot loader的安装地点可以是MBR或者Boot sector。