Memorykk

never too late to learn

《鸟哥的Linux私房菜》第0-3章

基础篇第 0-3 章学习笔记


目录


计算机概论

计算机硬件

computer.png

CPU

CPU 的架构:

  • 精简指令集 RISC:单指令工作简单,执行快。arm
  • 复杂指令集 CISC。单指令工作复杂,执行慢。intel(x86)、amd(x86_64)
    1Byte=8bit

problem_memory.png

原本的单核 CPU 仅有一个运算单元,所谓的多核则是在一个 CPU 封装当中嵌入了两个以上的运算内核,简单地说,就是一个实际的 CPU 外壳中含有两个以上的 CPU 单元。
amd 内存与 cpu 直连,intel 内存通过北桥与 cpu 连接

CPU 频率=外频*倍频

  • 外频:cpu 与外部传输速率
  • 倍频:cpu 内部运算的加速功能(出厂固定)

超频:通过主板的设定功能更改成较高频率的一种方式。因为频率并非正常速度,故可能会造成死机等。

总线宽度:32/64
CPU 有向下兼容的能力

内存

个人计算机的内存主要组件为动态随机访问内存 DRAM,挥发性

  • SDRAM
  • DDR SDRAM:双倍数据传输速度 - DDR - DDRⅡ - DDRⅢ
    双通道设计:两根 64 位总线宽度->128 位
    CPU 外频=内存外频
    第二层缓存:常用的数据或程序放置在 CPU 内部,不在通过北桥从内存加载
    DRAM 频率速度无法达到 L2=CPU 外频,因此使用静态随机访问内存 SRAM
    只读存储器 ROM
    主板上组件参数存储在 CMOS 中,BIOS 是一套写死在 ROM 上的程序,非挥发性,系统开机时首先读取 BIOS;固件很多采用 ROM 进行软件写入;ROM 无法改写,因此 BIOS 通常写入 Flash Memory 或 EEPROM 中,以更新。

显卡

一般对于图形影像的显示重点在于分辨率与色彩深度,因为每个图像显示的颜色会占用内存,因此显卡上面会有一个内存的容量,这个显存容量将会影响到最终你的屏幕分辨率与色彩深度。越大越好。
在显卡上嵌入 3D 加速芯片提升运算能力,即 GPU。
北桥通信
规格:AGP->PCI->PCIe

硬盘与存储设备

硬盘:盘片、机械手臂、磁头、主轴马达。
盘片上的数据:
磁盘上最小存储单位:扇区 512bytes;扇区组成圆:磁道;所有片上面的同一磁道:柱面(分割硬盘的最小单位)。
磁盘容量=header 数量每个 header 负责的柱面数量每个柱面所含有的扇区数量*扇区的容量
传输接口: - IDE 接口:连接两个设备,理论 133MB/s - SATA 接口:PC,一个设备,利于散热,理论 300MB/s

缓冲存储器:加速读取
转速:主轴马达转动盘片
运转:正常关机使机械手臂归回原位;避免移动主机使硬盘抖动

PCI适配卡

用户额外的功能卡安插在 PCI 插槽上,很多组件(声卡、网卡)采用 PCI 接口传输,现多 PCIe

主板

主板上面负责通信各个组件的就是芯片组,芯片组一般分为北桥与南桥,需要散热。北桥负责 CPU/RAM/VGA 等的连接,南桥则负责 PCI 接口与速度较慢的 I/O 设备。
芯片组:集成(显卡、网卡)型、独立型
I/O 地址:标识不同的设备;IRQ 中断信道:告知 CPU 该设备工作情况方便分配工作。sharing IRQ 技术。
CMOS 与 BIOS

电源

能源转换率
接口

文字编码系统

英文:ASCII,一个字符占用 1B
中文:big5(简体 gb2312),占用 2B
ISO/IEC 制订了 Unicode 编码系统,即 UTF8

操作系统

内核、接口以及相关应用
操作系统内核(kernel):管理计算机的所有活动及驱动系统中的所有硬件,分配资源。内核所放置到内存中的区块受保护,开机后常驻内存。参考硬件规格,硬件不同则内核不同。
系统调用(System Call):一套开发接口,开发软件参考内核功能相关的开发接口。

内核功能:

  1. 系统调用接口:与内核通信,软件开发
  2. 程序管理:多任务环境下有效分配资源
  3. 内存管理:虚拟内存功能提供在内存不足时的内存交换 swap
  4. 文件系统管理
  5. 设备驱动

操作系统与驱动程序:OS 提供开发接口,让硬件开发商制作驱动,安装。

应用程序

程序与 OS 有关系

总结

计算机的定义为:”接受用户输入指令与数据,经由中央处理器的数据与逻辑单元运算处理后,以产生或存储成有用的信息“。
计算机的五大单元包括输入单元、输出单元、CP∪ 内部的控制单元、算术逻辑单元与内存五大部分。
数据会流进流出内存是 CPU 所发布的控制命令,而 CPU 实际要处理的数据则完全来自于内存。
CPU 依设计理念主要分为精简指令集(RSC)与复杂指令集(CSC)系统。
关于 CPU 的频率部分,外频指的是 cPU 与外部组件进行数据传输时的速度,倍频则是 CPU 内部用来加速工作性能的一个倍数,两者相乘才是 cPU 的频率速度。
一般主板芯片组分为北桥与南桥,北桥的总线称为系统总线,因为是内存传输的主要信道所以速度较快。南桥就是所谓的输入/输出(I/O)总线,主要在于连系硬盘、USB、网卡等接口设备。
北桥所支持的频率我们称为前端总线速度( Front Side Bus,FSB),而每次传送的位数则是总线宽度。
CPU 每次能够处理的数据量称为字组大小( word size),字组大小依据 cPU 的设计而有 32 位与 64 位之分。我们现在所称的计算机是 32 或 64 位主要是依据这个 CPU 解析的字组大小而来的!
个人计算机的内存主要组件为动态随机访问内存( Dynamic Random Access Memory,DRAM),至于 CPU 内部的第二层缓存则使用静态随机访问内存(Static Random Access Memory, SRAM)。
BIOS(Basic Input Output System)是一套程序,这套程序是写死到主板上面的一个内存芯片中,这个内存芯片在没有通电时也能够将数据记录下来,那就是只读存储器(Read Only Memory,ROM)。
显卡的规格有 PCI/AGP/PCe,目前的主流为 Pcle 接口。
硬盘是由盘片、机械手臂、磁头与主轴马达所组成的,其中盘片的组成为扇区、磁道与柱面。
操作系统( Operating System,Os)其实也是一组程序,这组程序的重点在于管理计算机的所有活动以及驱动系统中的所有硬件。
计算机主要以二进制作为单位,常用的磁盘容量单位为 Byte,其单位换算为 1Byte=8bt
操作系统仅在于驱动与管理硬件,而要使用硬件时,就得需要通过应用软件或者是 she 的功能,来调用操作系统操纵硬件工作。目前,操作系统除了上述功能外,通常已经包含了日常工作所需要的应用软件在内了。

Linux是什么

Linux 是 OS 内核,包含内核及工具,沿袭 Unix,提供了一个完整的 OS 中最底层的硬件控制与资源管理的完整架构。

历史

  • Bell 实验室开发 Multics 分时系统无果,Ken Thompson 用汇编语言编写内核程序 Unics,之后为了移植,改用 C 语言编写内核发性 UNIX 正式版本,强调多用户多任务的兼容分时系统。后来 AT&T 收回 UNIX 源码版权,谭宁邦自主编写 Minix,用于教学,公开源码,付费发行。
  • 史托曼为了创建一个自由开放的 UNIX 操作系统,开始 GNU 项目,成立自由软件基金会 FSF,合作之下完成 GNU C Compiler,撰写通用公共许可证 GPL(CopyLeft),1991 年,芬兰大学生 Linus Torvalds 宣称 LInux 内核程序可以在 Intel 386 上运行。
  • GNU:发布软件的同时公布源码。
  • GNU GPL:GPL 代表具有自由度的软件,用户可以自由执行、复制、再发行、学习、修改与强化,但不能取消 GPL 授权,软件是自由的,但软件相关的“服务”是可以商业的。Open Source 的好处即修改程序代码去适合的工作环境。

Linux的内核版本

主版本.次版本.释出版本-修改版本

  • 次版本为奇数:开发中版本,内核工程师使用;
  • 次版本为偶数:稳定版本,家庭计算机以及企业版本。
  • 释出版本:主次版本不变情况下,新增功能累积到一定程度之后释出。
  • Linux 内核版本与 distibution 版本并不相同

Linux distribution

Linux 是 kernel,GNU GPL 授权模式,参考 POSIX 设计规范(POSIX 即可携式操作系统接口,重点在于规范内核与应用程序之间的接口),兼容 UNIX 操作系统,即 UNIX Like。

  • 为了让用户能够接触到 Linux,于是很多的商业公司或非营利团体就将 Kernel+ Softwares+ Tools 集成起来,加上自己具有创意的工具程序,这个工具程序可以让用户以光盘、DvD 或者通过网络直接安装管理 Lnux 系统。称为 dLinux distribution。

linux_distribution.png

  • Linux standard Base(LsSB)等标准来规范开发者,以及目录架构的 Fle system Hierarchy Standard(FHS)标准规范,它们的唯一差别可能就是该开发者自家所开发出来的管理工具以及套件管理的模式。所以说,基本上,每个 Linux distributions 除了架构的严谨度与选择的套件内容外,其实差异并不太大,最大的差异在于软件的安装模式。
  • 团队版适合个人(更新快),商业版适合服务器(稳定)。
  • 事实上鸟哥认为 distributions 主要分为两大系统,一种是使用 RPM 方式安装软件的系统,包括 Red Hat, Fedora,SusE,Centos 等都是这类;一种则是使用 Debian 的 dpkg 方式安装软件的系统,包括 Debian,Ubuntu,B2D 等。

Linux的特色

  • 稳定的系统
  • 免费或少许费用
  • 安全性、漏洞的快速修补
  • 多任务、多用户
  • 用户、用户组
  • 相对不耗资源
  • 需要小内核的嵌入式系统
  • 整合度佳且多样的用户界面(GUI)

主机规划与磁盘分区

各个硬件设备在 linux 中当成一个文件来对待,几乎所有的硬件设备文件在/dev 目录里。
Windows 下不管有多少个 IDE 设备都是顺序地分配盘符,而在 Linux 下是认真区分对待每一个硬盘的。
(来自https://blog.csdn.net/weixin_32482133/article/details/112946362

磁盘连接的方式与设备文件名的关系

接口 命名
IDE 设备 /dev/hd[a-d]
SCSI/SATA/USB 硬盘 /dev/sd[a-p]

IDE设备

一个 IDE 扁平线缆可以连接两个 IDE 设备,通常主机会提供两个接口 IDE1(primary)和 IDE2(secondary),故可以连接四个 IDE 设备,每个扁平线缆上的 IDE 设备分为 Master/Slave。

IDE Master Slave
IDE1(primary) /dev/hda /dev/hdb
IDE2(secondary) /dev/hdc /dev/hdd

SATA设备

SATA/SCSI/USB 等磁盘接口使用 SCSI 模块驱动,使用/dev/sd[a-p]格式,SATA/USB 接口的磁盘根本没有顺序,文件名由 Linux 内核检测到磁盘的顺序排列。

磁盘的组成

磁盘的第一个扇区(512bytes)记录重要信息:

  • 主引导分区 MBR(446bytes):安装引导加载程序的地方。系统开机时主动读取,系统知道程序存放位置和如何开机。
  • 分区表(64bytes):记录整块硬盘分区的状态。硬盘必须切割才能使用。

disk_constitute.png

磁盘分区表

分区的最小单位是柱面,参考柱面号码切割硬盘,在分区表所在的 64bytes 容量中,分为四组记录区,每组记录区记录了该区段的起始与结束的柱面号码。这四个分区称为主或扩展分区。

disk_separate1.png

系统写入磁盘时,一定会参考分区表。分区的目的:安全性与性能。
利用额外的(第一个扇区之外的)扇区记录更多的分区信息,扩展分区本身不能被格式化,主分区与逻辑分区可以。

disk_separate2.png

这五个由扩展分区切割的分区成为逻辑分区(5个),设备名从主分区保留之后开始。
主分区+扩展分区≤4(硬盘限制);
扩展分区≤1(操作系统限制)。
P主分区、E扩展分区、L逻辑分区。主分区和扩展分区之外的空间将被浪费。考虑到连续性,E分配在最后。分区>4时,一定要有E。
例如:在第二块SATA硬盘下分6个分区,有方法:

disk_separate3.png
disk_separate4.png

开机流程与主引导分区MBR

开机流程

  1. BIOS:开机主动执行韧体 BIOS,寻找开机设备(根据用户设置的能开机的硬盘)
  2. MBR:分析存储设备(如硬盘)第一个扇区的 MBR 位置,内置引导加载程序
  3. 引导加载程序 Boot Loader:加载内核
  4. 内核文件:OS 工作。

BIOS 和 MBR 由硬件支持,BootLoader 由 OS 支持。

BootLoader的功能

  • 提供菜单:多重引导

  • 载入内核:指向可开机的程序区段

  • 转交其他 Loader(一个硬盘上包含多个系统,如双系统)

    硬盘的每个分区都有自己的启动扇区,内核文件实际放置在各分区内,Loader 只认识自己分区的内核以及其他 Loader。

mbr.png

磁盘分区的选择

Linux 所有数据以文件形态呈现,使用目录树结构,实际存放在磁盘分区中。

挂载:文件系统与目录树的关系

  • 将一个目录当作磁盘的入口,进入目录即可读取分区。即“挂载”与“挂载点”,最重要的根目录一定需要挂载到某分区。
    (磁盘上有/file,挂载到/mnt 下,即访问路径/mnt/file)
  • 安装 distribution,自定义安装 Custom 模式,建议仅区分主分区/和交换分区 swap(补充内存)。更详细的分区方案参考网络。

主机硬盘的主要规划

主机硬盘的需求和主机开放的服务有关,还需要注意数据分类和安全。

最简单的的分区方法
/ & swap & 未分区

根据用途:

容量大且读写频繁的目录:/ /usr /home /var swap
大硬盘配合旧主机造成无法开机的问题
旧主板找不到大容量磁盘,导致误判,但是 Linux 内核顺利开机后会重新检测硬盘而不例会 BIOS,所以 Linux 能够安装。
但是安装完毕无法开机,BIOS 不能正确识别硬盘,开机错误。BIOS 只能读取前面的扇区,故将启动扇区所在分区规范在 ≤1024 个柱面以内。
分区/boot & / & swap,/boot 100MB 左右,放在硬盘最前面。

安装CentOS 5.x与多重引导

安装规划

  • Linux主机的角色定位
  • 选择distribution
  • 计算机硬件配置
  • 磁盘分区配置:/boot&/&/home&swap PPPL
  • 引导装载程序BootLoader:安装到MBR
  • 选择软件:默认/最小/全部/自定义

安装步骤

  1. 调整启动媒体(BIOS):使用Linux安装光盘,调整BIOS的开机启动顺序为光盘;(无法以DVD开机时很可能是由于计算机硬件不支持、光驱会挑片、光盘问题、硬件超频等)
  2. 选择安装结构与开机:包括图形界面命令行界面等,也可加入特殊参数(硬件检测、安装媒体、内存测试)来开机进入安装界面;
  3. 选择语系数据:由于不同地区的键盘按键不同,此时需要调整语系/键盘/鼠标等配置;
  4. 磁盘分区:最重要的项目之一。提前规划。

四种分区结构:

  • 整块硬盘:删除所有分区并创建默认分区结构
  • Linux分区:删除Linux分区并创建默认分区
  • 选定驱动器的空闲空间:未分区空间
  • 建立自定义分区结构

Linux支持的文件系统类型:
(二三版书上介绍有差别)
ext2/ext3:Linux使用的文件系统类型,ext3/ext4比ext2多日志记录,恢复系统较为迅速

  1. 引导装载程序、网络、时区设置与root密码:一些需要的系统基础设置!
  2. 软件选择:需要什么样的软件?全部安装还是默认安装即可?
  3. 安装后的首次设置:安装完毕后还有一些事项要处理,包括用户、 SELinux与防火墙等