操作系统学习——Linux基础学习篇(第0章)

这个系列主要是依赖《鸟哥的 Linux 私房菜》一本书,记录自己的学习过程以及笔记。

第 0 章 计算机概论

计算机

计算机组成单元

计算机硬件五大单元:输入单元输出单元控制单元算术逻辑单元存储单元,联系学过的计算机组成原理,实际上对应的就是计算机组成原理里的内容。输入、输出、控制器、运算器、存储器(主要指内存)。而控制器运算器构成 CPU,CPU 与存储器称为主机(实际上还包含输入输出的接口),在本书中称为系统单元,而与此相对的是外围设备(输入输出外存)。

CPU 种类

根据微指令集的划分

  • 精简指令集 Reduced Instruction Set Computer RISC
    • 这种 CPU 设计中,微指令集较为精简,每个指令的执行时间都很短,完成的操作也很单纯,指令的执行性能较佳,但要做复杂的事情就要多条来完成。常见:SPARC 系列、Power Architecture 系列、ARM 系列。
    • 应用方面,比如索尼的 PS3 应用的是 PowerPC 架构的 Cell 处理器,ARM 更是常见
  • 复杂指令集 Complex Instruction Set Computer CISC
    • 每个小指令可以执行一些低阶的硬件操作,指令数目多、复杂、长度并不相同,因为复杂所以耗时长一些,但个别指令可以处理的工作较为丰富。常见:AMD、Intel、VIA 等 x86 架构的 CPU。
    • 由于 AMD、Intel、VIA 所开发出来的 x86 架构 CPU 被大量用于 PC 机上,个人计算机常被称为 x86 架构计算机。来源就是因为最早的 Intel 开发出来的 CPU 代号为 8086,后来又有 80286,80386,就被称为 x86 了。
    • 在 2003 年以前由 Intel 所开发的 x86 架构 CPU 由 8 位升级到 16 位、32 位、后来 AMD 又依次架构修改新一代 CPU 位 64 位,为了区别两者的不同,因此 64 位的个人计算机 CPU 又被称为 x86_64 的架构。
    • 不同的 x86 架构 CPU 的区别:整体结构(二层缓存、每次可执行的指令数)、微指令集(针对不同特性发展各异)。
  • 多媒体微指令集:MMX,SSE,SSE2,SSE3,SSE4,AMD-3DNow!
  • 虚拟化微指令集:Intel-VT,AMD-SVM
  • 省电功能:Intel-SpeedStep,AMD-PowerNow!
  • 64/32 位兼容技术:AMD-AMD64,Intel-EM64T

个人计算机架构与接口设备

Linux 早期也根据个人计算机的架构发展来的,所以真的需要了解一下。

Intel 主板架构,最重要的是芯片组,芯片组常被分为两个桥接器来控制各组件的通信,分别是:

  • 北桥负责连接速度较快的 CPU、内存与显卡组建。
  • 南桥负责连接速度较慢的周边接口。

AMD 主板架构,内存直接与 CPU 通信而不通过北桥,AMD 为了加速两者的通信,将内存控制组件集成到 CPU 当中,这样可以加速两者的传输速度。

根据设计不同选择了不同的总线架构。

CPU

主流的都是双核已上架够了,实际上是在一个 CPU 中封装了多个运算内核。

CPU 频率是指 CPU 每秒钟可以进行的工作次数。

由于不同 CPU 微指令集不同,每次频率可以进行的指令数也不同,不能直接以频率论高低,严谨的说目前只能来比较同款 CPU 的速度。

  • 外频:CPU 与外部组件进行数据传输/运算时的速度。
  • 倍频:CPU 内部用来加速工作性能的一个倍数,相乘才是 CPU 的频率。

一般出厂固定倍频,超频玩家常通过超频外频达到提升 CPU 的频率。

主板上的 BIOS

CMOS 主要功能为记录主板上的重要参数,包括系统时间、CPU 电压与频率、各项设备的 IO 地址与 IRQ,由于这些数据的记录要花费电力,因此主板上面才有电池。

BIOS 为写入到主板某一块山村或 EEPROM 的程序,它可以在开机的时候执行,以加载 CMOS 当中的参数,并尝试调用存储设备中的开机程序,进一步进入到操作系统当中。

软件程序运行

“我们知道没有插电的计算机是一堆废铁,那么插了电的计算机是什么?”

“一堆会电人的废铁。”

计算机需要软件:系统软件+应用软件。

为了要克服硬件方面总是需要重复编写句柄的问题,所以就产生了操作系统(Operating System,OS),事实上,OS 伴随计算机发展一直都存在,从提高 CPU 运算速率到资源管理到方便用户使用,一直是计算机必备的软件。

操作系统

  • 操作系统内核(Kernel)

    Kernel 主要在于管控硬件与提供相关的能力(如网络功能),避免用户直接操作,内核在内存中放置的区块是受保护的,并且开机后就一直常驻在内存当中

  • 系统调用(System Call)

    遵循内核的规定,从参考硬件变成了参考内核功能。操作软件通常会提供一整组开发接口(API)给工程师开发软件,这就是系统调用层。

  • 一些点
    • 操作系统内核直接参考硬件规格写成
    • 操作系统只是在管理
    • 应用程序都是参考对应的操作系统开发接口