整理了一些基础和进阶的东西,希望能帮到计算机萌新,也欢迎各位计算机大佬指点。

0.1电脑:辅助人脑的好工具

所谓的电脑就是一种计算机,而计算机其实是:「接受使用者输入指令与资料,经由中央处理器的数学与逻辑单元运算处理后, 以产生或储存成有用的信息」。因此,只要有输入设备(不管是键盘还是触控屏) 及输出设备(例如电脑屏幕或直接由打印机印出来),让你可以输入资料使该机器产生资讯的, 那就是一部计算机了。

计算机可以帮助我们进行大量计算!计算机可以将大量的数据进行分析并且转化为可视化的各种各样的图标来方便我们理解。

0.1.1 电脑硬件的五大单元

电脑硬件组成主页分为三部分:

  • 输入单元:
    • 包括并不限于常见的鼠标,键盘,触摸屏,扫描器,手写板
  • 主机部分:
    • 组成一台计算机的主体硬件,显卡、硬盘、主板、CPU等一堆电子元器件和记忆体
  • 输出单元:
    • 例如液晶显示器,投影仪,打印机

我们通过鼠标,键盘来将一些资料或者数据输入进主机,然后主机经过一系列的存储和处理数据,将结果输出至显示器或者通过打印机打印出来。如果你曾拆解过一些电子产品就不难发现,不仅仅是电脑,其核心就是一块PCB板,上面焊接了许许多多的电子元器件和一些芯片,其中最明显的就是中央处理器(CPU)主记忆体(内存条/RAM) ,还有一些较小的集成电路芯片或者拓展槽,其区别可能只是安装的工艺不同,如焊接或插槽卡扣。

整部主机最重要的便是中央处理器(CPU) ,CPU作为一个具体有特定功能的芯片,里面包含了微指令集,如果你想让你的电脑实现什么特殊的功能,那必须参考这颗CPU是否有相关的内建的微指令集才行。

CPU的微指令集(Microinstruction Set)是指CPU内部控制单元用来实现特定操作的低级指令集合。微指令集是CPU微架构的重要组成部分,它定义了如何将复杂的机器指令分解为简单的控制信号来驱动硬件完成操作。

由于CPU主要用于管理和运算,因此CPU又可以分为两个主要的单元,分别是:

  • 算数逻辑单元(ALU):
    • 负责执行算术运算和逻辑运算
  • 控制单元(CU):
    • 是CPU的核心指挥机构,负责从内存中取指令并解释、协调各部分硬件执行指令

CPU的重点在于进行运算和判断,那么要被运算和判断的资料从哪里来?CPU的读取资料都是从主记忆体(内存条/RAM)来的,主记忆体的资料则是通过输入单元传输进来,而且CPU处理完成的数据也必须先写入主记忆体中,最后资料才从主记忆体传输到输出单元。

主记忆体(内存条/RAM)是计算机系统中的短期存储器,用于存储当前被处理的数据、指令以及运行程序。

所以为什么每当我们一般谈论最具“性价比”的电脑升级方案便是升级内存条。其中本质就是加大内存条容量(增加记忆体容量)和更换速度更快的内存条(增加记忆体读写速度)。因为所有的资料都要经过主记忆体的传输, 所以记忆体的容量如果太小或者速度太慢,资料的写入和输出就会拥堵导致电脑很”卡“甚至当读写量非常大的时候内存会出现溢出导致发生严重错误。

综合上面的描述,我们大致可以知道其实电脑是由几个单元所组成的,其中主要为输入单元、输出单元、CPU内部的控制单元、算数逻辑单元与主记忆体五大部分。

上述图示中的「系统单元」其实指的就是电脑的主要元件,其中的重点就是CPU与主记忆体。其中红线表示数据的传输方向灰线则是控制单元的命令,由此可以发现基本上数据资料都是经过主记忆体再转出去的,数据的流入/流出则是由CPU控制主记忆体来实现的,而CPU实际要处理的资料则完全来自于主记忆体(不管是程序还是文件资料)。

这就是为什么当你的主记忆体(内存条/RAM)不足时, 系统的效能就会变的很糟糕!

最简单的实验,疯狂打开浏览器,你就会在监视面板或者资源管理器看见你电脑的主记忆体也就是内存直线增加,当到达一定程度时,你就会发现浏览器页面切换速度明显变慢,并且系统整体变卡甚至崩溃。

而由上面的图示我们也能知道,所有的单元都是由CPU 内部的控制单元来负责协调的,因此CPU 是整个电脑系统的最重要部分! 那么目前世界上有哪些主流的CPU 呢?是否刚刚我们谈到的硬件内全部都是相同的CPU 架构呢?底下我们就来谈一谈。

0.1.2 一切设计的起点:CPU的架构

如前面所说,CPU其实内部已经含有一些微指令集,我们所使用的软件都是要经过CPU内部的微指令集来达成才行。那些指令集的设计又被分为两种设计理念,世界上常见的两种CPU架构:

  • 精简指令集(Reduced Instruction Set Computer,RISC)
  • 复杂指令集(Complex Instruction Set Computer,CISC)

精简指令集(RISC)

一种计算机体系结构,特点是使用简单、快速的指令集,每条指令执行的时间通常相同或接近,指令数量少。但是若要做复杂的操作和数据处理,就需要多个指令来完成。

常见的架构:

  • ARM架构:
    • 安谋公司(ARM Holdings)设计,目前最广泛使用的 RISC 架构之一,广泛应用于智能手机、嵌入式设备、平板电脑等消费电子产品。ARM 核心的设计具有低功耗、高效的特点。
    • 代表性处理器:ARM Cortex 系列(如 Cortex-A、Cortex-M)。
  • MIPS架构:
    • 另一种典型的 RISC 架构,由 MIPS Computer Systems 公司设计,广泛应用于嵌入式系统、路由器、网络设备等。
    • 代表性处理器:MIPS R4000、MIPS 32 系列。
  • SPARC架构:
    • 由 Sun Microsystems(现为 Oracle)开发的一种 RISC 架构,最初用于高性能计算和服务器市场。
    • 代表性处理器:Sun UltraSPARC、Oracle SPARC T 系列。

在应用方面,SPARC CPU 的电脑常用于学术领域的大型工作站中,包括银行金融体系的主要伺服器也都有这类的电脑架构; MIPS 架构在嵌入式领域有广泛应用,特别是在路由器、打印机、家电和视频设备中; 那安谋的ARM 呢?你常使用的各厂牌手机、PDA、Intel的Turbo Boost技术是一项动态调整处理器频率的技术,旨在提升CPU在需要时的性能,尤其是在单线程或双线程应用程序中。该技术通过在处理器的负载较低时动态提升处理器频率,从而在高负载下提高处理器的计算能力,以更高效地执行任务。导航系统、网路设备(交换器、路由器等)等,几乎都是使用ARM 架构的CPU。

目前世界上使用范围最广的CPU 可能就是ARM 这种架构。

复杂指令集(CISC)

强调指令集的复杂性,特点是指令集丰富,单条指令可能执行多个操作,如存储、加载和计算等。

常见的架构:

  • x86架构:
    • x86 架构由英特尔公司(Intel)开发,是目前全球最流行的 CISC 架构,广泛用于个人计算机、服务器和工作站中。自 1978 年推出以来,x86 架构已经成为个人计算机的标准架构。
    • 代表性处理器:Intel Core、Intel Xeon、AMD Ryzen、AMD EPYC。
  • VAX架构:
    • 由 Digital Equipment Corporation(DEC)开发的 CISC 架构,广泛应用于早期的工作站和高性能计算机中。
    • 代表性处理器:VAX 11 系列。

由于AMD、Intel、VIA所开发出来的x86架构CPU被大量使用于个人电脑(Personal computer)用途上面, 因此,个人电脑常被称为x86架构的电脑!那为何称为x86架构呢? 这是因为最早的那颗Intel发展出来的CPU代号称为8086,后来依此架构又开发出80286, 80386...,因此这种架构的CPU就被称为x86架构了。

在2003年以前由Intel所开发的x86架构CPU由8位元升级到16、32位元,后来AMD依此架构修改新一代的CPU为64位元, 为了区别两者的差异,因此64位元的个人电脑CPU又被统称为x86_64的架构。

位元(bit)是计算机科学中的最基本数据单位,它代表了二进制系统中的一个值。一个位元只能取两个可能的值,通常是0或1,这两个值也分别代表“关”或“开”、“假”或“真”等。

所谓的位元指的是CPU一次资料读取的最大量! 64位元CPU代表CPU一次可以读写64bits这么多的资料,32位元CPU则是CPU一次只能读取32bits的意思。 因为CPU读取资料量有限制,因此能够从记忆体中读写的资料也就有所限制。

所以,一般32位元的CPU所能读写的最大资料量,大概就是232字节(即4GB)左右。但是到了64位CPU最大可以寻址的内存是264字节,理论上可以支持更大容量的内存(大约18.4亿GB)。但是实际可用的内存受限于硬件和操作系统的支持,通常现代操作系统和硬件都会支持多达数TB的内存。

那么不同的x86架构的CPU有什么差异呢?除了CPU的整体结构(如第二层快取、每次运作可执行的指令数等)之外, 主要是在于微指令集的不同。新的x86的CPU大多含有很先进的微指令集, 这些微指令集可以加速多媒体程式的运作,也能够加强虚拟化的效能,而且某些微指令集更能够增加能源效率, 让CPU耗电量也就是功耗降低,从而延长电脑的待机时间和使用时间,CPU的研发方向也从主流的一味追求高频率,高并发的高性能出现了追求低功率,长时间运行的高能源效率这个分支。

现代处理器通常融合了 RISC 和 CISC 的特点,通过复杂的硬件设计和微操作来平衡两者的优缺点

以下是一些常见的微指令集和它们的作用:

  • SSE、SSE2、SSE3、SSE4:这些是用于加速浮点计算和多媒体处理的指令集,尤其是视频编解码、图像处理和音频处理等应用。
  • AVX、AVX2、AVX-512:这些指令集进一步扩展了SSE系列,主要用于加速高并发浮点计算和大数据运算,尤其在科学计算和大规模并行计算中非常有用。AVX-512可以处理更大的数据块,适用于高性能计算领域。
  • Intel VT-x和AMD-V:这两个指令集是Intel和AMD为虚拟化技术优化的微指令集,能显著提高虚拟机的性能和响应速度。
  • AES-NI:加速AES加密算法的指令集,广泛应用于加密操作,提升加密/解密的效率。
  • FMA(Fused Multiply-Add) :一种用于加速数学运算的指令,广泛应用于科学计算和机器学习等领域。

不同的x86架构的CPU之间的差异,除了结构设计执行指令数等硬件层面的区别外,还体现在以下几个方面:

  1. 微指令集的差异:不同的指令集(如AVX、SSE、AES-NI等)可以加速特定类型的操作,尤其是在多媒体处理、加密和虚拟化等方面。
  2. 能源效率:现代CPU通过技术如动态电压调节、低功耗模式、多核心设计等来提高能效,降低功耗。
  3. 超线程与多核技术:提高多线程计算能力,提升多任务处理性能。
  4. 缓存和内存管理:改进的缓存结构可以加速数据访问,减少延迟。
  5. GPU加速和异构计算:利用GPU和其他专用硬件加速计算任务,提高性能。

0.1.3 其他单元的设备

五大单元中最重要的控制、算数逻辑被整合到CPU的封装中,那其他的三个重要电脑单元的设备还有哪些呢?

  • 系统单元:除去包括的CPU在内,主板上还有许许多多的小型集成芯片和各个插槽所拓展的设备,比如网卡,显卡,磁盘等等,其中一张独立显卡对于图形处理来说非常重要,他与显示的精致度、色彩与解析度都有关系。
  • 记忆单元:包括主记忆体(内存条/RAM)和辅助记忆体,其中辅助记忆体就是常说的「存储设备」,如硬盘(机械硬盘HDD / 固态硬盘SSD),U盘等,再老一些还有普及的存储设备还有软盘,光盘,磁带等
  • 输入、输出单元:最普遍的输入单元无非是鼠标和键盘了,还有现在的触摸屏,包括现在开始出现的各式各样的体感设备例如手柄,遥感等。输出设备,除了液晶屏幕,打印机,音响等设备,还有蓝牙耳机,投影仪等等设备。

同时在现代还出现了像VR、AR这样的输入和输出设备的结合体,这些设备不单纯属于输出设备,因为它同时涉及到输入(用户的动作和位置)和输出(虚拟世界的视觉和音频反馈)。因此,它可以被看作是一个包含输入和输出功能的设备。

0.1.4 电脑用途的分类

知道了电脑的基本组成与周边装置,也知道其实电脑的CPU种类非常的多,再来我们想要了解的是,电脑如何分类? 电脑的分类非常多种,如果以电脑的复杂度与运算能力进行分类的话,主要可以分为这几类:

  1. 超级计算机

    • 特点:具备极高的运算能力,通常用于科学研究、大规模数据分析、气象预测等需要海量计算的领域。
    • 代表:如中国的“神威·太湖之光”、美国的“Summit”等。
  2. 大型计算机(主机/Mainframe)

    • 特点:具有高可靠性和处理大量事务的能力,通常用于金融、银行、航空公司等需要大量数据处理的领域。
    • 用途:多用户并发操作、数据库管理、大型企业应用。
  3. 小型计算机(迷你计算机/Minicomputer)

    • 特点:介于大型计算机和微型计算机之间,通常用于中小型企业的业务处理。
    • 用途:工业控制、数据处理、小型服务器等。
  4. 微型计算机(个人计算机/PC)

    • 特点:体积小、价格低、用途广泛,是目前最常见的一类电脑。
    • 分类
      • 台式机(Desktop)
      • 笔记本电脑(Laptop/Notebook)
      • 平板电脑(Tablet)
      • 工业用计算机(嵌入式系统等)
  5. 工作站(Workstation)

    • 特点:比普通个人计算机性能更强,主要用于图形设计、工程计算、视频编辑等需要高性能计算的领域。
    • 代表品牌:如戴尔的Precision系列、联想的ThinkStation系列。
  6. 服务器(Server)

    • 特点:专门为网络服务设计,能够处理多用户访问需求,主要应用于互联网、企业内部系统。
    • 分类:文件服务器、数据库服务器、应用服务器等。
  7. 嵌入式系统

    • 特点:一种专用计算机系统,通常嵌入在其他设备中,用于特定任务。
    • 用途:智能家居、汽车电子、医疗设备等。
  8. 移动计算机

    • 特点:具有便携性,主要包括智能手机、平板电脑和其他移动设备。
    • 用途:满足随时随地的计算需求。

根据需求和应用场景,电脑的分类可以更加细化,例如按功能分为图形工作站、人工智能服务器,或者按外形分为台式机、一体机、超极本等。

目前的个人电脑效能已经够快了,甚至已经比工作站等级以上的计算机运算速度还要快! 但是工作站电脑强调的是稳定不出错,并且运算过程要完全正确,因此工作站以上等级的电脑在设计时的考量与个人电脑并不相同。

0.1.5 电脑上面常用的计算单位 (容量、速度等)

电脑的运算能力除了 CPU 微指令集设计的优劣之外,但主要还是由速度来决定的。 至于存放在电脑储存设备当中的数据容量也是有单位的。


容量单位

电脑对资料的判断主要依据有没有通电来记录信息,所以理论上对于每一个纪录单位而言,它只认识 0 与 1 而已。 0/1 这个二进位的的单位我们称为 bit。 但bit实在太小了,所以在储存数据时每份简单的数据都会使用到8个bits的大小来记录,因此定义出byte这个单位,他们的关系为:

  • 1 Byte = 8 bits

不过同样的,Byte 还是太小了,在较大的容量情况下,使用 byte 相当不容易判断资料的大小,举例来说,1000000 bytes 这样的显示方式你能够看得出有几个零吗? 所以后来就有一些常见的简化单位表示法,例如 K 代表 1024 byte,M 代表 1024K 等。 而这些单位在不同的进位制下有不同的数值表示,底下就列出常见的单位与进位制对应:

二进制(Binary)

1 KiloByte (KB) = 1024 Bytes
1 MegaByte (MB) = 1024 KB
1 GigaByte (GB) = 1024 MB
1 TeraByte (TB) = 1024 GB
1 PetaByte (PB) = 1024 TB
1 ExaByte (EB) = 1024 PB
1 ZettaByte (ZB) = 1024 EB

十进制(Decimal)
1 KiloByte (KB) = 1000 Bytes
1 MegaByte (MB) = 1000 KB
1 GigaByte (GB) = 1000 MB
1 TeraByte (TB) = 1000 GB
1 PetaByte (PB) = 1000 TB
1 ExaByte (EB) = 1000 PB
1 ZettaByte (ZB) = 1000 EB

一般来说,文件容量使用的是二进制的方式,所以 1 GBytes 的文件大小实际上为:1024x1024x1024 Bytes

速度单位则常使用十进制,例如1GHz就是1000x1000x1000 Hz的意思。

其实,若要区分 2 进制还是 10 进位的容量,目前也经常使用 GB 与 GiB 之类的方式来辨别,GB 为 10 进制,加上 i 成为 GiB 则是 2 进制这样,所有的容量都可以这样处理的,包括 KiB, TiB 等等

实际存储容量差异:由于硬盘厂商多采用十进制,而操作系统使用二进制计算,因此标称容量与实际容量会有差异。例如,标称 1 TB 的硬盘在操作系统中显示约为 931 GB。


速度单位

计算机和网络领域,常用到的单位如 MHz、GHz、Mbps 和 Mbyte/秒(MBps)之间有一定的关系,下面是它们的解释和转换方式:

1. Hz、MHz 和 GHz

  • Hz(赫兹) :表示频率的单位,1 Hz 等于每秒钟发生一次的周期。
  • MHz(兆赫兹) :即每秒百万次,1 MHz = 1,000,000 Hz。
  • GHz(千兆赫兹) :即每秒十亿次,1 GHz = 1,000,000,000 Hz。

这些单位用于表示 CPU 处理速度或时钟频率,意味着 CPU 每秒钟能执行多少次指令。例如,3 GHz 的 CPU 时钟频率意味着它每秒执行30亿次操作。

2. 网络带宽的单位(Mbps 和 Mbyte/秒)

  • Mbps(兆位每秒) :网络带宽常用的单位,表示每秒钟传输多少兆位(Mbit)。1 Mbps = 1,000,000 bits per second(每秒100万位)。
  • Mbyte/秒(兆字节每秒) :数据传输速率的另一种表示方式,1 Mbyte = 8 Mbit(因为1字节 = 8位)。

3. 理论最大传输速度转换

以 20M/5M 的光纤带宽为例,这里指的是:

  • 20M:代表下载速度是每秒20兆位(Mbps)。
  • 5M:代表上传速度是每秒5兆位(Mbps)。

如果我们将这些速度转换为字节(byte)单位,可以更容易理解文件传输的大小。因为 1 字节 = 8 位(bit),因此:

  • 下载速度:20 Mbps ÷ 8 = 2.5 MBps(每秒2.5兆字节),即理论上每秒能下载2.5MB的数据。
  • 上传速度:5 Mbps ÷ 8 = 0.625 MBps(每秒640KB),即理论上每秒能上传640KB的数据。

4. 实际情况

这些是理论上的最大传输速度,实际下载和上传速度可能会受到网络质量、路由器性能、网络拥堵、硬件限制等多种因素的影响,因此实际速度往往低于理论最大值。

0.2 个人电脑架构与相关设备组件

0.2.1 CPU和主板架构说明和各组件:

x86架构的个人电脑在计算机市场中依然占据主导地位,尤其在桌面和笔记本领域。Linux系统早期就是基于x86架构发展而来的,因此深入了解x86架构对理解操作系统和硬件之间的关系非常重要。虽然早期的x86架构主要由Intel和AMD两大厂商主导,并且两者的处理器设计理念有一些差异,但随着技术的进步和相互学习,现今这两家公司推出的架构已经非常相似。

1. CPU架构的进展: 在过去的几年中,Intel和AMD都做出了显著的进展。Intel从2015年的Skylake架构开始,持续优化处理器性能,同时推出了多个新系列的处理器。AMD则凭借Zen架构的推出,重新定义了多核性能,并通过Ryzen系列进军高性能市场,挑战了Intel的主导地位。如今,AMD凭借Zen 3和Zen 4架构,在多核性能上超过Intel,吸引了大量的消费者。

2. 主板和芯片组的创新: 随着处理器性能的提升,主板和芯片组的进步也在不断加速。PCIe从3.0标准发展到5.0,带宽大幅增加,为高性能硬件(如GPU、存储设备等)提供了更强的支持。内存技术方面,DDR4逐步过渡到DDR5,带宽和性能都有显著提升。此外,USB标准也从3.0升级到4.0,提供了更快的传输速度和更高的设备兼容性。

3. 制程工艺的革新: 制程工艺的改进是推动处理器性能和能效提升的关键因素。Intel从14nm的制程逐步向10nm、7nm推进,而AMD则通过台积电的先进制程(如7nm、5nm)进一步提升了处理器的性能和能效。随着5nm工艺的成熟,未来处理器的集成度和性能将会进一步提升。

4. ARM架构的挑战: 虽然x86架构在个人电脑和服务器领域依然占主导地位,但ARM架构正在逐渐崭露头角。特别是Apple自研的M系列芯片(如M1、M2)以其高效的性能和能效,在消费电子产品中取得了显著的成功,直接挑战了x86平台的市场份额。ARM架构的优势在于其低功耗和强大的性能,尤其在轻薄设备和移动终端领域有着广泛的应用。

5. 市场发展趋势: 目前,x86架构在高性能计算(如游戏、3D渲染、视频剪辑等)方面仍然占据主导地位。然而,随着移动设备性能的提升和ARM架构的崛起,传统x86PC市场面临着一定的挑战。轻薄笔记本和混合办公设备的需求也在持续增长,这推动了x86架构在性能和便携性之间的平衡。尤其是对于需要高效计算和长时间电池续航的移动设备,ARM架构的优势愈发明显。

由于目前市场占有率还是以Intel为大宗,因此底下以目前相对较新的Intel主板架构来谈谈:

PCH 全称为 Platform Controller Hub,是 Intel 产品的集成南桥。上图为 Intel Z390芯片组

在计算机中,几乎所有的设备在计算机的机箱内都是通过主板(Motherboard / main board)连接在一起,因此在主板上面沟通各部组件的芯片组设计优劣,就会影响效能不少,其中典型就是“南桥”和“北桥”。

南桥北桥是传统计算机主板(主机板)中常见的两种晶片组,它们分别负责不同的任务,确保各个硬件单元之间的高效通信。晶片组的设计和功能是主板的核心组成部分,它们在CPU与其他硬件设备之间提供了连接和协调。

南桥(Southbridge)

南桥位于主板的“南部”,它负责管理低带宽的外设和较慢的通信任务。南桥的主要职责包括:

  • I/O接口:南桥负责管理与外部设备的通信,例如USB端口、硬盘接口(SATA、PATA)、音频、网卡等。
  • PCI和PCIe总线:尽管某些PCIe设备(如显卡)通过北桥连接,但其他的PCI设备通常由南桥管理。
  • 系统管理:南桥还负责管理系统的电源管理、风扇调控、系统监控等。

传统上,南桥的带宽和性能要求低于北桥,因为它主要处理的是外部设备的低速通信。

北桥(Northbridge)

北桥位于主板的“北部”,负责连接CPU、内存和高带宽设备(如显卡)等核心硬件。北桥的主要作用是:

  • CPU与内存通信:北桥负责协调CPU和内存之间的数据传输,通常通过高速总线连接。
  • GPU连接:如果主板上有独立显卡,北桥还负责处理与显卡之间的数据传输。
  • 高速总线接口:如PCIe总线(用于连接显卡、固态硬盘等高速设备)通常由北桥管理。

在传统架构中,北桥是一个性能要求非常高的部分,它直接与CPU进行沟通,因此其带宽和速度影响系统的整体性能。


现代架构的变化

在现代计算系统代理"(由其他扩展或系统环境控制)")机系统中,尤其是Intel和AMD的一些最新架构中,传统的北桥和南桥架构已被集成到一个单独的芯片中,通常被称为平台控制器Hub(PCH)或类似的名称。例如:

  • Intel PCH:Intel在新的芯片组设计中将北桥和南桥功能整合到一个芯片中,提供对CPU、内存、I/O设备的管理。
  • AMD的Fusion架构:AMD的某些处理器(如APU)将图形处理单元(GPU)和其他控制功能集成到一个单一芯片中,减少了对传统北桥和南桥的依赖。

随着技术的发展,许多主板的功能逐渐被整合在一个更为集成的芯片中,但北桥南桥的概念依然是传统计算机架构中非常重要的组成部分。(大多将北桥内存控制器整合到CPU封装当中了, 所以在Intel Z390芯片组图片中你只会看到 CPU 而没有看到以往的北桥芯片)

下面我列出了两个比较典型的主板:

Asus Z390-A PRO (Intel平台)

  • 芯片组:Intel Z390
  • 处理器支持:支持Intel第8代和第9代Core处理器(LGA1151)
  • 内存支持:支持DDR4内存,最大支持64GB(高达4400MHz)
  • 显卡插槽:支持PCIe 3.0 x16插槽,支持SLI和Crossfire
  • 存储接口:支持SATA 6Gb/s、M.2接口
  • 特色功能:支持超频、USB 3.1、增强的电源设计、Wi-Fi模块

MSI MAG B550 TOMAHAWK (AMD平台)

  • 芯片组:AMD B550
  • 处理器支持:支持AMD Ryzen 3000、4000G、5000系列处理器(AM4插槽)
  • 内存支持:支持DDR4内存,最大支持64GB(高达4400MHz)
  • 显卡插槽:支持PCIe 4.0 x16插槽,支持Crossfire
  • 存储接口:支持SATA 6Gb/s、M.2接口
  • 特色功能:Wi-Fi 6、PCIe 4.0、增强的散热系统

0.2.2 执行脑袋运算与判断的CPU

如同我列举出的两个主板上半部的中央部分,那就是CPU插槽。 由于CPU负责大量运算,因此CPU通常是具有相当高发热量的组件。 所以如果你曾经拆开过主板, 应该就会看到CPU上头通常会安插一颗风扇来主动散热的。

目前,x86架构的CPU主要由Intel和AMD两大公司供应,且随着技术的发展,多核处理器已经成为主流。自2015年以来,双核以上的CPU已经是常见配置,而今天(2024年),我们看到的CPU架构已经变得更加复杂。

当前的主流CPU架构发展:

  1. 多核处理器

    • 现在大部分桌面和服务器CPU都已经采用了多核架构,不仅是双核,甚至有四核、六核、八核,甚至更多核心的处理器。例如,Intel的Core i9和AMD的Ryzen 9系列,均为多核架构,具有8核心、12核心、甚至16核心的版本。
    • 多核架构的优点在于能够同时处理多个任务或线程,显著提升多任务处理和并行计算能力。例如,AMD Ryzen系列处理器的最高版本支持16核心32线程,适合高性能计算、内容创作、游戏等需求。
  2. 超线程技术(Hyper-Threading)

    • Intel的部分CPU(如Core i7及更高版本)采用了超线程技术,这允许每个核心同时处理两个线程,进一步提升了处理能力。AMD的最新处理器(如Ryzen 9系列)虽然没有使用超线程技术,但通过高效的多核心设计,同样能处理大量并行任务。
  3. 集成显卡和独立显卡

    • 在现代的CPU中,一些处理器(如Intel的Core i系列、AMD的APU系列)会集成显卡(如Intel的UHD Graphics或AMD的Radeon Vega),这对于不需要独立显卡的用户来说,提供了方便和成本效益。
    • 但对于游戏玩家和专业工作者来说,仍然倾向于搭配独立显卡来获得更高的图形处理能力。
  4. 架构优化

    • IntelAMD的CPU架构也在不断优化。Intel的10nm制程和AMD的7nm制程提高了处理器的效率和能效。比如,Intel的Alder Lake架构结合了高性能核心和高效核心的设计,AMD的Zen 3架构则提高了每个核心的性能,优化了游戏和生产力工作负载。
  5. 高性能计算和服务器

    • 在服务器和工作站领域,CPU核心数更加丰富。AMD的EPYC和Intel的Xeon系列服务器CPU支持更多的核心数,AMD的EPYC 7003系列可达到64核心128线程,这在数据中心和高性能计算任务中提供了巨大的优势。

综上所述,x86架构的CPU在过去的几年里经历了多核化、超线程技术的普及、制程工艺的改进,以及更强的并行处理能力。现如今的主流CPU已经不仅仅局限于双核,而是多核、超线程的架构,这为现代计算需求提供了更强大的支持。

同时,不同的CPU型号大多具有不同的脚位(CPU上面的插脚),能够搭配的主板芯片组也不同, 所以当你想要将你的主机升级时,不能只考虑CPU,你还得要留意你的主板上面所支持的CPU型号,不然买了最新的CPU也不能够安插在你的旧主板上面,目前主流的CPU有Intel的i7十一二三四代系列产品中,甚至先后期出厂的类似型号的脚位也不同, 例如 i7-12700K 使用 LGA1700 插槽而 i7-11700K 则使用 LGA1200 插槽,挑选时必须要很小心。

我们前面谈到CPU内部含有微指令集,不同的微指令集会导致CPU工作效率的优劣。 除了这点之外, 那就是CPU的频率了, 简单的说, 频率就是CPU每秒钟可以进行的工作次数 。 所以频率越高表示这颗CPU单位时间内可以作更多的事情。 举例来说,Intel的i7-4790 CPU频率为3.6GHz, 表示这颗CPU在一秒内可以进行$3.6×10^9$次工作,每次工作都可以进行少数的指令运作之意。

频率只能用来比较同款CPU在相同架构下的性能,但不能用于跨架构或跨品牌CPU之间的效能比较。综合考虑CPU的架构设计缓存配置IPC核心数量等多方面因素,才能更加准确地评估不同CPU之间的性能差异。


CPU的工作频率:外频(Base Clock)倍频(Multiplier)

在早期的CPU设计中,系统架构通常由北桥(Northbridge)负责连接CPU主内存显卡等重要设备。由于这些设备需要通过北桥进行通信,因此为了确保系统各个部件之间能够顺利地交换数据,所有连接的设备必须使用相同的频率。这就引入了前端总线(FSB,Front Side Bus)的概念,用于在CPU和其他组件之间传输数据。

前端总线(FSB)是早期计算机中,CPU与主板上的其他重要组件(如内存、显卡、I/O接口等)之间传输数据的总线。FSB的频率决定了数据在CPU和其他设备之间的传输速度。在早期,所有设备的工作频率基本上都需要与FSB保持一致,以确保数据可以高效地流通。

由于CPU的运算速度逐渐超越了其他组件的能力,而前端总线的频率是固定的,CPU的频率就无法再通过FSB来直接提升。为了解决这个问题,厂商开始在CPU内部引入了倍频的概念。

  • 外频(FSB) :指的是CPU与其他外部设备(如内存、显卡等)之间数据传输的频率。在早期的设计中,外频通常是固定的。
  • 倍频:CPU内部的一种机制,用来加速CPU的运算能力。倍频是指CPU的实际频率是外频的倍数。通过改变倍频,CPU可以在不改变外频的情况下提升其计算能力。

外频与倍频的关系:CPU的实际工作频率是由外频和倍频共同决定的。具体公式为: CPU频率 = 外频 × 倍频

两者相乘才是CPU的频率速度

Intel Core i7-10700K为例,其中内频为3.8GHz,可通过Turbo Boost加速到5.1 GHz,外频为100MHz。

倍频:3.8 GHz ÷ 100 MHz = 38倍

所以,i7-10700K的倍频为38倍。也就是说,外频为100 MHz的情况下,通过38倍的倍频,CPU的工作频率为3.8 GHz。

外频(Base Clock) :现代Intel处理器的外频一般为100 MHz,而不是像旧式的Core 2系列那样有较大的外频。外频用于与其他系统组件(如内存、PCIe设备等)协调工作。

倍频(Multiplier) :倍频由处理器自动调节,以适应不同的工作负载。在这例子中,i7-10700K的倍频为38倍,但当处理器进入超频模式(例如Turbo Boost时),倍频可以动态调整至更高值(比如5.1 GHz的频率时,倍频可以达到51倍)。

很多电脑硬件玩家很喜欢玩'超频',所谓的超频指的是: 将CPU的倍频或者是外频通过主板的设定功能更改成较高频率的一种方式。 但因为CPU的倍频通常在出厂时已经被锁定而无法修改, 因此较常被超频的为外频。例如上述的i7-10700K,其中K代表是一颗解锁版/K系列CPU,同时允许调整倍频进行超频。

  • 提高倍频:可以通过BIOS提高倍频(如从默认的37倍提高到40倍、45倍等),例如:

    • 如果将倍频从37倍提高到45倍,新的频率为:
    • CPU频率 = 100 MHz × 45 = 4.5 GHz
  • 提高外频:如果你不想改变倍频,也可以通过提升外频来超频,例如将外频从100 MHz提高到105 MHz,这将直接影响CPU频率。

    • 假设倍频保持不变,增加外频为105 MHz,新的频率为:
    • CPU频率 = 105 MHz × 37倍 = 3.885 GHz
    • 如果同时提高倍频(例如45倍),则CPU频率变为:
    • CPU频率 = 105 MHz × 45倍 = 4.725 GHz
  • 通过“倍频 + 外频”超频:你也可以结合外频和倍频一起超频。例如,如果外频提升到105 MHz,同时倍频提高到48倍,那么:

    • CPU频率 = 105 MHz × 48倍 = 5.04 GHz

但却因为频率并非正常速度,故可能会造成当机等问题。

但如此一来所有的数据都被北桥卡死了,北桥又不可能比CPU更快,因此这家伙常常是系统效能的瓶颈。 为了解决这个问题,新的CPU设计中, 已经将内存控制器集成到CPU内部,而连结CPU与内存、显卡的控制器的设计,在Intel部份使用QPI (Quick Path Interconnect) 与 DMI 技术,而 AMD 部份则使用 Hyper Transport 了,这些技术都可以让 CPU 直接与主内存、显卡等设备分别进行沟通,而不需要通过外部的链接芯片了。

因为现在没有所谓的北桥了 (整合到 CPU 内),因此,CPU 的时钟设计就无须考虑得要同步的外频,只需要考量整体的频率即可。

Intel的Turbo Boost技术是一项动态调整处理器频率的技术,旨在提升CPU在需要时的性能,尤其是在单线程或双线程应用程序中。该技术通过在处理器的负载较低时动态提升处理器频率,从而在高负载下提高处理器的计算能力,以更高效地执行任务。也就是说现在的Intel的CPU会主动超频,并且会在必要时降频来节省功耗达到省电的目的,所以不再需要手动超频了。


32位元与64位元的CPU与汇流排(母线/bus bar)「宽度」

从上面的简易说明中,我们可以知道,CPU的各项数据均来自内存,在CPU性能较为强大的情况下,如果主内存能提供给CPU的数据量越大,整体系统的效能也应该更好。对于CPU内的内存控制芯片与主内存间的传输速度被称为前端总线速度(Front Side Bus, FSB)

与CPU的时钟类似,主内存也是有其内置的工作时钟的,这个时钟限制还是来自于CPU内的内存控制器所决定的。

以i7-10700K为例子,CPU 内置的内存控制芯片对主内存的工作频率官方默认2933 MHz,这只是工作时脉(每秒几次)。 一般来说,每次时钟能够传输的数据量,大多为 64 位,这个 64 位就是所谓的'宽度'了。

因此,i7-10700K可以从内存中取得的最快带宽为:$带宽=2933×8×2÷1024÷1024 带宽≈46.94GB/s$

此带宽为DDR4-2933下的理论带宽,并且没有超频

与总线宽度相似的, CPU 每次能够处理的数据量称为字组大小(word size) , 字组大小依据CPU的设计而有32位与64位。 我们现在所称的电脑是32或64位主要是依据这个 CPU解析的字组大小而来的 ! 早期的32位CPU中,因为CPU每次能够解析的数据量有限, 因此由主内存传来的数据量就有所限制了。 这也导致32位的CPU最多只能支持最大到4GBytes的内存。

得利于北桥集成到 CPU 内部的设计,CPU 得以'个别'跟各个组件进行沟通! 因此,每种组件与 CPU 的沟通具有很多不同的方式!。例如主内存使用系统总线带宽来与CPU 沟通, 而显卡则透过PCI-E的序列通道设计来与CPU沟通。


CPU等级

由于x86架构的CPU在Intel的Pentium系列(1993年)后就有不统一的脚位与设计,为了将不同种类的CPU规范等级, 所以就有i386,i586,i686等名词出现了。 基本上,在Intel Pentium MMX与AMD K6年代的CPU称为i586等级, 而Intel Celeron与AMD Athlon(K7)年代之后的32位CPU就称为i686等级。 至于目前的64位CPU则统称为x86_64等级。

1. x86 架构的背景

  • x86 是 Intel 在 1978 年推出的 16 位微处理器架构(最初是 8086)的名称。
  • 后续版本(如 286、386、486、Pentium 等)扩展了架构功能,提高了性能。
  • 每一代都有改进,并且通过不同的名字(如 i386、i586)区分。

2. i386(1985年,32位架构)

  • i386 是 Intel 80386 处理器的代称,标志着 x86 进入32位时代
  • 特点:
    • 支持 32 位操作,寄存器和地址总线提升到 32 位。
    • 引入了保护模式(Protected Mode),允许操作系统更安全地管理内存。
    • 大部分现代操作系统(如 Linux 和 Windows)都基于这个模式开发。

3. i486(1989年,32位架构)

  • i486 是 80386 的改进版,性能提升。
  • 特点:
    • 内置 FPU(浮点运算单元),支持更快的数学运算。
    • 支持更高效的缓存机制。

4. i586(Pentium 系列,1993年)

  • i586 是 Intel Pentium 系列 CPU 的代称。
  • 特点:
    • 改进了指令流水线,支持更高效的指令执行。
    • 支持 MMX(多媒体扩展指令集),增强多媒体性能。
    • 兼容 i386 和 i486 的指令。

AMD 的 K5 和 K6 系列处理器也被归类为 i586 等级。

5. i686(Pentium Pro 系列及之后,1995年)

  • i686 是更高级的 32 位架构,代表更现代的优化设计。
  • 特点:
    • 改进分支预测和乱序执行,显著提升性能。
    • 引入 SSE(流 SIMD 扩展指令集),进一步增强多媒体和科学计算能力。
    • 覆盖 Intel Pentium Pro、Pentium II、Pentium III,以及 AMD 的 Athlon 系列(K7)。

大多数现代 Linux 系统会将 i686 作为最低支持标准,i586 逐渐被淘汰。

6. x86_64(64位架构,2003年)

  • 特点:
    • 提供对 64 位寄存器、地址总线的支持,允许访问 4 GB 以上的内存。
    • 仍然向下兼容 32 位和 16 位的 x86 指令。
    • 代表了目前主流 CPU 架构(Intel 和 AMD 都基于此)。
  • x86_64 是 AMD 在 2003 年推出的 64 位扩展架构(AMD64)。

现代 64 位处理器(如 Intel Core 系列和 AMD Ryzen 系列)都基于 x86_64 架构。

CPU的兼容性

目前很多的程序都有对CPU做最佳化的设计,万一哪天你发现一些程序是注明给x86_64的CPU使用时, 就不要将他安装在686以下等级的电脑中,否则可是会无法执行该软件的。

简单来说,CPU的兼容性遵循以下规则:

  1. 高等级 CPU 向下兼容
    比如,x86_64(64 位 CPU)可以运行 i386i686 等低等级软件。这是因为高等级 CPU 包含了低等级 CPU 的指令集,能够理解和执行它们的指令。
  2. 低等级 CPU 无法向上兼容
    如果某个程序专门为 x86_64(64 位 CPU)设计,它可能会使用 64 位指令或者需要更大的内存寻址能力。低等级的 CPU(如 i686 或 i386)无法理解这些指令或支持这些特性,因此运行会失败。

x86_64 CPU 是通用的,可以运行 386/586/686 软件,但 386 或 686 CPU 无法运行为 x86_64 设计的软件。这是因为 x86_64 CPU 内置了对低等级指令集的支持,而低等级 CPU 不具备高等级指令的处理能力。


超线程 (Hyper-Threading, HT)

虽然现在的技术以及散热器的不断发展已经可以实现“力大砖飞”的设计(堆核心),但是 Intel 还有个很怪的东西,叫做 CPU 超线程(Hyper-Threading)。

超线程技术(Hyper-Threading,简称 HT) 是 Intel 提出的一个技术,它的目标是通过虚拟化的方式,让单个物理核心看起来像是两个逻辑核心,从而更高效地利用 CPU 的资源。

我们也知道现在的系统大多都是多工的系统, 同时间有很多的程序会让 CPU 来执行,并且CPU 运算速度都太快了,因此运算核心经常处于闲置状态下,因此,若 CPU 可以假象的同时执行两个程序,不就可以让系统效能增加了吗? 反正 CPU 的运算能力还是没有用完。

详细一点说,HT的工作理念可以分为三点:

  • CPU 资源的利用问题
    • 单个 CPU 核心在运行程序时,可能会因为等待内存数据或指令而处于闲置状态,导致性能浪费。
    • HT 的想法是:既然有空闲的资源,不如同时运行两个线程(程序的执行单元),以提高核心的使用率。
  • 虚拟化两个逻辑核心
    • HT 将每个物理核心分成两个“逻辑核心”(Logical Core)。
    • 它通过在 CPU 内部为两个线程分配独立的关键资源(如寄存器)来实现。这使得两个线程可以“竞争”一个核心的执行单元,就像两个司机共用一辆车。
    • 操作系统会认为 CPU 有更多的核心。例如,4 核心的 CPU 在 HT 下会被识别为 8 核心。
  • 多任务并行处理
    • 在传统单线程模式下,CPU 核心一次只能处理一个线程的任务。
    • HT 技术允许两个线程同时交替执行,减少资源空闲的时间,提升任务并行处理能力。

由此一来,我就可以发现,HT的优点还是蛮多的,比如提升性能:在合适的场景下(如多线程程序或平行运算任务),HT 可以更高效地利用 CPU 资源,显著提高性能;对于工作负载较轻的任务(如网页浏览、日常办公),HT 能快速切换任务,提供流畅体验。还有操作系统的支持:HT 让操作系统看到更多的“核心”,从而可以分配更多线程到这些逻辑核心上,充分利用硬件。最重要的还是节约时间:对于需要大量计算但核心利用率较低的场景(如鸟哥的数值模拟任务),HT 能减少等待时间,加快计算速度。

虽然很多研究与测试中,大多发现 HT 虽然可以提升效能,不过,有些情况下却可能导致效能降低。比如以下几个例子:

  • 性能提升因场景而异
    • HT 并不总是提高性能。在一些高计算密度或资源争夺严重的场景(如某些游戏),因为两个线程争夺同一核心的资源,可能导致性能下降。
  • 安全性问题
    • HT 可能会引入安全风险。例如,侧信道攻击(如 Spectre 和 Meltdown)可以利用 HT 共享资源的特性窃取数据。
  • 物理限制
    • HT 并没有增加物理计算单元的数量,所以性能提升并非成倍的,通常提升约 20%-30%,甚至在某些情况下无效。

总结上述所说,我们就可以知道,HT 的本质其实就是用软件的方式模拟更多核心,以提高 CPU 的资源利用率。其适用场景:对需要多线程计算的任务(如视频渲染、科学计算、虚拟化等)效果显著,但对单线程任务或资源争夺严重的场景可能不适合。去研究其实际效果就会发现性能提升是因任务而异的,需要根据具体情况测试和评估是否开启 HT。

换句话说,HT 是一种让 CPU 看起来“更强大”的技术,但实际性能表现取决于任务和软件的特点。


0.2.2 内存

在主板上,内存条一般设计在CPU的一侧,一般有四根插槽。主内存插槽中间通常有个突起物将整个插槽稍微切分成为两个不等长的距离, 这样的设计可以让用户在安装主内存时,不至于前后脚位安插错误,是一种防呆的设计。

前面提到CPU所使用的资料都是来自于主内存(main memory),不论是软件程序还是资料,都必须要读入主内存后CPU才能利用。 个人电脑的主内存主要组件为动态随机存取内存(Dynamic Random Access Memory, DRAM)

DRAM, 随机存取内存只有在通电时才能记录与使用,断电后数据就消失了。 因此我们也称这种RAM为挥发性内存。

DRAM根据技术的更新又分好几代,而使用上较广泛的有所谓的SDRAM与DDR SDRAM两种。

SDRAM与DDR SDRAM

SDRAM(同步动态随机存取内存)与DDR SDRAM(双倍数据速率同步动态随机存取内存)是两种不同的内存技术,它们的区别和性能差异主要体现在 工作方式传输效率 上:

SDRAM 和 DDR SDRAM 的主要区别:

  1. 传输模式
    • SDRAM:每个时钟周期只能传输一次数据。
    • DDR SDRAM:每个时钟周期可以传输两次数据,分别在时钟信号的 上升沿下降沿 进行。这就是所谓的 双倍数据传输速率
  2. 带宽和频率
    • 由于 DDR 可以在相同的时钟频率下传输双倍的数据,其有效带宽比 SDRAM 高一倍。
    • 比如,相同频率下,DDR SDRAM 的数据带宽大约是 SDRAM 的两倍。
  3. 电压和功耗
    • DDR SDRAM 通常工作在更低的电压下,相比 SDRAM 更加节能。
  4. 物理设计
    • DDR 的引脚和物理接口设计与 SDRAM 不兼容,意味着 DDR 不能直接安装在 SDRAM 的插槽上。

SDRAM 和 DDR SDRAM 的型号、频率与带宽关系

以下是 SDRAM 与 DDR SDRAM 性能的一些典型数据:

内存类型 型号 时钟频率(MHz) 数据传输频率(MHz) 理论带宽(GB/s)
SDRAM PC66 66 66 0.53
PC100 100 100 0.80
PC133 133 133 1.06
DDR SDRAM DDR-200 (PC1600) 100 200 1.60
DDR-266 (PC2100) 133 266 2.10
DDR-333 (PC2700) 166 333 2.70
DDR-400 (PC3200) 200 400 3.20

时钟频率:实际的时钟速度。
数据传输频率:DDR 技术利用上升沿和下降沿传输数据的有效频率,等于时钟频率的两倍。
理论带宽计算:带宽(GB/s) = 数据传输频率(MHz) × 数据宽度(64 位) / 8。

DDR 的发展

随着技术进步,DDR SDRAM 已经发展到 DDR5,每代技术都在频率、带宽和功耗上有显著提升:

内存类型 最高时钟频率(MHz) 最大数据传输频率(MT/s) 理论带宽(GB/s) 工作电压(V)
DDR 200 400 3.20 2.5
DDR2 533 1066 8.50 1.8
DDR3 1066 2133 17.00 1.5
DDR4 1600 3200 25.60 1.2
DDR5 3200 6400 51.20 1.1

总的来说,SDRAM 是早期的内存技术,已逐渐被淘汰。DDR SDRAM 利用双倍数据传输速率极大提高了性能,是现代主流内存技术的基础。随着技术演进,DDR 的频率和带宽持续提升,同时功耗降低,满足了现代计算机对高性能、低功耗的需求。

在DDR3的发展中还出现了DDR3L技术,简单来说,DDR3L是 DDR3 的低功耗版本,主要为节能设计。兼容 DDR3 插槽,但能在更低电压下运行,降低了能耗和发热量。但是请注意,虽然 DDR3L 不容易烧毁,但以下情况可能导致意外:主板质量问题或不支持: 如果主板电压控制有故障,可能导致内存模块过载;长时间高电压运行: 虽然 DDR3L 支持 1.5V,但长期在高于设计电压下运行,可能会缩短内存的寿命;不匹配的插槽或配置错误: 如果主板不支持 DDR3L 或存在兼容性问题,可能导致不稳定。

至于DDR4L和DDR5L,目前DDR5L并没有被正式的退出及普及,而DDR4因本身默认工作电压就为1.2v因此其功耗更低,与 DDR3 相比,DDR4 的设计从一开始就是以低功耗为目标。DDR4 的标准电压已经足够低,无需额外区分“低功耗版本”。但是出现了LPDDR4(Low Power DDR4)LPDDR4X等为高能效设计的内存技术,进一步降低了电压(0.6V\~1.1V)。


多通道设计

由于所有的资料都必须要存放在主内存,所以主内存的数据宽度当然是越大越好。 但传统的总线宽度一般大约仅达64位,为了要加大这个宽度,因此芯片组厂商就将两个主内存汇整在一起, 如果一支内存可达64位,两支内存就可以达到128位了,这就是双通道的设计理念。

如果要启用双通道功能,你必须安装两根(或四根)内存条,这两根内存最好容量大小和型号都一样比较好,因为如果两条内存容量或频率不同,可能会降级为 单通道模式,或运行在不对称双通道模式(Flex Mode),性能提升有限。当然,如果插入奇数根内存条,可能无法启用双通道

双通道带宽理论上翻倍,但实际性能提升受其他硬件(如 CPU 和存储设备)的限制,通常在 10%-30% 左右。

在一些主板上会把四根内存条两两做成同一颜色,这些颜色的设计就是为了双通道而来的,要启动双通道的功能时, 你必须要将两根容量相同的主内存插在相同颜色的插槽

DRAM与SRAM

DRAM(动态随机存取存储器)SRAM(静态随机存取存储器) 是两种随机存取存储器技术,它们在存储原理速度功耗成本应用场景等方面存在显著差异。

1. DRAM(Dynamic Random-Access Memory)

  • 存储原理:

    • 每个位的数据由一个电容和一个晶体管组成。
    • 电容存储数据,因其会自然漏电,因此需要周期性刷新(Refresh)。
  • 优点:

    • 高密度: 单位面积可存储更多数据。
    • 成本低: 制造简单且存储密度高,成本更低。
    • 大容量: 常用于需要大容量存储的场景,如计算机主存。
  • 缺点:

    • 速度慢: 由于需要刷新操作,访问延迟较高。
    • 功耗相对较高: 刷新操作会消耗一定功率。
  • 应用场景:

    • 计算机的主内存(RAM)。
    • 显卡的显存(VRAM)。
    • 需要大容量存储的消费级和企业级设备。

2. SRAM(Static Random-Access Memory)

  • 存储原理:

    • 使用多个晶体管(通常是 6 个)构成一个锁存器来存储每个位的数据。
    • 只要有电力供应,数据会保持稳定,无需刷新。
  • 优点:

    • 速度快: 无需刷新,访问速度非常快。
    • 低延迟: 适合需要极高速度和低延迟的场景。
    • 稳定性高: 不易受到电噪声或电容漏电影响。
  • 缺点:

    • 密度低: 每个位需要多个晶体管,占用更多芯片面积。
    • 成本高: 制造复杂且存储密度低,成本显著更高。
    • 功耗较高: 每个位由多个晶体管维持,静态功耗更高。
  • 应用场景:

    • CPU 缓存(L1、L2、L3 Cache)。
    • 嵌入式系统中的高速存储。
    • 特定用途的高速缓冲存储器(如网络设备)。

DRAM 优点是容量大、成本低,缺点是速度较慢,适合需要大容量存储但对速度要求不极端的场景(如主内存)。

SRAM 优点是速度快、延迟低,缺点是成本高,适合需要高性能和快速访问的场景(如 CPU 缓存)。

这两种存储器通常在系统中互补使用,以平衡性能、成本和功耗。

在整部电脑中,还有一种非常重要的并且其类似主内存(plus)的芯片,那就是CPU的第二层缓存(L2 Cache)

L2 缓存位于 CPU 和主内存之间,作为主内存和 CPU 的中间桥梁。它比主内存快,但容量较小;比 L1 缓存慢,但容量较大。

L2 缓存用于存放那些频繁使用的数据或指令,以减少 CPU 对主内存的访问次数。
如果 CPU 请求的数据不在 L1 缓存中,会进一步查找 L2 缓存;如果仍未找到,才会访问主内存。

L2 缓存与主内存和 CPU 的关系

[ CPU ] --> [ L1 Cache ] --> [ L2 Cache ] --> [ 主内存 ]

因此,不难看出,SRAM技术更适合用在CPU的缓存上,而DRAM更适合主内存。

随着技术发展,除了 L1 和 L2 缓存,现代 CPU 通常还集成了 L3 缓存,它的容量更大(通常是几 MB 到几十 MB),用于进一步优化多核处理器的数据访问。L3 缓存通常是多个核心共享的,以减少不同核心之间的数据访问延迟。并且近年来,智能缓存管理硬件预取技术(如 CPU 预取指令和硬件预测)越来越复杂,用于提高缓存的命中率和访问效率。例如,某些 CPU 还使用 无共享缓存(Private Caches)三级缓存 的更细粒度的设计。


只读内存(ROM)

主板上面的组件是非常多的,而每个组件的参数又具有可调整性。 举例来说,CPU与内存的频率是可调整的; 而主板上面如果有内置的网络卡或者是显卡时,该功能是否要启动与该功能的各项参数, 是被记录到主板上头的一个称为CMOS的芯片上,这个芯片需要借着额外的电源来发挥记录功能, 这也是为什么你的主板上面会有一颗电池的缘故。

记得你的电脑在开机的时候可以按下[Del]按键来进入一个名为BIOS的画面吧? BIOS(Basic Input Output System)是一套程序,这套程序是写死到主板上面的一个内存芯片中, 这个内存芯片在没有通电时也能够将数据记录下来,那就是只读内存(Read Only Memory,ROM) 。

ROM 存储的是计算机的 BIOS 固件,它是计算机启动时第一个被读取和执行的程序。ROM 的内容一般是不可修改的,只有通过特定的工具或过程才能更新。CMOS 存储的是计算机的配置信息,通常由计算机的 CMOS 电池保持电力,确保在没有电源时也能保存这些重要数据。BIOS 和 CMOS 是计算机启动过程中的关键部分,帮助计算机完成硬件初始化、配置加载并启动操作系统。

ROM是一种非挥发性的内存

玩过机顶盒或者路由器等小设备刷机的应该知道,固件(firmware)很多也是使用ROM来进行软件的写入的。 固件像软件一样也是一个被计算机所执行的程序,然而他是对于硬件内部而言更加重要的部分。

固件是指 嵌入式系统中的软件,通常用于控制和管理硬件设备。与传统的软件(例如操作系统、应用程序)不同,固件直接运行在硬件上,通常存储在硬件设备内部的 非易失性存储器 中(如 ROM、闪存等)。

BIOS 就是一个典型的固件(Firmware),它是嵌入在计算机主板上的 ROM 芯片中的程序。尽管我们日常使用计算机时不会直接与 BIOS 进行交互,但它对计算机的正常运行至关重要,尤其是在启动阶段。

由于计算机硬件和技术不断发展,BIOS 也需要随着这些变化进行更新和优化。

早期的 BIOS 是存储在 只读存储器(ROM) 中的,这些 ROM 芯片是无法修改的。因此,一旦写入了 BIOS 程序,就无法再进行更新或修复。这在计算机技术不断发展的过程中成为了一个问题。

为了解决这个问题,现代计算机使用了 闪存(Flash)EEPROM(电可擦可编程只读存储器) 来存储 BIOS,允许对其进行更新

这种存储方式的最大优势是 可更新性,解决了早期 ROM 无法修改的问题。通过这种灵活的存储方式,厂商能够发布 BIOS 更新来支持新的硬件、提升系统稳定性、增强性能或修复安全漏洞,而用户也能够方便地进行 BIOS 更新。

固件(Firmware)就是“绑在硬件上面的控制软件”。硬件本身并不能做太多事情,它依赖固件来提供必要的指令和功能。固件通过直接与硬件交互,帮助硬件执行其预定任务。没有固件,硬件就像是没有“大脑”的机器,无法发挥其真正的作用。


0.2.3 显卡

显卡(Video Graphics Array 简称 VGA)是计算机中负责图像显示的重要部件,特别是在分辨率和色彩深度方面。分辨率决定了显示器上图像的像素数量,而色彩深度则指每个像素可以显示的颜色数量。这些因素直接影响显卡内存的需求,显卡内存的容量越大,能够支持更高的分辨率和色彩深度,从而提供更好的图像显示效果。

除了显卡内存的容量,随着三维游戏(3D 游戏)和动画的普及,显卡的运算能力变得越来越重要。早期,3D 渲染任务由中央处理单元(CPU)来执行,但由于 CPU 并非专门为图形运算设计,而且同时承担了其他复杂计算任务,处理速度和效率并不理想。因此,为了提高图形计算性能,显卡厂商开始在显卡上嵌入专门的处理单元 —— GPU(图形处理单元)。

GPU 是一种专门为图形和 3D 渲染设计的加速芯片,能够进行大量并行计算,处理复杂的图形任务,如 3D 渲染、光影效果、纹理映射等。相比于 CPU,GPU 能够更加高效地处理这些图形密集型任务,从而显著提升显卡性能,尤其在游戏和三维图形渲染领域,GPU 是必不可少的关键组件。

显卡通过 控制芯片CPU主内存 等硬件组件进行通信,尤其是在图形影像处理(特别是 3D 游戏)中,显卡需要进行高速的计算,因此 数据传输速度 非常关键。为了实现快速的数据传输,显卡的接口规格经历了多次升级,从最早的 PCIAGP,再到现在的 PCI-Express(PCIe)接口。各接口之间的主要区别在于它们的数据传输带宽。

以下是不同规格的接口及其带宽比较:

规格 宽度 速度 带宽
PCI 32 位 33 MHz 133 MB/秒
PCI 2.2 64 位 66 MHz 533 MB/秒
PCI-X 64 位 133 MHz 1064 MB/秒
AGP 4 倍 32 位 66x4 MHz 1066 MB/秒
AGP 8 倍 32 位 66x8 MHz 2133 MB/秒
PCIe 1.0 x1 250 MB/秒
PCIe 1.0 x8 2 GB/秒
PCIe 1.0 x16 4 GB/秒

PCIe(PCI-Express)采用了管道架构来处理数据传输,带宽的大小与管道的数量密切相关。在 PCIe 1.0 版本中,每条管道提供 250 MB/秒 的带宽。通常,x16 版本会使用 16 条管道,从而实现更高的总带宽。

随着技术的进步,PCIe 标准逐渐演化,带宽也大幅提升。以下是不同 PCIe 版本的带宽比较:

规格 1x 带宽 16x 带宽
PCIe 1.0 250 MB/秒 4 GB/秒
PCIe 2.0 500 MB/秒 8 GB/秒
PCIe 3.0 ~1 GB/秒 ~16 GB/秒
PCIe 4.0 ~2 GB/秒 ~32 GB/秒

PCIe 3.0 为例,它的 16x 带宽 能达到 接近 16 GB/秒,而对于使用 PCIe 3.0 x16 插槽 的主板,最大带宽可达到约 32 GB/秒(以 PCIe 4.0 为例)。与早期的 AGP(最高带宽为 2133 MB/秒)相比,PCIe 的传输速度提升了很多,具有极为强大的数据传输能力。

对于 3D 游戏 或需要大量图形处理的应用,选择合适的显卡非常重要。显卡的性能与 PCIe 带宽 密切相关,尤其是在进行复杂的图形渲染和游戏时。而对于 网络服务器,由于很少涉及到 3D 渲染和图形计算,因此选择入门级显卡即可满足其需求。

如果你的显示器分辨率为常见的 2K 分辨率 2560x1440(3,686,400 像素 ,色彩深度为 32 位(4 字节/像素) ,且刷新率为 144Hz,显卡至少需要 14.75 MB 的内存来存储一帧图像。考虑到 144Hz 的刷新率,每秒钟需要大约 2.08 GB 的内存带宽来支持屏幕的快速更新。

除了显卡与主板的连接接口外,显示卡与显示设备(如电脑屏幕或电视)之间的连接接口也非常重要。随着技术的发展,出现了多种不同的连接标准,每种接口都有其特点和用途。以下是一些常见的连接接口及其相关信息:

D-Sub(VGA 端子)

  • D-Sub,也被称为 VGA 端子,是较早的模拟信号传输标准,通常有 15 针连接。这种接口最早是为了传统的阴极射线管(CRT)显示器设计的,因此大多数现代显示设备已不再采用 VGA。

DVI(数字视频接口)

  • DVI 是一种主要用于数字显示的接口,常见于液晶显示器。DVI 接口有 DVI-D(仅数字信号)和 DVI-I(同时支持数字和模拟信号)两种版本。DVI 适用于高分辨率图像,尤其是液晶显示器,能够提供清晰的数字视频输出。

HDMI(高清多媒体接口)

  • HDMI 不仅可以传输高质量的图像,还能同时传输 音频 信号,因此非常适合用于电视和音响系统中。现代的电视、显示器、笔记本电脑等设备都广泛采用 HDMI 接口,能够传输数字信号,支持 高清晰度视频高保真音频

DisplayPort(显示端口)

  • DisplayPort 是一个相对较新的连接标准,类似于 HDMI,但通常被认为具有更强的带宽,适用于高分辨率的显示输出。DisplayPort 可以同时传输音频和视频信号,且支持多个显示器的串联连接。虽然 DisplayPort 在 个人电脑市场的使用日渐增加,但在 电视市场的支持较少。

USB-C / Thunderbolt 3

  • 随着 USB-C 接口的普及,它开始支持 视频输出。通过 Thunderbolt 3 技术,USB-C 可以提供非常高的带宽,支持高分辨率的视频输出。许多现代 笔记本电脑高端显示器 采用 USB-C 端口,支持视频传输、音频传输以及数据传输。

0.2.4 硬盘与存储设备

电脑确要存储设备来记录和读取数据,而这些数据的读写并不依赖于用户每次输入,因此各种存储设备成为了现代计算机系统中不可或缺的一部分。电脑系统上面的存储设备包括有:硬盘、软碟、MO、CD、DVD、磁带机、U盘(闪存)、还有新一代的蓝光光驱等, 乃至于大型机器的区域网络储存设备(SAN, NAS)等等,都是可以用来储存资料的。 而其中最常见的应该就是硬盘了。

而目前的硬盘主要分为机械硬盘(HDD)固态硬盘(SSD) 两种。


机械硬盘(HDD)

物理组成

机械硬盘(HDD,Hard Disk Drive)是一种基于机械原理的存储设备,它通过磁性材料记录数据。硬盘内部有多个重要的物理组成部分,每个部分都扮演着特定的角色,以确保硬盘能够稳定地读写数据。

其主要结构主要分为这些:

1. 硬盘盘片(Platters)

硬盘的核心部分是盘片,也叫做磁盘盘片。硬盘内部通常会有多个盘片,这些盘片是用铝合金、玻璃或碳材料制造的,表面涂有一层磁性材料。在这些磁盘表面,数据以磁性形式存储,每个盘片的表面都可以用作存储空间。

  • 盘片数量:一般硬盘会有 2 到 5 个盘片,盘片数量越多,数据存储的总容量越大。
  • 盘片旋转:盘片在硬盘内部通过电动马达旋转,通常每分钟转速为 5400 RPM、7200 RPM 或更高。转速越快,数据读取和写入速度越快。
2. 磁头(Read/Write Heads)

磁头是负责读取和写入数据的组件。硬盘通常会有一对磁头(一个用于每个面),它们位于硬盘盘片的上方或下方,随着盘片旋转来定位数据的存储位置。磁头通过电磁原理在盘片的表面读写数据。

  • 工作原理:磁头会通过电磁感应的方式将磁盘上的信息转换为电子信号(读取)或将电子信号转换为磁性信息写入到盘片上。
  • 精密定位:磁头并不直接接触盘片表面,而是悬浮在离盘片表面非常微小的高度上,通常是 1 到 2 微米之间。
3. 磁臂(Actuator Arm)

磁臂是连接磁头与驱动器马达的部件,它的作用是移动磁头到达盘片上的指定位置。硬盘的磁臂通常会非常精密地控制磁头在不同轨道之间的移动,以便找到准确的存储位置。

  • 操作方式:磁臂由驱动器中的执行器控制,通过电动机驱动磁头在盘片上快速往返。
4. 主轴马达(Spindle Motor)

主轴马达负责旋转硬盘的盘片,使得磁盘可以持续高速旋转。磁盘的转速通常以“转速每分钟”(RPM,Revolutions Per Minute)来衡量。

  • 常见转速:常见的硬盘转速为 5400 RPM、7200 RPM,以及高性能的 10000 RPM 或 15000 RPM 硬盘。
  • 影响因素:转速越高,硬盘的响应速度越快,数据读取和写入的速度也越高。
5. 外壳与连接接口(Enclosure & Interface)

硬盘的外壳通常是金属的,能够保护硬盘内部的组件免受外界环境的影响,并且通过接口与计算机进行连接。

  • 常见接口:SATA(Serial ATA)接口是目前最常见的硬盘接口,它支持较高的数据传输速率。也有早期的 IDE(PATA)接口、SCSI、SAS 等接口用于连接硬盘。

机械硬盘(HDD)的工作原理依赖于精密的机械部件,包括快速旋转的盘片、灵活的机械手臂、以及精确控制的磁头移动。由于单个盘片的容量有限,多个盘片的配置使得硬盘能够提供更大的存储容量,同时通过并行读写提升数据存取效率。

磁盘的读取和写入

磁盘数据的存储可以用一下图像表示:

  • A:磁轨(Track)

    • 同心圆形的磁区集合形成一个磁轨,磁轨位于同一个磁盘面上,数据按圆形排列。每个磁盘面都有多个磁轨。
  • B:扇面
  • C:扇区
  • D:簇(扇区组)

而上面一个一个的小方块就是磁区(Sector)这个小区块就是磁盘的最小物理储存单位。由于磁盘里面可能会有多个磁盘盘,因此在 所有磁盘上面的同一个磁轨可以组合成所谓的磁柱(cylinder) 。

  • 磁道(Track)

  • 柱面(Cylinder)

  • 扇区(Sector)

  • 磁头(Heads)

  • 盘片(Platters)

    每个盘片都有两面,因此也会相对应每盘片有2个磁头。

我们知道同心圆外圈的圆比较大,所以为了善用这些空间,因此外围的圆会具有更多的磁区,因此如果数据写入在外圈,转一圈能够读写的数据会比内圈要多


连接接口

为了提高磁盘的传输速度,硬盘和主板之间的连接界面经历了多次的升级与改进。传统磁盘界面包括有 SATA, SAS, IDE 和 SCSI 等等。 若考虑外接式磁盘,那就还包括了 USB, eSATA 等等界面。不过目前IDE已经被SATA取代,而SCSI则被SAS取代,如今常见的连接界面包括:

1. SATA(Serial ATA)
  • 概述:SATA 是一种串行传输接口,它取代了传统的并行IDE接口,提供更高的传输速度、更低的功耗以及更简便的连接方式。这种插槽所使用的排线比较窄小, 而且每个设备需要使用掉一条SATA线。 因为SATA线比较窄小之故,所以对于安装与机壳内的通风都比较好! 因此原本的IDE粗排线界面就被SATA取代了。
  • 主要特点

    • 数据传输速率:SATA 1.0为1.5Gb/s(150MB/s),SATA 2.0为3Gb/s(300MB/s),SATA 3.0为6Gb/s(600MB/s)。
    • 主要用于连接内置硬盘(HDD)和固态硬盘(SSD)。
    • 采用窄小的线缆,提高了系统内部的通风,减少了空间占用。
  • SATA版本

    • SATA 1.0:最大传输速度150MB/s。
    • SATA 2.0:最大传输速度300MB/s。
    • SATA 3.0:最大传输速度600MB/s。

因为SATA传输接口传输时,通过的数据算法的关系,当传输10位编码时,仅有8位为数据,其余2位为检验之用。 因此带宽的计算上面, 使用的换算 (bit 转 byte) 为 1:10 而不是 1byte=8bits 喔! 上表的对应要稍微注意一下。 另外,虽然这个SATA3界面理论上可达600Mbytes/s的传输速度, 不过目前传统的硬盘由于其物理组成的限制,一般极限速度大约在 150~200Mbyte/s 而已。

由于SATA一条排线仅接一个硬盘,所以你不需要调整跳针。 不过一张主板上面SATA插槽的数量并不是固定的, 且每个插槽都有编号,在连接SATA硬盘与主板的时候,还是需要留意一下。

2. SAS(Serial Attached SCSI)
  • 概述:早期工作站或大型大脑上面,为了读写速度与稳定度,因此在这样的机器上面,大多使用的是 SCSI 这种高端的连接接口。 不过这种接口的速度后来被SATA代替了,但是 SCSI 有其值得开发的功能,因此后来就有串列式 SCSI (Serial Attached SCSI, SAS) 的发展。SAS是一种为高性能计算和企业级存储设计的高速接口,主要用于工作站、服务器和存储区域网络(SAN)中,提供比SATA更高的传输速度和可靠性。
  • 主要特点

    • 更高的传输速度:SAS 1为3Gb/s,SAS 2为6Gb/s,SAS 3为12Gb/s。
    • 支持多设备连接:通过SAS可以实现多个硬盘的串联,提高数据访问速度。
    • 提供热插拔功能和更强的数据完整性,适合高负载、高性能的环境。
  • SAS版本

    • SAS 1:最大传输速度300MB/s。
    • SAS 2:最大传输速度600MB/s。
    • SAS 3:最大传输速度1200MB/s。、

虽然其性能优于SATA,但是因为其高昂的价格,因此一般个人电脑主机机械硬盘还是以 SATA 接口为主要的磁盘连接接口

因为SAS支持热插拔(Hot Swap)和多设备支持。使得磁盘阵列卡(RAID控制器卡)广泛使用SAS接口来连接多个硬盘。这些RAID控制器卡可以支持多个SAS硬盘,同时提供RAID冗余和数据保护功能。在高负载、数据密集型的环境中,RAID阵列能够提供更高的性能和可靠性。

3. USB(Universal Serial Bus)
  • 概述:USB接口常用于外部存储设备的连接,如U盘、外接硬盘、移动存储等。USB接口具有即插即用的特性,广泛应用于个人电脑和便携设备。
  • 主要特点

    • 支持即插即用:用户可以方便地将外部硬盘通过USB连接到计算机。
    • 数据传输速率:USB 2.0最高为480Mb/s(约60MB/s),USB 3.0最高为5Gb/s(约500MB/s),USB 3.1更高,理论速率达到10Gb/s(约1GB/s)。
  • USB版本

    • USB 2.0:最大传输速度60MB/s。
    • USB 3.0:最大传输速度500MB/s。
    • USB 3.1:最大传输速度1000MB/s。
4. eSATA(External SATA)
  • 概述:eSATA是SATA接口的外部版本,设计用于连接外部硬盘。与USB和FireWire相比,eSATA提供更高的传输速度,并且在性能上接近内置SATA硬盘。
  • 主要特点

    • 提供与SATA相同的高速传输速度,理论上可达到600MB/s。
    • 通常用于外接高速硬盘,适合需要大文件传输的场景。

对于机械硬盘(HDD)来说:

  • SATA 是最常用的内置硬盘接口,支持大多数个人电脑。
  • SAS 提供更高的性能,适用于服务器和企业级存储解决方案。
  • USB 是最普遍的外部存储接口,便于连接U盘、外部硬盘等设备。

主板上的SATA 1.5Gb/s插口


固态硬盘(SSD)

固态硬盘(SSD,Solid State Drive)是一种基于闪存(NAND Flash)技术的存储设备,不像传统的机械硬盘(HDD)依赖旋转磁盘和机械臂来读写数据,而是利用集成电路(IC)来存储数据。这使得SSD在性能、耐用性、功耗和体积方面比HDD有显著的优势。

SSD 的存储介质是闪存芯片,其基本工作原理决定了每个存储单元只能承受有限次数的写入和擦除操作(即 P/E 周期)。早期的 SSD 使用 SLC(单层单元)或 MLC(多层单元)闪存,其写入寿命较短,可能在高负载下使用两三年后开始出现问题。

现代的 SSD(Solid State Drive)技术相比早期已经有了显著的进步:

闪存技术

  • TLC(Triple-Level Cell)和 QLC(Quad-Level Cell)

    • TLC 是现代消费级 SSD 的主流,具有更高的存储密度和更低的成本。
    • QLC 提供更高的存储容量,但写入寿命和速度略逊于 TLC,适合读多写少的场景。
  • 3D NAND 闪存

    • 闪存芯片从二维平面发展到三维堆叠,显著提高了容量和寿命。
    • 例如:三星的V-NAND、Intel和美光的3D XPoint技术等。

缓存与控制器

  • DRAM 缓存:许多高端 SSD 配备 DRAM 缓存,加快数据的写入与读取速度。
  • HMB(Host Memory Buffer) :对于无 DRAM 缓存的 SSD,使用主机内存部分替代,降低成本的同时也提供良好性能。
  • 智能算法

    • 磨损均衡(Wear Leveling):延长每个存储单元的寿命。
    • 垃圾回收(Garbage Collection):优化存储空间使用效率。

接口类型

  • SATA(Serial ATA)

    • 传统接口,最大速度约 550 MB/s,适合老设备升级。
  • NVMe(Non-Volatile Memory Express)

    • 基于 PCIe 接口,带宽显著提升,速度可达 3,500 MB/s 甚至更高。
    • 常见协议如 PCIe 3.0、4.0,目前部分高端产品已支持 PCIe 5.0。
  • M.2 和 U.2 形态

    • M.2 更适合超薄笔记本和高性能台式机。
    • U.2 主要用于企业级存储设备。

速度

  • 顺序读取/写入:高达 7,000 MB/s(PCIe 4.0)或更高(PCIe 5.0)。
  • 随机读取/写入 IOPS(每秒输入输出操作次数) :可以达到数十万以上,比传统 HDD 快数百倍。

现代 SSD 性价比高,广泛应用于消费级和企业级存储。但仍需定期备份数据,防止意外损坏导致数据丢失。

大型的单个文件在电脑中并不常见,我们日常会用到的传输和存储都是杂乱的小文件,而对于小文件的读写也是一种挑战,对于传统 HDD 而言,机械硬盘的磁头需要移动并定位到特定位置,磁盘必须旋转到目标扇区,涉及寻道时间旋转延迟。频繁的文件切换会增加延迟,尤其是在处理小文件时,这些延迟累计起来严重拖慢速度。即使数据量小,每次操作的机械运动也会造成显著性能瓶颈。

但是对于SSD,SSD 没有机械部件,所有数据的访问速度接近于随机存取,几乎无延迟。 读写小文件时,SSD 的速度远超 HDD,几乎没有等待时间。


0.2.5扩展卡与接口

主板上的扩展插槽是为了满足额外设备的需求,比如网卡、显卡、声卡或存储控制卡等。现代主流的扩展接口是 PCIe(Peripheral Component Interconnect Express) ,因为它具有高速、灵活且高效的数据传输能力。

过去常见的接口有 PCI、AGP 和 PCI-X,但它们已经逐渐被更高效的 PCIe 所取代:

  • PCI:最高理论传输速度为 133 MB/s,早已无法满足现代设备的需求。
  • AGP:专为显卡设计,仅适用于图形处理,但其性能和用途早已被 PCIe x16 替代。
  • PCI-X:曾用于服务器领域,但由于速度和扩展性不及 PCIe,现在几乎消失。

PCIe 的优势主要在于其高速和灵活的设计。PCIe 使用点对点的通道通信,每条通道的速度大幅提升(例如 PCIe 2.0 x1 的理论速度为 500 MB/s),并且支持多个通道并行,如 x1、x4、x8、x16 等规格。因此,在选择扩展卡时,应优先选择支持 PCIe 的设备,尤其是需要高带宽的硬件(如显卡或高性能网卡)。

PCIe 插槽的设计可以通过长度区分:

  • x1:短插槽,适用于网卡、声卡等小型设备。
  • x4/x8:中型插槽,多用于存储控制器或部分高性能设备。
  • x16:长插槽,主要用于显卡。

现代主板通常会保留多种 PCIe 插槽(如 x1、x4、x16),以便支持多样化设备需求。而少数主板可能会保留一个 PCI 插槽,用于兼容旧设备。


PCIe 多通道卡安装在少通道插槽的兼容性

在现代计算机和服务器的硬件设计中,PCIe(Peripheral Component Interconnect Express) 是主流的扩展接口标准。它不仅提供高速传输能力,还具有良好的向下兼容性。这种特性使得多通道的扩展卡(例如 PCIe x16 或 x8 的设备)可以安装在少通道的插槽(例如 PCIe x4)上正常运行,但需要注意其性能会受到限制。

1、PCIe 插槽设计与通道数量

主板上的 PCIe 插槽通常按照长度分为 x1、x4、x8 和 x16,这些数字代表通道的数量,每条通道都能独立传输数据。对于通道数量的分配,通常受限于 CPU 和主板芯片组的设计。例如:

  • 主板的总通道数量有限:典型的桌面级 CPU 通常只支持 16 条 PCIe 通道,这些通道需要分配给所有的插槽。
  • 插槽的实际通道数:有些插槽虽然物理上是 x16 的长度,但可能只有 x8 或 x4 的电气通道,这被称为“物理 x16,电气 x8/x4”。

因此,主板上的插槽虽然看起来都可以插入 x16 的设备,但实际支持的带宽可能不同。

主板上的 PCIe 插槽通常按照长度分为 x1、x4、x8 和 x16,这些数字代表通道的数量,每条通道都能独立传输数据。对于通道数量的分配,通常受限于 CPU 和主板芯片组的设计。例如:

  • 主板的总通道数量有限:典型的桌面级 CPU 通常只支持 16 条 PCIe 通道,这些通道需要分配给所有的插槽。
  • 插槽的实际通道数:有些插槽虽然物理上是 x16 的长度,但可能只有 x8 或 x4 的电气通道,这被称为“物理 x16,电气 x8/x4”。

因此,主板上的插槽虽然看起来都可以插入 x16 的设备,但实际支持的带宽可能不同。

2、PCIe 通道分配的常见方式

以一个支持 16 条 PCIe 3.0 通道的 CPU 为例,常见的分配方式包括:

  1. 一个 x16 插槽(占用所有 16 条通道)。
  2. 两个 x8 插槽(每个插槽占用 8 条通道)。
  3. 一个 x8 插槽,再加上两个 x4 插槽(分别占用 8 条和 4 条通道)。

对于某些高端主板,它可能提供 3 个甚至更多的 x16 插槽,这通常通过以下方式实现:

  • 前两个插槽直接连接 CPU,提供完整的 PCIe 3.0 带宽。
  • 额外的插槽由主板芯片组(如南桥)提供,通常是 PCIe 2.0 标准,速度和通道数较低。

3、PCIe 卡与插槽的兼容性

PCIe 的设计允许多通道卡插入少通道插槽运行。例如:

  • 一张 x16 的扩展卡 安装在一个 仅有 x4 通道 的插槽中时,可以正常工作。
  • 性能限制:该扩展卡只能使用 x4 的带宽,性能会受到限制。例如,PCIe 3.0 x16 的理论带宽为 16 GB/s,而 PCIe 3.0 x4 仅为 4 GB/s,性能减少至 1/4。

这种兼容性对用户的使用非常友好,但在高性能场景(如显卡或高速存储)中,带宽限制可能导致设备性能无法完全发挥。

4、服务器主板的设计策略

服务器主板通常更注重扩展性与效率,因此常见设计如下:

  • 偏向 x8 插槽:因为大多数扩展卡(如网卡、RAID 卡等)并不需要 x16 的带宽,使用 x8 插槽即可满足需求。
  • 多插槽设计:通过均匀分配通道资源,支持更多扩展卡。例如,一个支持 16 条通道的服务器主板,可能采用 2 个 x8 或 4 个 x4 的配置。

这种设计既能保证设备的性能,又能在有限的通道数量下最大化扩展能力。

5、选择扩展卡与插槽的建议

  1. 优先选择匹配的插槽:尽量让扩展卡插入与其通道数相匹配的插槽,以避免带宽浪费或性能限制。
  2. 关注主板说明:查看主板手册,了解每个插槽的物理和电气通道设计,避免将高性能设备插入低通道的插槽。
  3. 性能需求优先:对于需要高带宽的设备(如高端显卡或 NVMe 存储),确保插入直接连接 CPU 的高通道插槽。

PCIe 的灵活性为扩展卡的使用提供了极大的兼容性,即使多通道卡插入少通道插槽也能正常运行。然而,为了让设备发挥最大性能,应优先选择与扩展卡通道数相匹配的插槽。在服务器环境中,由于大部分设备的带宽需求适中,x8 插槽通常是更高效的设计选择。合理规划通道分配,可以在性能和扩展性之间找到最佳平衡点。

0.2.6主板

在这一小节中,我们将重点讨论主板与扩展卡之间的关系,特别是如何影响扩展卡的性能,以及如何选择适合的插槽。

1. 扩展卡效能与插槽位置

现代主板通常会有多个 PCIe x8 插槽。那么,扩展卡插在哪个插槽上,能获得最佳的性能呢?如图所示,连接到 CPU 的插槽会提供最好的性能。如果将卡插入与 南桥(Chipset)连接的插槽,则会遇到带宽瓶颈。

  • 直接连接CPU的插槽:这些插槽直接连接CPU,数据传输速度较快,性能最佳。
  • 通过南桥连接的插槽:数据传输需要通过南桥,再通过 DMI 2.0(Direct Media Interface)通道连接CPU。虽然 PCIe 2.0 x8 的理论带宽可以达到 4GB/s,但 DMI 2.0 只有 2GB/s 的带宽,导致瓶颈效应。

2. DMI 2.0 带宽限制

根据 Intel 的资料,DMI 2.0 的传输速率为 4GT/s(大约 2GB/s),而 PCIe 2.0 x8 的理论带宽是 4GB/s。由于 DMI 2.0 的带宽有限,当扩展卡通过南桥插槽时,性能会受到显著影响。

3. 插卡时的最佳实践

选择插槽时,优先考虑与 CPU 直接连接的插槽,而避免将高性能的扩展卡插入与南桥连接的插槽。主板上通常会有插槽的逻辑图示,务必仔细查看,确保不会因为插槽选择不当而导致性能瓶颈。

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

I/O 地址是每个设备的唯一标识,类似于设备的“门牌号”。每个设备必须有唯一的 I/O 地址,否则系统无法正常识别它。除此之外,IRQ(中断请求)是设备与 CPU 之间沟通的通道。设备通过 IRQ 来告知 CPU 当前的工作状态,以便 CPU 可以高效分配任务。

  • 传统主板有最多 15 个 IRQ,设备过多时可能导致 IRQ 不足,可以关闭不使用的设备来腾出 IRQ。
  • IRQ 共享技术:部分设备可以共享 IRQ,减少资源冲突。

5. CMOS 与 BIOS

  • CMOS:主要用于记录主板的重要参数,如系统时间、CPU 电压与频率、各设备的 I/O 地址与 IRQ 等。
  • BIOS:内置程序,负责在开机时加载 CMOS 中的参数,并启动操作系统。BIOS 也可以用来修改 CMOS 中的设置。用户通常可以在开机时按指定键(如 Del)进入 BIOS 设置界面。

6. 连接外围设备的接口

主板通过背部接口连接外部设备。常见的接口包括:

  • PS/2接口:用于键盘和鼠标,已逐渐被 USB 取代。
  • USB接口:主板一般提供 USB 2.0USB 3.0,USB 3.0 通常通过蓝色插槽区分。
  • 音频接口:用于音频输出、输入和麦克风连接,前提是主板内建音效芯片。
  • RJ-45 网络接口:用于连接以太网,通过网线与网络设备通信。
  • HDMI接口:如果主板有内建显卡,可能会提供 HDMI 接口,用于连接显示器或电视,支持音频和视频的双重传输。

总结

主板的设计对于扩展卡的性能有重要影响。选择正确的插槽和理解主板的布局,可以确保扩展卡发挥最大效能。除了硬件接口外,合理配置 I/O 地址IRQ 也有助于优化系统性能。最后,理解 CMOSBIOS 的作用,有助于用户管理系统设置和设备配置。在安装扩展卡时,务必参考主板的逻辑图,以避免不必要的性能损失。

0.2.7电源

电源供应器(Power Supply Unit, PSU)是计算机中至关重要的组件之一,它负责将交流电(AC)转化为直流电(DC),并为主机中的各个部件提供所需的电力。随着计算机硬件的性能不断提升,各个部件对电力的需求也越来越大,因此电源供应器的选择尤为重要。

1. 电源的功率需求

现代计算机系统中的各个硬件组件——如 CPU、内存、硬盘、显卡等——都需要电力才能正常运行。随着技术的发展,尤其是高性能的显卡和处理器的出现,电源供应器的功率需求也逐渐增加。过去,230W的电源供应器就能满足大部分计算机的需求,但如今很多高性能计算机系统的电源功率需求已经达到了500W或更高。

2. 电源供应器的价格差异

电源供应器的价格差异非常大,主要取决于其质量和稳定性。一些便宜的电源供应器可能只需要几百元甚至几十元,而高端的电源供应器则可能需要上千元。这是因为不同价位的电源在用料和技术上有所差异,便宜的电源供应器可能存在电压波动、效率低下等问题,影响系统的稳定性。

3. 能源转换效率

电源供应器的能源转换效率,指的是电源将输入的电力转换为输出电力的效率。简单来说,如果电源供应器的输出功率为300W,而它所需的输入功率为400W,那么其转换效率就是 $\frac{300}{400} = 0.75$(即75%)。这意味着25%的电力在转换过程中损失掉了,通常以热量的形式浪费。高效的电源供应器转换效率更高,损耗的电力更少。

高效电源的选择不仅能提升系统稳定性,还有助于节省能源,减少浪费,延长硬件寿命。例如,很多现代电源供应器会标明其80 Plus认证,表示其在不同负载下的能效标准。例如,“80 Plus Bronze”表示至少有80%的转换效率,“80 Plus Gold”则表示能效达到87%以上。

4. 选择合适的电源

根据你系统的需求,选择合适功率的电源至关重要。如果你的系统需要300W的电力,选择一个功率大于等于400W的电源供应器会更安全,这样可以确保电源在高负荷情况下依然能稳定运行,并且避免因为电源不足导致系统崩溃或硬件损坏。

总结来说,电源供应器作为计算机的“心脏”,对于保证整个系统的稳定性和高效性非常关键。在选择电源时,不仅要关注其功率,还要注意其转换效率和品牌信誉,以确保你购买的电源可以为你的计算机提供稳定且高效的电力支持。

0.3 数据表示方式

实际上,计算机只理解 0 和 1,所有的记录数据都是以二进制的形式存储的。因此,计算机处理的数据本质上都是二进制的。然而,人类通常使用十进制进行计算,而在文字处理上,世界各地有多种语言。例如,常用的语言包括英文、中文(包括繁体和简体中文)、日文等。那么,计算机是如何存储和显示这些数字和文字的呢?这就需要通过一系列的转换过程来实现。接下来,我们将讨论如何将数字和文字转换成计算机可以理解的编码系统。

0.3.1 数字系统

早期的计算机使用真空管来表示数据,其中通过电流的通断来表示数字 0 和 1。这个二进制系统(Binary)一直沿用至今。二进制使用两个数字(0和1),而我们日常生活中常用的十进制则是基于 10 个数字(0 到 9)。例如,在十进制中,数字每到 10 就进位,个位数归零,十位数加 1。

在计算机内部,所有的数据和运算实际上都在二进制中进行。理解二进制的基本概念非常重要,因为计算机的所有计算都依赖于二进制。

  • 十进制(Decimal)是我们平常最常用的系统。
  • 二进制(Binary)主要用于计算机系统和电子设备内部的数字表示。
  • 十六进制(Hexadecimal)常用于计算机程序开发中,用于表示二进制数据,因为它更简洁并且更容易转换。

十进制到二进制的转换

我们以十进制的数字 3456 为例,来展示十进制数字的结构:
3456 \= 3 × 10³ + 4 × 10² + 5 × 10¹ + 6 × 10⁰
这表示每个数字的位置代表不同的权重,3 代表千位,4 代表百位,依此类推。

当你将二进制的 1101010 转换为十进制时,你需要通过每一位的数字与对应的 2 的幂次方相乘,并将结果相加:
1101010 \= 1 × 2⁶ + 1 × 2⁵ + 0 × 2⁴ + 1 × 2³ + 0 × 2² + 1 × 2¹ + 0 × 2⁰
\= 64 + 32 + 0 + 8 + 0 + 2 + 0 \= 106

这个过程就是将二进制数字转换为十进制的过程。通过这种方式,计算机处理的所有数据都是在二进制中执行的。

从十进制到二进制的转换

如果你要将一个十进制数字转换为二进制,你可以通过除法的方法。以 106 为例,进行连续除以 2,直到商为 0,同时记录每次的余数。然后,按逆序排列余数,得到二进制结果 1101010。

这些数值转换方法对于计算机的运算至关重要,因为计算机所有的运算(加减乘除)都通过二进制进行。理解这些基本的数字系统,可以帮助你更好地理解计算机内部的工作原理。

0.3.2 文字编码系统

尽管计算机只处理二进制(0和1),它们依然能够处理和存储文字。实际上,文字在计算机中也以二进制的形式存储,只是通过一个编码系统来转换和表示这些字符。

编码系统是什么?

文字编码系统可以看作是一个“字符与数字对应表”,这个概念类似于一张字码对照表。当我们输入文字数据时,系统会将每个字符转换成对应的数字,然后保存到文件中。而当我们读取文件时,编码系统会将数字再转换回对应的字符,显示在屏幕上。

如果网页上的字符编码设置不正确,浏览器就会显示乱码,这是因为字符编码不匹配,导致字符的对照关系出错。

常见的编码系统

  1. ASCII编码
    ASCII是英语字符的编码标准,每个符号(如英文字母、数字、符号)占用1字节,总共可以表示256种不同的字符(2的8次方)。这对于英语字符和一些基础符号已经足够。
  2. Big5编码
    Big5是一种常用于中文字符的编码,每个汉字占用2字节,理论上可以表示超过6万个汉字。但实际使用中,Big5并没有用尽所有可能的字码,最多只定义了大约13,000个汉字。由于这个限制,Big5编码无法正确显示所有中文字符,尤其是一些较为复杂的汉字。
    另外,Big5编码中也存在一些特殊问题,例如某些汉字的编码可能与引号等符号的编码冲突,导致读取时出现乱码。
  3. Unicode编码
    为了解决不同语言和字符集之间的兼容问题,国际标准化组织(ISO/IEC)制定了Unicode编码系统。Unicode旨在通过统一的编码方式,支持所有语言的字符,因此它解决了传统编码(如ASCII、Big5等)无法涵盖多种语言字符的问题。
    UTF-8是Unicode的一种实现方式,它允许不同语言字符的正确显示,并且是目前互联网上最常用的编码系统。UTF-8的优势在于它能够兼容不同的语言,同时具有较高的灵活性和可扩展性。

理解这些编码系统对于确保文字在计算机中的正确显示非常重要,特别是在多语言环境下,选择合适的编码系统(如UTF-8)可以避免出现乱码问题。所以,当你设置编码时,最好使用UTF-8,这样可以保证跨语言的兼容性和正确显示。

0.4计算机软件

在现代计算机系统中,软件是指使硬件能够执行特定功能的程序或指令。它是计算机的“灵魂”,没有软件,硬件就无法发挥作用。就像鸟哥的玩笑中所说的:“没有插电的电脑是废铁,插电的电脑没有软件也是一堆会电人的废铁。”

计算机的软件可以分为两类:

  1. 系统软件:管理计算机硬件和提供基础功能的程序,比如操作系统(Windows、Linux等)。它负责让计算机硬件和其他软件能协同工作,像是内存管理、文件管理等。
  2. 应用程序:用于执行特定任务的软件,比如文字处理、浏览网页、玩游戏等。它们通常依赖操作系统来完成任务。

程序是一组指令,告诉计算机该做什么。而机器程序是计算机直接能理解和执行的代码。

操作系统是非常重要的,它帮助管理硬件、安排任务、控制外部设备等。简单来说,操作系统就像是计算机的大脑,确保计算机各部分能够顺利合作。

0.4.1 机器程序与编译程序

在早期的计算机中,CPU只能直接理解机器语言(由0和1组成的代码),程序员必须编写能够让CPU理解的指令,这叫做机器程序。但是,直接编写机器语言有很多问题:

  1. 需要学习机器语言:机器语言非常底层且难以理解,它只包含0和1,因此需要对计算机硬件和底层操作有很深的理解。
  2. 需要了解硬件细节:编写程序时,你必须要了解硬件的具体工作原理和功能,譬如如何控制DVD驱动器、如何与不同硬件交互等。
  3. 程序不可移植性:每个CPU有不同的指令集,因此一个为某种硬件写的程序,在其他硬件上可能无法运行。
  4. 程序的专一性:你写的程序往往只能服务于特定的硬件和功能,修改和扩展都非常困难。

为了避免这些麻烦,编译器应运而生。编译器将人类能够理解的高级编程语言(如C、C++、Java等)转化为计算机可以执行的机器代码。这样一来,程序员就不需要直接操作机器语言,只需要编写更高层次的代码,编译器会负责翻译。

举个例子,现代的程序员使用C语言编写程序,编译器将其转换为计算机可以执行的机器语言,省去了程序员直接编写复杂的机器码的困扰。这样使得编程变得更容易,程序也可以更加可移植。

然而,编写程序依然需要对硬件有所了解,因为程序运行时必须使用内存、磁盘等硬件资源。例如,你需要了解内存的分配方式,知道如何读取和写入数据,这仍然是程序开发中的挑战。

为了解决这些低层次的硬件管理问题,操作系统(Operating System,简称OS)应运而生。操作系统负责为程序提供内存、硬盘等资源的管理,使得程序员不必每次都直接管理硬件,提升了程序的开发效率。

现代计算机系统通过使用编译器和操作系统,让程序员可以更加专注于高层次的程序设计,而不需要过度关注硬件和机器码的细节。

0.4.2操作系统

如同前面提到的,在早期想要让计算机执行程序,就需要参考大量硬件功能,并且学习机器语言才能编写程序。同时,每次写程序时都必须重新编写,因为硬件与软件功能不见得一致。因此,如果能够将所有硬件都驱动,并提供一个开发软件的参考接口给工程师,那么开发软件就变得非常简单了?这就是操作系统(Operating System,简称OS)!

操作系统内核(Kernel)

操作系统其实是一组程序,这组程序的重点在于管理计算机的所有活动以及驱动系统中的所有硬件。我们前面提到计算机没有软件只是一堆废铁,那操作系统的功能就是让CPU可以开始判断逻辑和运算数值、让主记忆体可以开始载入/读出数据与程序码、让硬盘可以开始被存取、让网络卡可以开始传输数据、让所有外围设备可以开始运转等。总之,硬件的所有动作都必须通过这个操作系统来达成。

上述的功能就是操作系统的核心(Kernel)了!你的计算机能不能完成某些任务,都与核心有关!只有核心提供的功能,你的计算机系统才能完成!比如说,如果你的核心不支持TCP/IP的网络协议,那么无论你购买了什么样的网卡,这个核心都无法提供网络能力。

但单有核心我们使用者也不知道能做些什么,因为核心主要是在管理硬件与提供相关的能力(如存取硬盘、网络功能、CPU资源获取等)。这些管理动作非常重要,如果使用者能直接使用核心的话,万一不小心将核心程序停止或破坏,将导致整个系统崩溃!因此,核心程序被放置在受保护的记忆体区域,并且开机时就一直驻留在内存中。

内核(操作系统核心)负责直接管理计算机的硬件资源和执行系统任务,但对于普通用户而言,直接与内核交互并不实际,也非常危险。原因如下:

  1. 内核负责硬件管理:内核管理所有硬件操作,比如 CPU 的调度、内存的分配、硬盘的存取、网络功能等。这些操作对计算机的正常运行至关重要。
  2. 用户无法直接操作内核:由于内核直接管理计算机的关键资源,如果用户直接操作内核,可能会无意中破坏系统,甚至使计算机无法正常工作。因此,内核中的代码和数据都必须受到保护,确保它不会被用户程序误操作或破坏。
  3. 内核的保护:为了防止系统崩溃,操作系统会确保内核部分常驻在内存中,且不允许用户随意访问或修改它。通常,内核代码被保存在一个受保护的内存区域,只有操作系统本身能够访问。

因此,为了更好地使用计算机,用户需要通过操作系统提供的接口(如命令行界面、图形界面等)来与计算机交互,而不直接与内核进行交互。这样,内核作为操作系统的"心脏",可以安全地管理硬件资源,同时通过提供给用户友好的接口,确保用户能够顺利使用计算机,而不必直接操作复杂的硬件管理逻辑。

系统调用(System Call)

系统调用(System Call)是操作系统为程序与硬件交互提供的一组接口。这些接口允许用户级程序通过操作系统内核提供的功能,访问底层硬件资源和执行关键任务。通过系统调用,用户程序无需直接与硬件交互,而是通过一系列约定好的接口与操作系统沟通。

在早期,程序员直接通过硬件函数来控制计算机的硬件设备,这种方法不仅需要深入了解硬件结构,而且编写的程序也无法在不同的硬件平台之间轻松移植。随着操作系统的出现,操作系统通过提供一个标准的接口,将程序与硬件的直接交互转移到内核中,用户程序通过系统调用间接访问硬件和执行系统任务。

核心(内核)是操作系统的核心部分,负责管理计算机硬件资源,如CPU、内存、磁盘、网络等。当程序运行时,它实际上是在用户空间中执行,而当程序需要访问硬件资源时,必须通过系统调用向操作系统请求。操作系统内核会根据这些请求分配资源并执行相应操作。例如,程序需要读写文件时,程序会调用一个文件操作的系统调用,操作系统内核接管实际的文件操作,确保文件的正确读写。

系统调用的实现方式通常是通过操作系统提供的库(例如C语言的标准库)来完成的。开发者使用更接近人类语言的编程语言(如C语言)编写程序,而系统调用接口将程序的请求转化为内核能理解并执行的命令。在此过程中,开发者并不需要关心内核如何管理硬件资源,操作系统会负责所有的底层管理。

为了确保系统的稳定性,操作系统将内核部分与用户程序隔离。用户程序无法直接修改或干扰内核的操作,避免了潜在的系统崩溃或不安全的行为。内核会一直驻留在内存中,并且通常对外部程序进行保护,以防止误操作。通过系统调用,程序能够安全地请求资源,并通过内核进行协调,确保操作的正确性。

最终,操作系统通过这种机制,提供了一个统一且相对简单的开发平台,使得程序员不需要深入了解硬件细节,就能够开发出高效且跨平台的应用程序。


简单来说,操作系统的核心层是根据硬件规格编写的,因此同一个操作系统程序无法在不同的硬件架构上运行。例如,个人电脑版的Windows 8.1不能直接在ARM架构(如手机或平板的硬件)上运行。

操作系统的主要功能是管理整个计算机硬件资源,包括CPU、内存、输入输出设备和文件系统。没有应用程序的帮助,操作系统只能使计算机处于准备就绪的状态,并无法执行其他复杂任务。举例来说,Windows系统上要显示网页或处理图像时,需要安装像PhotoImpact或Photoshop等应用程序。

应用程序的开发通常是基于操作系统提供的开发接口进行的,因此这些应用程序只能在特定的操作系统上运行,而不能跨系统运行。这就是为什么在购买软件(如线上游戏)时,光盘上会标明适用于哪些操作系统的原因,也解释了为什么某些游戏无法在Linux上安装的原因。

内核功能

内核(Kernel)是操作系统的核心部分,负责管理系统的硬件资源和提供基本的功能支持。它是操作系统与硬件之间的桥梁,直接控制计算机的硬件,并为上层应用提供资源管理和服务。内核的主要职责包括:

  1. 进程管理(Process Control) :内核管理所有的程序或进程。它负责分配CPU时间,调度进程,控制进程的创建、终止和执行顺序,确保多任务处理中的进程能高效并安全地执行。
  2. 内存管理(Memory Management) :内核管理计算机的物理内存,并为程序提供虚拟内存,确保程序在运行时能够访问内存中的数据。内核通过分配和回收内存空间来防止内存泄漏和冲突。
  3. 设备驱动管理(Device Drivers) :内核负责与硬件设备进行交互,如存储设备、显示器、网络设备等。内核通过设备驱动程序管理硬件的操作,提供标准化的接口供应用程序使用。
  4. 文件系统管理(Filesystem Management) :内核管理计算机上的文件存储,负责文件的创建、删除、读写和权限控制等操作。它实现了文件的组织、存储和访问机制,并确保数据的持久性和安全性。
  5. 系统调用接口(System Call Interface) :内核为应用程序提供系统调用接口,使应用程序能够请求内核提供的服务,如文件操作、内存分配、进程管理等。这些接口使得程序员可以通过高层次的编程语言与硬件进行交互。

内核可以分为不同的类型,主要包括:

  • 单体内核:整个操作系统的内核程序集成在一个大模块中,所有功能都在同一内核空间中运行。例子:Linux、Unix等。
  • 微内核:内核被拆分成小的模块,每个模块负责独立的功能。微内核只负责最基本的资源管理,其他功能通过用户空间的服务来实现。例子:Minix、QNX等。

内核是计算机操作系统中最为关键的部分,直接影响操作系统的稳定性、性能和安全性。

设备驱动程序

在现代计算机系统中,硬件与操作系统之间的关系是密不可分的。硬件设备的不断更新和发展要求操作系统具备灵活的机制来支持新的硬件功能。而设备驱动程序在这个过程中扮演了至关重要的角色。它们使得操作系统能够与硬件设备进行有效的通信和控制,从而确保应用程序能够利用硬件的功能。

操作系统如何驱动硬件

操作系统的核心功能之一是硬件管理。它负责对计算机系统中的所有硬件资源进行调度和管理,确保硬件资源能够被合理分配给各个应用程序和进程。然而,随着新硬件的不断推出,操作系统并不能直接“识别”所有新的硬件设备。比如,在计算机中使用新款显卡时,操作系统可能并不具备对这款显卡的驱动能力。因此,操作系统需要依赖专门的设备驱动程序来支持这些新硬件的功能。

驱动程序的作用

驱动程序是硬件设备与操作系统之间的桥梁,它的主要作用是将硬件设备的功能暴露给操作系统和应用程序。每种硬件设备都有特定的驱动程序,这些驱动程序是由硬件制造商根据操作系统提供的开发接口编写的。通过这些驱动程序,操作系统能够控制硬件,管理硬件的输入输出操作,并确保硬件在系统中的正常运行。

举个例子,假设你安装了一张新的显卡。如果操作系统本身没有这个显卡的驱动程序,它将无法与显卡正常工作,甚至无法显示图像。为了解决这个问题,显卡厂商会为不同操作系统(例如Windows和Linux)编写不同版本的驱动程序。一旦用户安装了正确的驱动程序,操作系统就能识别并使用显卡,应用程序也可以利用显卡进行图形处理。

驱动程序的开发与安装

操作系统通常会提供一个开发接口(API),让硬件厂商可以按照这个接口来编写驱动程序。这些接口包括硬件资源的管理、数据传输、设备控制等功能的调用方式。硬件厂商基于这些接口开发的驱动程序使得操作系统能够与硬件进行有效的沟通。

值得注意的是,驱动程序是由硬件厂商提供的,而不是操作系统开发者编写的。因此,用户在安装新硬件时,需要确保安装了适用于该硬件的驱动程序。驱动程序通常会通过硬件厂商的官方网站或操作系统的自动更新系统进行提供。为了确保硬件能够在操作系统中正常工作,用户必须使用与操作系统版本相匹配的驱动程序。例如,Windows系统上使用的显卡驱动程序是不能直接在Linux系统上使用的,因为它们是为不同的操作系统编写的。

驱动程序与操作系统的兼容性

驱动程序的一个重要特性是它必须与操作系统版本兼容。不同的操作系统(例如Windows、Linux、macOS)通常会有不同的开发接口和驱动要求。因此,硬件厂商需要为每种操作系统分别开发对应的驱动程序。例如,显卡厂商可能为Windows系统提供一种驱动程序,而为Linux系统提供另一种驱动程序。这就是为什么同一款硬件在不同操作系统上的表现可能有所不同。

如果你希望在某个操作系统上使用新硬件,首先要确保厂商提供了与该操作系统兼容的驱动程序。否则,即便硬件本身是最新的,操作系统也无法识别或有效利用它,导致硬件无法正常工作。


在计算机系统中,操作系统和硬件之间的关系非常紧密,而驱动程序则是它们之间的纽带。通过驱动程序,操作系统能够有效地控制和管理硬件,使得应用程序能够利用硬件的强大功能。硬件厂商会根据操作系统提供的开发接口编写驱动程序,并通过安装这些驱动程序,用户才能在操作系统中使用新硬件。因此,在安装新的硬件时,确保驱动程序与操作系统的兼容性是非常重要的。

0.4.3应用程序

在计算机系统中,应用程序(或称为软件应用)是通过参考操作系统提供的开发接口(API)进行开发的。这些程序能够为用户提供各种功能,使其能够高效地完成工作或娱乐任务。应用程序通常依赖操作系统来访问硬件资源,如存储、网络、图形显示等,从而实现其特定的功能。比如办公软件、图像处理工具和网页浏览器等,都是为了满足不同用户需求而开发的。

应用程序的功能和作用

应用程序是用户与计算机系统交互的主要工具。它们并不直接与硬件打交道,而是通过操作系统提供的接口来利用硬件资源。常见的应用程序有:

  • 办公软件(如Microsoft Office) :用于文档编辑、电子表格、演示文稿等办公任务。
  • 图像处理软件(如Photoshop) :用于编辑和处理图像、视频等多媒体文件。
  • 浏览器软件(如Google Chrome) :用于上网浏览和访问网页。

这些应用程序提供了具体的功能,帮助用户完成各种任务,通常是通过图形用户界面(GUI)让用户操作。而这些应用程序本身的开发和运行依赖于底层的操作系统。

应用程序与操作系统的依赖性

应用程序的运行是与操作系统密切相关的,开发者通常需要为特定的操作系统开发应用程序。例如,Windows操作系统上的应用程序不一定能直接在Linux操作系统上运行,因为两者的底层架构、文件系统、驱动支持等可能存在差异。因此,用户在安装应用程序时需要确认该软件是否与自己的操作系统兼容。

软件兼容性与操作系统

当你购买或下载软件时,通常需要查看该软件的系统要求,确保它能够在你的操作系统上运行。例如,在购买线上游戏光盘时,光盘上通常会标明该游戏支持哪些操作系统(如Windows XP、Windows Vista、macOS、Linux等)。如果你使用的是某个特定版本的操作系统,比如Windows 7或Windows 8.1,那么就要确保所购买的软件支持这一版本的操作系统,否则可能无法成功安装或运行。

以Microsoft产品为例

举个例子,微软公司有多个产品与操作系统之间的关系:

  1. Windows 8.1:这是一个操作系统,它需要安装在个人电脑上,才能使电脑开机并运行。不同版本的Windows操作系统(如Windows 7和Windows 8.1)具有不同的特性和支持,因此不能保证在一个操作系统上能运行的应用程序可以在另一个操作系统上运行。
  2. Office 2013:这是一个应用程序,安装它之前,需要确保它支持你当前的操作系统。如果你使用的是Windows 7或Windows 8.1,你需要确认Office 2013是否支持这些操作系统,因为应用程序通常有特定的系统需求。
  3. 不同操作系统的兼容性问题:如前所述,Windows 7和Windows 8.1是两种不同的操作系统,它们的底层机制、接口以及资源管理方式不同。因此,在Windows 7上可以运行的软件,可能不适用于Windows 8.1。而安装Windows 8.1后,系统本身仅提供操作系统功能,并不包含像Office这样的应用程序。你需要额外安装办公软件(如Office 2013),并确认其能在Windows 8.1上运行。

应用程序的开发和运行依赖于操作系统提供的开发接口与资源管理。在安装和使用应用程序时,用户需要关注该软件是否支持当前的操作系统版本。只有确保兼容性,才能使得应用程序能够顺利运行,提供预期的功能。因此,了解操作系统与应用程序之间的关系是用户在使用计算机时必备的知识。