小奥的学习笔记

  • Home
  • Learning & Working
    • Speech Enhancement Notes
    • Programming language
    • Computer & DL
    • MOOC
  • Life
    • Life Time
    • Thinking & Comprehension
    • Volunteer
    • Plan
    • Travel
  • Footprints
  • GuestBook
  • About
    • About Me
    • 个人履历
    • 隐私策略
  1. 首页
  2. Study-notes
  3. Computer & DL
  4. Linux
  5. 正文

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

2018年11月19日 1137点热度 0人点赞 0条评论

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

第0章 计算机概论

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章 Linux是什么

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

第3章 主机规划与磁盘分区

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

设备 设备在Linux内的文件名
SCSI/SATA/USB硬盘 /dev/sd[a-p]
U盘 /dev/sd[a-p]
virtl/O界面 /dev/vd[a-p](用于虚拟机)
软盘驱动器 /dev/fd[0-7]
打印机 /dev/lp[0-2](25针打印机)

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

鼠标 /dev/input/mouse[0-15](通用)

/dev/psaux(PS/2界面)

CDROM/DVDROM /dev/scd[0-1](通用)

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

/dev/cdrom(当前CDROM)

磁带机 IDE型:/dev/ht0

/dev/tape(当前磁带)

SATA/SCSI型:/dev/st0

IDE硬盘 /dev/hd[a-d]

注意:

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

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

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

IDE Master Slave
IDE1(Primary) /dev/hda /dev/hdb
IDE2(Secondary) /dev/hdc /dev/hdd

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

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

4.关于MBR

分区的原因:

(1)数据的安全性;

(2)数据的效能考虑。

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

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

P1 1~100 /dev/hda1
P2 101~200 /dev/hda2
P3 201~300 /dev/hda3
P4 301~400 /dev/hda4

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

P1 1~100(primary) /dev/hda1
P2 101~400(extended) /dev/hda2
P3 无记录 /dev/hda3
P4 无记录 /dev/hda4
L1 101~160(logical) /dev/hda5
L2 161~220(logical) /dev/hda6
L3 221~280(logical) /dev/hda7
L4 281~340(logical) /dev/hda8
L5 341~400(logical) /dev/hda9

注意:由于前四个号码都是保留给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差别如下:

  BIOS UEFI
使用程序语言 汇编语言 C语言
硬件资源控制 使用中断(IRQ)管理

不可变的内存存取

不可变的输入/输出存取

使用驱动程序和协议
处理器运行环境 16位 CPU保护模式
扩展方式 通过IRQ 直接加载驱动程序
第三方支持 较差 较好且可支持多平台
图形化能力 较差 较好
内建简化操作系统前环境 不支持 支持

 

8.目录树结构

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

图3.2 目录树相关性示意图

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

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

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

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: linux 鸟哥的linux私房菜
最后更新:2018年11月19日

davidcheung

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

搜索
欢迎关注我的个人公众号
最新 热点 随机
最新 热点 随机
DEEPFILTERNET:一种基于深度滤波的全频带音频低复杂度语音增强框架 奥地利匈牙利九日游旅程 论文阅读之Study of the General Kalman Filter for Echo Cancellation 小奥看房之鸿荣源珈誉府 杭州往返旅途及西溪喜来登和万怡的体验报告 2022年的第一篇碎碎念
奥地利匈牙利九日游旅程小奥看房之鸿荣源珈誉府论文阅读之Study of the General Kalman Filter for Echo CancellationDEEPFILTERNET:一种基于深度滤波的全频带音频低复杂度语音增强框架
Python chapter 6 learning notes 吴恩达深度学习课程DeepLearning.ai笔记(5-3) Leetcode题目解析(191129):4&5&48&62&64 中国历代疆域面积大小 2010 S.V Beijing Travel 23:I will say Goodbye to Beijing! A very interesting View
标签聚合
Java 生活 鸟哥的linux私房菜 leetcode 学习 高中 Python linux 算法 python学习
最近评论
davidcheung 发布于 5 个月前(02月09日) The problem has been fixed. May I ask if you can s...
tk88 发布于 5 个月前(02月07日) Hmm is anyone else having problems with the pictur...
cuicui 发布于 8 个月前(10月20日) :wink:
niming 发布于 10 个月前(09月19日) 同级校友,能刷到太巧了
davidcheung 发布于 2 年前(08月16日) 我得找一下我之前整理的word文档看一下,如果找到了我就更新一下这篇文章。
Nolan 发布于 2 年前(07月25日) 您的笔记非常有帮助。贴图不显示了,可以更新一下吗?
davidcheung 发布于 3 年前(06月19日) 到没有看webrtc的代码。现在主要在看我们公司的代码了。。。只是偶尔看一看webrtc的东西。。。
aobai 发布于 3 年前(03月13日) gain_change_hangover_ 应该是每三个block 只能够调整一次,这样保证每帧...
匿名 发布于 5 年前(12月30日) 烫
小奥 发布于 5 年前(12月12日) webRTC里面的NS本身我记得就是在C++里面呀

COPYRIGHT © 2025 小奥的学习笔记. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

陕ICP备19003234号-1

鲁公网安备37120202000100号