1.1 计算机的概念

“接受用户 输入 命令与数据,经由中央处理器的数学与逻辑单元 运算 处理后, 以 产生 或储存成有用的 信息”。

1.1.1 整体架构

五大单元:

  • 输入 单元

  • CPU 控制 单元:协调周边元件及各单元间的工作

  • CPU 算数逻辑 单元:程序运算与逻辑判断

  • 内存:在CPU与其它单元之间 传递 数据

  • 输出 单元

计算机组成
  • 基本上数据都是 流经内存 再转出去的

  • 数据会流进/流出内存是因为 CPU 所发布的 控制指令

  • CPU 实际要处理的数据则 完全来自于内存

1.1.2 CPU 的架构

CPU 内部含有一些 微指令,指令集的设计是根据不同的 CPU架构 进行的。

精简指令集

RISC / Reduced Instruction Set Computer

微指令集较为精简,单独指令的执行时间很短,完成的操作很单纯,指令的执行性能好;复杂的操作需要多个指令来完成。

公司 CPU产品系列 应用领域
Oracle SPARC 学术领域的大型工作站,银行金融体系的主要服务器
IBM Power Architecture Sony 的 PS3( PowerPC架构)
ARM ARM 各厂牌手机、PDA、导航系统、网络设备(交换器、路由器等)等

复杂指令集

CISC/Complex Instruction Set Computer

CISC 在微指令集的每个小指令可以执行一些较低级的硬件操作,指令数目多而且复杂,每条指令花费时间较长,可以处理的工作较丰富。常见的 CISC 微指令集 CPU 主要有 AMD、Intel、VIA 等的 x86 架构的 CPU。

X86

AMD、Intel、VIA 开发出来的 x86 架构 CPU 被大量使用于 PC 上。

Intel 早期生产出来的 CPU 代号为 8086,后来依此架构又开发出 80286, 80386…, 因此这种架构的 CPU 被称为 x86 架构。

X86_64

x86-64(简称x64)是 64 位版本的 x86 命令集,向后兼容于 16 位及 32 位的 x86 架构。x64 于 1999 年由 AMD 设计,其后也为英特尔采用。

位宽

位宽指 CPU 一次可读取数据的最大数量

64 位 CPU 代表 CPU 一次可以读写 64 位的数据,32 位 CPU 一次读取 32 位数据。

因此,CPU 一次从内存中可读取的数据总量受位宽限制。

32 位 CPU 能读写的最大数据量,理论值为 4GB(232)。

CPU差异

x86 架构 CPU 的差异:

  • 二级高速缓存

  • 每次运行可执行的命令数

  • 微指令集的不同

新的 x86 的 CPU 大多含有更先进的微指令集,如可以加速多媒体程序的运行,加强虚拟化的性能,更加省电等。

1.1.3 其他设备

系统单元

内存、接口、适配卡

存储单元

内存、硬盘、软盘、光盘、磁带等。

输入、输出单元

键盘、鼠标、显示器等

1.1.4 运行流程

CPU 的数据来自内存,如需处理硬盘中的数据,要将数据从硬盘转移到内存,再交给 CPU 处理。

1.1.5 计算机分类

超级计算机

运行速度最快的电脑,其维护、操作费用也最高。主要是用于需要有高速计算的计划中。 例如:国防军事、气象预测、太空科技,用在仿真的领域较多。

大型计算机

通常具有数个高速的CPU,功能上虽不及超级计算机,但也可用来处理大量数据与复杂的运算。 例如大型企业的主机、全国性的证券交易所等每天需要处理数百万笔数据的企业机构, 或者是大型企业的数据库服务器等等。

小型计算机

小型机(Minicomputer)仍保有大型计算机同时支持多用户的特性,但是主机可以放在一般作业场所, 不必像前两个大型计算机需要特殊的空调场所。通常用来作为科学研究、工程分析与工厂的流程管理等。

工作站

工作站的价格又比小型机便宜许多,是针对特殊用途而设计的电脑。在个人电脑的性能还没有提升到目前的状况之前, 工作站电脑的性能/价格比是所有电脑当中较佳的,因此在学术研究与工程分析方面相当常见。

微电脑

即微机,个人电脑就属于这部份的电脑分类,体积最小,价格最低,大致又分为台式机、笔记本等。

1.2 硬件

PC 的结构

主板上芯片组设计优劣,会直接影响整体性能。

早期的芯片组通常分为两个 桥接器 来控制各元件的沟通:

北桥:负责连接速度较 的 CPU、内存、显卡接口等

南桥:负责连接速度较 的设备接口, 包括硬盘、USB、网卡等等。

由于北桥最重要的就是 CPU 与内存之间的桥接,因此目前的主流架构中, 大多 将北桥内存控制器整合到 CPU 封装中。早期芯片组分南北桥,CPU 与内存交流时,会瓜分掉北桥的宝贵带宽。将内存控制器整合进 CPU 以后,CPU与内存直接交流,速度更快,不会消耗额外带宽。

华硕主板

1.2.1 CPU

CPU 的主要工作是 运算判断

散热

由于 CPU 负责大量运算,发热量很大,通常安装风扇来散热。

多核

x86 个人电脑的 CPU 主要供应商为 Intel 与 AMD,主流 CPU 均为多核架构,即 一颗 CPU 封装中 嵌入多个运算核心

脚位

不同的 CPU 型号大多有 不同的脚位,搭配的 主板芯片组 也不同,升级主机时,要注意主板所支持的 CPU 型号。

频率

频率就是 CPU 每秒 钟可以进行的 工作次数。 频率越高表示 CPU 单位时间完成的工作更多。

CPU 频率为 3.6 GHz, 表示该 CPU 在一秒内可以进行 3.6 * 109 次工作,每次工作都可以执行少数的命令。

不同的CPU之间不能单纯的以频率来判断运算性能,因为每颗CPU的微命令集不相同,架构也不见得一样,可使用的二级高速缓存及其计算机制可能也不同,加上每次频率能够进行的工作命令数也不同!所以,频率目前仅能用来比较同款CPU的速度!

CPU 工作频率

主频 = 外频 * 倍频

主频也叫内频。

外频

早期的 CPU 设计中,外频指 CPU与外部元件进行数据传输时的速度。外频速度越高,处理器在同一周期下可读写的数据越多,因此,外频成为系统性能上的 瓶颈

倍频

倍频则是 CPU 内部 用来 加速 工作性能的一个 倍数, 两者相乘才是 CPU 的主频。

如主频为 3.0 GHz,外频为 333 MHz,则倍频是 9 倍

因运算速度采用十进制,因此倍频 = 3 * 1000 / 333 = 9

超频

将CPU的倍频或者是外频通过主板的设置功能更改成较高频率的一种方式。

因CPU的倍频通常在出厂时已经被锁定而无法修改, 因此较常被频的为外频

总线宽度

FSB

Front Side Bus,前端总线,指 CPU与内存之间 的数据传输线。

FSB 频率则是指 CPU 与内存之间的数据传输速率,即数据带宽(GByte/s):

数据带宽 = ( 前端总线频率 × 数据位宽 ) / 8

例:64 位宽,FSB频率为 1600 MHz,则最大带宽为:

1600MHz * 64位 = 1600MHz * 8 字节 = 12.8 GByte/s。

🔹 得益于北桥整合到 CPU 内部的设计,CPU 得以和各个元件单独沟通。

不同元件与 CPU 的通信走不同的路径:

如内存使用系统总线带宽来与 CPU 沟通。而显卡则通过 PCI-E 的序列通道设计来与 CPU 沟通。

CPU等级

i386, i586, i686 为 x86 架构的不同等级,64 位 CPU 统称 x86_64。

设计应用程序时可以对某类 CPU 专门优化,程序对于 CPU 等级向下兼容。

超线程

Hyper-Threading, HT

CPU 运算速度太快,运算核心经常处于闲置状态。在 一个实体CPU 中,提供 两个逻辑线程 即为超线程。

理论上超线程会提升性能,但需要 CPU、主板芯片组、主板BIOS、操作系统、应用软件支持。对于某些程序,或不支持多线程的程序来说,超线程反而会降低性能。

1.2.2 内存

个人电脑的内存主要元件为动态随机存取内存(DRAM, Dynamic Random Access Memory),只有在通电时才能记录,断电后数据消失。

使用上较广泛的有所谓的 SDRAM 与 DDR SDRAM 两种。

SDRAM 与 DDR 差别

脚位与工作电压不同,

DDR 是双倍数据传输速度(Double Data Rate),可以在一次工作周期中进行两次数据的传输,传输频率比 SDRAM 要好。新一代的 PC 大多使用 DDR 内存。

下表为 SDRAM 与 DDR SDRAM 的型号与频率及带宽之间的关系:

类别 型号 数据宽度(位) 内部频率(MHz) 频率速度 带宽(频率x宽度)
SDRAM PC100 64 100 100 800 MB/sec
SDRAM PC133 64 133 133 1064 MB/sec
DDR DDR-266 64 133 266 2.1 GB/sec
DDR DDR-400 64 200 400 3.2 GB/sec
DDR DDR2-800 64 200 800 6.4 GB/sec
DDR DDR3-1600 64 200 1600 12.8 GB/sec

DDR*L

DDR*L 降低了内存的操作 电压,DDR3 标准电压为 1.5V,但 DDR3L 为 1.35V,DDR4L 仅为 1.05V,更省电,需要主板支持。

为什么内存越大速度越快

系统无需频繁释放内存中数据,无需频繁读取硬盘。

多通道设计

双通道

将多个内存由串联方式改良为 并联 方式,以得到更大的带宽。

要使用双通道功能,内存必须 成对 地安装在主板对应的插槽。

理论上,双通道能提升内存两倍的性能;实际上对系统整体性能来说,打开双通道带来的性能提升约为 2% ~ 3%,最多 5%。

为配合多通道技术,主板上内存插槽的颜色一般两两成对。

除双通道外,中档服务器也经常提供三通道,甚至四通道的内存环境。

DRAM 与 SRAM

除了内存条之外,个人电脑中还有许多其他类型的内存。

SRAM

静态随机存取内存(Static Random Access Memory),特点:

  • 使用的电晶体数量较多

  • 价格较高

  • 不易做成大容量

  • 速度快

二级高速缓存内存

常用的数据放到 CPU 内部,无需读取内存,性能大大提升。

高速缓存

因为 L2 内存要整合到 CPU 内部,因此速度必须与 CPU 频率相同,使用 SRAM

只读存储器

ROM,Read Only Memory, 只读存储器。断电后可以保存数据。

常用来写入 固件。BIOS 就是一种固件。

BIOS(Basic Input Output System)是一套程序,掌握了系统硬件的详细信息与启动设备的选择,写死到主板上面的一个 ROM 中。

近年来,BIOS 有时需要更新,因此,现在的 BIOS 使用闪存或 EEPROM

1.2.3 显卡

显存

显存容量影响屏幕的 分辨率色彩深度

GPU

CPU 并非针对某些 3D 计算而设计的,平时已经很忙了, 所以在显卡上嵌入一个 3D加速 芯片。

规格

显卡也是通过 CPU 的控制芯片来与 CPU、内存等沟通。为提升数据的传输,显卡的规格由 PCI 发展到 AGP,发展到现在的 PCI-Express 。

规格 宽度 速度 带宽
PCI 32 位 33 MHz 133 M字节/s
PCI 2.2 64 位 66 MHz 533 M字节/s
PCI-X 64 位 133 MHz 1064 M字节/s
AGP 4x 32 位 66x4 MHz 1066 M字节/s
AGP 8x 32 位 66x8 MHz 2133 M字节/s
PCIe 1.0 x1 250 M字节/s
PCIe 1.0 x8 2 G字节/s
PCIe 1.0 x16 4 G字节/s

PCIe 使用 通道 的概念来处理,在 PCIe 1.0 中,每个通道有 250 MB/s 的带宽, 通道通常最大为 x16,通道越多,总带宽越高。

规格 1x带宽 16x带宽
PCIe 1.0 250MByte/s 4GByte/s
PCIe 2.0 500MByte/s 8GByte/s
PCIe 3.0 ~1GByte/s ~16GByte/s
PCIe 4.0 ~2GByte/s ~32GByte/s

接口

  • D-Sub (VGA端子):较早,15 针,模拟信号,当初设计是针对传统图像管屏幕。

  • DVI:共有四种以上的接头,常见于液晶屏幕的连接。

  • HDMI:可以同时传输影像与声音

  • Display port:可以同时传输影像与声音

1.2.4 储存设备

储存设备包括:硬盘、软盘、MO、CD、DVD、磁带机、U盘、蓝光光驱、网络储存设备(SAN, NAS)等

硬盘的物理组成

硬盘依据台式机与笔记本电脑而有分为 3.5 英寸及 2.5 英寸。

主要组成:圆形盘片、机械手臂、 磁头与主轴马达

硬盘物理构造

数据写在具有磁性物质的盘片上,通过机械手臂上的磁头来读写。 实际运行时, 主轴马达让盘片转动,然后机械手臂可伸展让磁头在盘片上进行读写。 由于单一盘片容量有限,因此有的硬盘会有多个盘片。

盘片上的数据

扇区

扇区是磁盘的 最小物理储存单位

较早的硬盘的扇区为 512 字节,新的大容量硬盘为 4K 字节。

磁道

同一个同心圆的扇区组合成的

柱面

所有盘片上面的同一个磁道组合的 虚拟圆柱

外围的圆具有更多的扇区,因此通常数据的读写会 由外圈开始 往内写。

分区

旧式 MSDOS 分区,新式 GPT 分区。

传输接口

传统磁盘接口有 SATA,SAS,IDE,SCSI,USB,eSATA 等。

目前 IDE 已经被 SATA 替换,而 SCSI 则被 SAS 替换。

SATA接口

每个设备需要使用一条SATA线。

由于SATA一根排线仅接一个硬盘,所以 无需跳线

不同主板上的 SATA 插槽数量不同,且每个插槽都有 编号

SATA 版本已经到了 SATA 3.0 ,每一代都可以向下兼容:

版本 带宽 (Gbit/s) 速度 (MByte/s)
SATA 1.0 1.5 150
SATA 2.0 3 300
SATA 3.0 6 600

SATA 传输接口传输时,通过的数据演算法的关系,当传输 10 位编码时,仅有 8 位为数据,其余 2 位为检验之用。因此带宽的计算上面, 使用的换算 (位 转 字节) 为 1:10 而不是 1字节=8位。

虽然 SATA3 接口理论上可达 600M字节/s 的传输速度, 不过目前传统的硬盘由于其物理组成的限制,实际上极限速度大约在 150~200 MByte/s 而已。

SAS接口

SAS, Serial Attached SCSI,

SAS 由 SCSI 接口进化而来,速度比 SATA 的快,SAS 硬盘的转速与传输的速度也比 SATA 硬盘好,支持热插拔,很贵。

一般 个人电脑 的主板上通常没有内置 SAS 连接接口,得要通过 外接卡 才能够支持。

版本 带宽 (Gbit/s) 速度 (MByte/s)
SAS 1 3 300
SAS 2 6 600
SAS 3 12 1200
USB接口
版本 带宽 (Mbit/s) 速度 (MByte/s)
USB 1.0 12 1.5
USB 2.0 480 60
USB 3.0 5G 500
USB 3.1 10G 1000

USB 3.0 理论速度很快,实际读写速度为 100 MBytes/s。

固态硬盘

SSD, Solid State Driver

闪存 做成的大容量设备,接口也是 SATA 或 SAS。

和传统硬盘相比,固态硬盘具有低功耗、无噪音、抗震动、低热量的特点。

固态硬盘普及的五大问题:成本、写入次数、读取干扰、损坏时的不可挽救性及掉速。

测试磁盘性能时, 有个参数叫做每秒读写操作次数 IOPS ,数值越大,可读写次数越多,性能越好。

选购与运行须知

  • 使用 SSD 作为系统盘,数据储存在 HDD。

  • 硬盘的缓存越大越好

  • 主流台式机硬盘为每分钟 7200 转,笔记本电脑则是 5400 转。

  • 电脑通电后,避免震动硬盘。硬盘断电时机械手臂必须归位

1.2.5 扩展卡与接口

PCIe

是电脑总线 PCI 的一种,PCIe 的连接是创建在一个双向的序列的(1-位)点对点连接基础之上,这称之为“传输通道”。而较早的 PCI 是基于总线控制,所有设备共享的单向32位并行总线。PCIe 的规范主要是为了提升电脑内部所有总线的速度,因此带宽有多种不同规格标准,其中PCIe x16是专为显卡所设计的部分。

PCIe 有不同的通道数,常见的有 x1, x4, x8, x16 等,个人电脑主板 常见是 x16 的,一般服务器则大多有多个 x8 的接口, x16 反而比较少见。 不同通道的接口可以根据插槽长度来区分。

多通道卡安装在少通道插槽的可用性

如果一个 CPU 最多仅能支持 16 个 PCIe 3.0 的通道数,要么使用一个 x16,或者是两个 x8 ,或者是两个 x4 加上一个 x8 的方式来增加扩展卡!这是可以直接连接到 CPU 的通道!

比较高级的主板上,看上去有好多 x16 的插槽,但是有些插槽内其实只有 x8 或 x4 的通道有用, 其他的都是空的没有金手指。如果把 x16 的卡安装在 x16 的插槽,但是这个插槽仅有 x4 的电路设计,这张卡仅使用 x4 的电路来传输数据,性能会大打折扣。

之所以服务器一般都用 PCIe x8 的接口 (速度足够一般板卡使用了), 是为了增加扩展卡的数量。

1.2.6 主板

把卡插在哪个槽性能最好

插在跟 CPU 直接连线的插槽,性能最佳!

如果插在与南桥连接的插槽,扩展卡数据需要先进入南桥跟大家抢带宽,之后要传向 CPU 时,还得要通过 CPU 与南桥的沟通管道,即 DMI 2.0

DMI 2.0 的文件传输速度仅为 2GByte/s, 要知道,PCIe 2.0 x8 的理论速度已经达到 4GByte/s 了,但是与 CPU 的通道竟然仅有 2GB,性能的瓶颈就这样发生在 CPU 与南桥 的沟通上面

设备 I/O 地址与 IRQ 中断通道

I/O 地址类似每个设备的 门牌号码,是 唯一 的,不能有两个设备使用同一个I/O地址。

IRQ 是各个 设备 连接到 CPU 的专门 路径。各设备可以通过 IRQ 中断通道来告知 CPU 该设备的工作情况,以方便 CPU 进行工作分配。

CMOS 与 BIOS

CMOS 主要的功能为 记录 主板上面的 参数, 包括系统时间、CPU 电压与频率、各项设备的 I/O 地址与 IRQ 等,CMOS 需要主板上的 电池 才能不丢失。

BIOS 为写入到主板上某一块 flash 或 EEPROM 的 程序,他可以在启动的时候执行,以载入 CMOS 当中的参数,并尝试调用储存设备中的启动程序,进一步进入操作系统当中。BIOS 程序也可以修改 CMOS 中的数据。

周边设备接口

周边设备接口

1.2.7 电源

用料不同,会导致电源供应的稳定性也会差很多。

能源转换率

电源本身也会吃掉一部份的电力,如果你的主机系统需要 300W 的电力,你最好要挑选 400W 以上的电源。

能源转换率指的是“输出的功率 / 输入的功率”。数值越高表示被电源自身损耗的电力越少。

1.2.8 硬件与稳定性

  • 系统超频

  • 电源不稳

  • 内存无法负荷

  • 散热不好

1.2.9 硬件选择

整体性能取决于与系统中 最慢的设备 有关。

主机配置

小型服务器
  • CPU:一般就好

  • 内存:内存越大越好,否则会用到硬盘的内存交换空间,影响整体性能

  • 硬盘:够用就好,如果服务器用于备份,或者文件服务器,则要考虑使用 RAID

  • 显卡:能用就行

  • 网卡:Intel / boradcom 网卡

  • 光驱、键盘、鼠标:能用就行

小型主机

家用或小型企业,不包含 X Window

  • CPU:五年内的产品

  • RAM:大于 1 GB

  • 网卡:普通网卡

  • 显卡:通用就好

  • 硬盘:20 GB 以上

图形化台式机

Linux 的练习机或办公。

  • CPU:中高级

  • RAM:1 GB 以上

  • 网卡:普通

  • 显卡:256 MB 以上显存

  • 硬盘:越大越好

中高级服务器

中小型企业、学校的 FTP/mail/WWW 等网络服务

  • CPU:高级

  • RAM:4GB 以上

  • 网卡:broadcom、Intel

  • 显卡:64 MB 显存

  • 硬盘:RAID、网络硬盘

  • 购买商用服务器, 因为商用服务器已经通过制造商的兼容、散热、稳定性等测试。

1.3 数据表示方式

1.3.1 进制转换

二进制与十进制转换

1.3.2 文字编码系统

“编码系统” 是一个 “字码对照表”

把文字写入文件时,依据编码对照表将该文字数据转成数字后保存。

从文件中读取文本数据时,也会把数字转成对应的文字后,再输出。

常用的英文编码表为 ASCII 系统,每个字符占用 1字节 的记录, 因此总共会有 28 = 256 种变化。

ASCII 码容量太小,UTF8 编码系统打破了所有国家的不同编码, 因此是目前很受欢迎的编码。

1.3.3 计量单位

容量单位

电脑对数据的判断主要依据有没有通电来记录信息,所以理论上它只认识 0 与 1 ,该二进制的单位称为

在储存数据时以 字节 为基本单位:

1 字节 = 8 位

文件大小使用二进制,所以 1GB 的文件大小等于:1024 x 1024 x 1024 字节 。

单位 缩写 二进制 字节数 简写
KiloByte kB 210 1,024 1024 B
Megabyte MB 220 1,048,576 1024 kB
Gigabyte GB 230 1,073,741,824 1024 MB
Terabyte TB 240 1,099,511,627,776 1024 GB
Petabyte PB 250 1,125,899,906,842,624 1024 TB
Exabyte EB 260 1,152,921,504,606,846,976 1024 PB
ZettaByte ZB 270 1,180,591,620,717,411,303,424 1024 EB
YottaByte YB 280 1,208,925,819,614,629,174,706,176 1024 ZB

速度单位

运算速度单位使用十进制,如 1GHz 就是 1000 x 1000 x 1000 Hz 。

单位 缩写 二进制 位数 简写
Kilobit kbit 103 1,000 1000 bit
Megabit Mbit 106 1,000,000 1000 kbit
Gigabit Gbit 109 1,000,000,000 1000 Mbit
Terabit Tbit 1012 1,000,000,000,000 1000 Gbit
Petabit Pbit 1015 1,000,000,000,000,000 1000 Tbit
Exabit Ebit 1018 1,000,000,000,000,000,000 1000 Pbit
ZettaBit Zbit 1021 1,000,000,000,000,000,000,000 1000 Ebit
Yottabit Ybit 1024 1,000,000,000,000,000,000,000,000 1000 Zbit
CPU 频率

即 CPU 时钟频率,CPU 运算时的工作频率,1 秒内发生的同步脉冲数,单位 Hz,它决定计算机的运行速度。

网络传输

由于网络使用的是 ,因此网络传输速度的单位为 Mbps 及 MBps 。

  • 买了 500GB 的硬盘,但是格式化完毕后却只剩下 460GB

    因为硬盘厂商使用 十进制 单位:

    500 GByte = 500 * 1000 * 1000 * 1000 Byte

    而文件的空间单位使用 二进制

    500 * (1000/1024) * (1000/1024) * (1000/1024) ≈ 466 GB

    硬盘厂商之所以使用十进制,因为他们把硬盘扇区的总数量做为硬盘的容量。

1.4 软件

软件分为:系统 软件,应用 程序。

1.4.1 机器代码与编译

要想让 CPU 工作,要编写 CPU 懂的指令码:

  • 需要了解 机器语言

  • 需要了解所有 硬件 的相关 函数

  • 程序 无法迁移:为 A 电脑写的程序不能运行在 B 电脑上

  • 程序具有专一性:不同程序要参考不同的硬件函数

编译器

编译器把人类写的程序语言转译成机器语言。

常见的编译器有 C, C++, Java, Fortran 等等。

机器语言与高级程序语言的差别:

1.4.2 操作系统

驱动 所有硬件,提供接口 给软件工程师。

操作系统内核(Kernel)

操作系统是一组程序,通过这些程序来管理所有硬件的各种工作,这些功能就是操作系统的内核(Kernel)。

内核的管理动作非常重要,如果内核程序破坏,会导致整个系统崩溃,因此 内核程序 所在的内存区块是受保护的,并且 启动后常驻内存

系统调用层

操作系统提供一整组 开发接口, 即系统调用层。

如用C语言编程只需参考C语言的函数,内核的系统调用接口会自动的把C程序语言的语法转成内核可以了解的任务函数,内核就能够顺利运行该程序了。

软件与内核关系密切,与硬件关系不大。

操作系统其实就是 内核 与其提供的 接口工具,一般的操作系统会包含内核与一些软件。

  • 操作系统的内核层直接参考硬件规格写成,操作系统只能运行于其支持的硬件架构

  • 操作系统只是在 管理硬件资源,包括 CPU、内存、输入输出设备及文件系统文件。操作系统只能让电脑主机做好工作准备而已。

  • 应用程序的开发都是参考操作系统提供的开发接口,应用程序只能运行于其支持的操作系统上

内核功能

系统调用接口

通过该接口,程序开发者可以轻松的与内核进行沟通,充分利用硬件的资源。

进程控制

多任务环境中,控制 CPU 的资源有效地分配,从而提升整体系统性能。

内存管理

所有程序和数据必须先加载到内存。

文件系统管理

文件系统的管理。

驱动设备

管理硬件是内核的主要工作之一。

操作系统与驱动程序

操作系统通常会提供一个开发接口给硬件厂商, 根据该接口开发驱动程序。

  • 操作系统必须要能够驱动硬件,如此应用程序才能够使用该硬件功能;

  • 一般来说,操作系统会提供开发接口,让厂商制作他们的驱动程序;

  • 要使用新硬件功能,必须要安装厂商提供的驱动程序才行;

  • 驱动程序是由厂商提供的,与操作系统开发者无关。

1.4.3 Linux 中的设备文件名

在 Linux 系统中,每个设备都被当成一个文件来对待:

设备 对应文件名
SCSI/SATA/USB硬盘机 /dev/sd[ap]
USB闪存盘 /dev/sd[ap] (与SATA相同)
VirtI/O界面 /dev/vd[ap] (用于虚拟机内)
软盘机 /dev/fd[0-7]
打印机 /dev/lp[0-2] (25针打印机)/dev/usb/lp[0-15] (USB 接口)
鼠标 /dev/input/mouse[0-15] (通用)/dev/psaux (PS/2界面)/dev/mouse (当前鼠标)
CDROM/DVDROM /dev/scd[0-1] (通用)/dev/sr[0-1] (通用,CentOS 较常见)/dev/cdrom (当前CDROM)
磁带机 /dev/ht0 (IDE 界面)/dev/st0 (SATA/SCSI界面)/dev/tape (当前磁带)
IDE硬盘机 /dev/hd[ad] (旧式系统才有)

1.4.4 应用程序

应用程序开发时均会参考操作系统提供的开发接口,这些软件可以让用户实现特定的功能。