Skip to main content

计算机组成概览

主要内容分为计算机基本结构、运行内存、数据存储、文件系统、软件、操作系统与虚拟化技术等板块。

计算机基本结构

计算机一般这样工作:输入数据存入内存,通过CPU计算后,返回给内存。

计算机基本结构有4个部分,分别是中央处理器(CPU)、存储器、输入设备和输出设备。

控制器(Control):是整个计算机的中枢神经,其功能是对程序规定的控制信息进行解释,根据其要求进行控制,调度程序、数据、地址,协调计算机各部分工作及内存与外设的访问等。

运算器(Datapath):运算器的功能是对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。

寄存器:里面保存着那些等待处理的数据,或已经处理过的数据,CPU访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少CPU访问内存的次数,从而提高了CPU的工作速度。

存储器(Memory):存储器的功能是存储程序、数据和各种信号、命令等信息,并在需要时提供这些信息。

输入(Input system):输入设备是计算机的重要组成部分,输入设备与输出设备合称为外部设备,简称外设,输入设备的作用是将程序、原始数据、文字、字符、控制命令或现场采集的数据等信息输入到计算机。常见的输入设备有键盘、鼠标器、光电输入机、磁带机、磁盘机、光盘机等。

输出(Output system):输出设备与输入设备同样是计算机的重要组成部分,它把计算机的中间结果或最后结果、机内的各种数据符号及文字或各种控制信号等信息输出出来。微机常用的输出设备有显示终端CRT、打印机、激光印字机、绘图仪及磁带、光盘机等。

计算机基本结构主要分为2种,即冯诺依曼结构和哈佛结构。

它们的不同点在于:

一、存储器结构不同

1、冯诺依曼结构:冯诺依曼结构是一种将程序指令存储器和数据存储器合并在一起的存储器结构。

2、哈佛结构:哈佛结构使用两个独立的存储器模块,分别存储指令和数据,每个存储模块都不允许指令和数据并存。

二、总线不同

1、冯诺依曼结构:冯诺依曼结构没有总线,CPU与存储器直接关联。

2、哈佛结构:哈佛结构使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。

三、执行效率不同

1、冯诺依曼结构:冯诺依曼结构其程序指令和数据指令执行时不可以预先读取下一条指令,需要依次读取,执行效率较低。

2、哈佛结构:哈佛结构其程序指令和数据指令执行时可以预先读取下一条指令,具有较高的执行效率。

背板电路

RJ45网线口、3.5mm耳机孔、HDMI多媒体接口、VGA显示器接口、DP视频接口、USB4.0(Type-C)。

IDE(ATA接口)

芯片组(英语:Chipset)是一组共同工作的集成电路“芯片”,并作为一个产品销售。它负责将计算机的核心——微处理器和机器的其它部分相连接,是决定主板级别的重要部件。以往,芯片组由多颗芯片组成,慢慢的简化为两颗芯片。

北桥(英语:Northbridge)是基于 Intel 处理器的个人计算机主板芯片组两枚芯片中的一枚,北桥设计用来处理高速信号,通常处理中央处理器、存储器、PCI Express显卡(早年是AGP显卡)、高速PCI Express X16/X8的端口,还有与南桥之间的通信。它直接集成到CPU芯片上。

南桥(英语:Southbridge)是基于个人计算机主板芯片组架构中的其中一枚芯片。南桥设计用来处理低速信号,通过北桥与中央处理器联系。

PCle插槽

PCIe(PCI express)是现代计算机中最重要的扩展接口之一,它能够支持计算机中硬件间的高速、实时数据传输。高速硬件如显卡、网卡等通过PCIe接口直接接入到计算机的北桥芯片/CPU。

物理上PCIe接口及规格和主版的设计有关,但具体可用性也受到CPU具体型号的限制;笔记本中通常不提供标准型号的PCIe接口,但提供M.2以接入固态硬盘和无线网卡。

计算机的运行内存

我们常说的内存一般是运行内存,或者是随机访问处理器(RAM),用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。

内存运行决定了计算机整体运行的快慢,可以通过计算机操作的响应时间来观察其好坏。

计算机的数据存储

相应的,需要永久保存、大量的数据一般放在外存。

常见的外存就是硬盘、U盘、光盘等。

机械硬盘和固态硬盘

硬盘又分为机械硬盘和固态硬盘;

机械硬盘简称HHD,机械硬盘是磁碟型的,数据储存在磁碟扇区里,就像唱片一样,由于在使用中高速旋转,所以机械部件要非常的精准,如果大幅度的磕碰或是震荡就有可能会导致盘片损伤从而引起数据的丢失.

固态硬盘简称SSD,固态硬盘使用了类似于内存条的闪存芯片 存储数据,没有机械结构.

目前的笔记本内,大多都是固态硬盘,如果大家有拆过笔记本的电脑后盖,可以看到电脑主板上会有多余的SATA或M.2接口(一般是这两种),说明你可以另安装固态硬盘来扩容,有个很大的零件,类似于光碟状的,那就是机械硬盘。

SCSI(Small Computer System Interface)小型计算机系统接口。采用ASPI(高级SCSI编程接口)的标准软件接口使驱动器 和 计算机内部安装的SCSI适配器 进行通信。一款通用接口标准,与操作系统无关,允许多个设备同时连接到计算机。

SATA低速设备、PCLe高速设备.

SATA是Serial ATA的缩写,一种电脑总线,主要功能是用作主板和大量存储设备(如硬盘及光盘驱动器)之间的数据传输,由于采用串行方式传输数据,保留了多种向后兼容方式,在使用上不存在兼容性的问题

mSATA 迷你型,提供小尺寸CE产品(如Notebooks/ Netbook)的系统开发商和制造商

SAS是SATA的升级

SAS(Serial Attached SCSI),小型计算机系统接口,串行连接SCSI接口。为了改善存储系统的效能、可用性和扩充性,提供与串行ATA (Serial ATA,缩写为SATA)硬盘的兼容性。SAS的接口不仅看起来和SATA类似,而且可以向下兼容SATA标准。

M.2接口是一种新的主机接口方案,可以兼容多种通信协议,如sata、PCIe、USB、HSIC、UART、SMBus等。

M.2接口是为超极本(Ultrabook)量身定做的新一代接口标准,以取代原来的mSATA接口。无论是更小巧的规格尺寸,还是更高的传输性能,M.2都远胜于mSATA。

快速读取需求 M.2 PCLe协议,低速读取SATA协议

对于桌面台式机用户来讲,SATA接口已经足以满足大部分用户的需求了,不过考虑到超极本用户的存储需求,Intel才急切的推出了这种新的接口标准。

存储设备的容量单位

1024(210)进制单位:

1 TiB = 1024 GiB = 10242MiB = 10243KiB = 10244Byte

1000(103)进制单位:

1TB = 1000 GB = 106 MB = 109 KB = 1012Byte

持久化存储产品一般按照1000进制单位生产,而Windows的磁盘管理中混淆了两种单位,出现机械硬盘容量小于厂商标注的假象。

固态硬盘的闪存颗粒为了提升使用寿命,生产阶段的容量会略大于实际容量,然后留出部分不可直接使用的空间用于平衡闪存单元的磨损,最终容量略小于1024进制容量。

硬盘分区

首先,硬盘分区能否减小数据损坏的风险是一个需要分别讨论的问题。

传统的机械硬盘容易发生局部损坏的情况,因为数据是连续存储到磁道上的,将硬盘进行分区可以降低这种风险。

但对于固态硬盘来说,数据究竟如何存储到闪存颗粒上是由主控芯片决定的,硬盘分区并不能减少这种风险。

文件系统与格式化

几种常见的文件系统:

FAT(文件分配表):FAT(12/16),FAT32(最大容量32GiB,最大文件大小4GiB)

Windows专用:NTFS、ReFS

macOS专用:HFS+、APFS

Linux专用:ext4、XFS、Btrfs

exFAT:适用于大容量闪存设备的非日志通用文件系统

在分区上建立新文件系统的过程称为“格式化”,格式化会导致现有数据被清除。

元数据与用户数据

元数据:“用于描述数据的数据”。

它记录了数据:在磁盘上的位置、文件路径、创建时间、修改时间、所有者和权限等信息。

用户数据:“真正的数据”。

文件夹、文件

文件夹/目录(命名空间):文件夹/目录是一种用于归类存放文件的方式,在同一个命名空间里不能出现两个同名的对象,文件夹/目录并不实际包含数据。

文件:带有元数据描述的一段数据。

输入与输出设备

输入设备:硬盘、网卡

输出设备:显卡/FPGA卡、声卡

网卡被设计用来允许计算机在计算机网络上进行通讯的计算机硬件,由于其拥有MAC地址,因此属于OSI模型的第1层和2层之间。它使得用户可以通过电缆或无线相互连接。每一个网卡都有一个被称为MAC地址的独一无二的48位串行号。

显卡将计算机系统需要的显示信息进行转换驱动显示器,并向显示器提供逐行或隔行扫描信号,控制显示器的正确显示。

以设计逻辑数字电路为主要功能的一个芯片,如今应用范围广泛,可编程逻辑矩阵。

声卡是实现声波/数字信号相互转换的一种硬件,把来自话筒、磁带、光盘的原始声音信号加以转换,输出到耳机、扬声器、扩音机、录音机等声响设备,或通过音乐设备数字接口(MIDI)发出合成乐器的声音。

计算机软件

指令集

不同的CPU能接收的指令(统称为指令集)不同。

由于CPU执行的指令实际上来自于RAM中,因此在运行一个软件之前,我们需要将其指令载入到内存中去。

对于不同的CPU,他们可以接受的指令是不同的,一个CPU可以接受的全部指令称为该CPU的指令集。

例如常见的Intel和AMD生产的CPU使用名为x86指令集,根据其寄存器长度又进一步分为x86_32(简称x86)和x86_64(简称x64,亦称为AMD64),该名称来自于Intel早期的8086系列处理器;

而手机上常见的高通、联发科生产的CPU则使用ARM指令集,目前主要使用的包括ARMv7系列、ARMv8两个版本。

BIOS

BIOS是一种特殊的软件,能够为计算机大多数硬件提供通信,通过BIOS只需要使用固定的SATA通信指令就可以使用了,而不必区分它具体的型号。

UEFI

在目前生产的x86_64架构计算机中,UEFI正在逐渐取代BIOS。UEFI对比BIOS来说,添加其他硬件接口变得更加方便和可能。

应用程序

当操作系统完全启动之后,面向用户和实际业务的应用程序可以被操作系统加载到内存中并执行,这些程序可能还依赖于额外的运行时或函数库,这些相关资源也需要一并载入内存中。

一个二进制可执行文件只能在它的目标平台上运行。

平台一般指操作系统和CPU指令集的组合,例如目标平台为windows-x64时,程序指令应该编译为x64指令集,并以PE格式存储;若为linux-armv8时,程序应该编译为armv8指令集,并以ELF格式存储。

也有一些程序是由运行时程序间接载入内存的,这些程序可以忽视平台本身的差异,例如Java、Python、JavaScript等编写的程序,他们由运行时虚拟机或运行时解释器进行解析载入,这样的程序称为跨平台(cross-platform)应用。

此外,一些程序不经过修改代码即可编译、封装成不同平台的可执行文件,这些程序称为具有跨平台能力的程序。

操作系统

为什么需要操作系统?

因为,直接通过编程方式操作计算机非常麻烦,还可能影响计算机的运行效率。

操作系统的分类

操作系统按历史可分为批处理操作系统、分时操作系统、实时操作系统、分布式操作系统、微型机操作系统。

批处理操作系统

这种操作系统最早见于机械计算机到晶体管计算机的演变。

批处理(batch processing)操作系统能够同时接受多个任务,并顺序执行。

截止到1970年代,批处理操作系统仍然是计算机操作系统的主流。

分时操作系统

分时操作系统的出现是因为计算机应用领域的扩大带来了更高的要求。

分时操作系统的特性是,它将CPU的运行时间进行切片,轮流给各个任务执行。它实际上是交替运行的,人类很难察觉到这一特点。

分时操作系统提供了多任务和多用户特性的支持,可以交互式的使用计算机(shell出现,1964-1965,作为Multics项目的一部分)。

实时操作系统

实时操作系统的特征是,它从接收到完成一个任务的时间几乎是固定的。

实时操作系统在调度机制上追求最小的中断时间和切换延迟时间(按时间分配或事件驱动)。

现代通用分时操作系统大多支持一定的实时操作系统特性(抢占式任务调度),例如媒体解码播放等,都需要利用实时特性来实现

专门为实时任务设计的操作系统通常用于处理专门任务的设备上,例如探测车、路由器、工业控制设备,等等。

分布式操作系统

分布式操作系统是一种将不同节点上的软硬件资源整合起来作为统一的操作系统来使用的技术。

分布式操作系统的研究高潮发生于上个世纪中后期,但最终没有完全成型的商业化分布式操作系统诞生;不过这些研究的部分产物,例如进程间通信技术、分布式存储技术、网络协议等都深远的影响了今天的计算机世界。

微型机操作系统

微型机诞生初期,其单机性能不如传统的大型机等设备,因此其上不足以运行操作系统,主要采取向存储器中进行BASIC编程计算的方式来工作。

随着性能的发展,一些大型机操作系统被移植到了微型机上,也有一些新的操作系统诞生了。

POSIX标准

Portable Operating System Interface(POSIX)是IEEE提出通用操作系统标准API定义,该标准最初只针对UNIX操作系统,但后来的Linux、Windows实际上也都内置了该标准中定义几乎所有的API。

一个只使用POSIX规范中定义的API的应用程序,原则上来说可以在不修改源代码的情况下移植到所有的POSIX操作系统上。

操作系统主流谱系

主要有三大主流谱系,分别是Windows NT、UNIX和Linux。

其中,UNIX是一个庞大的谱系,演化出了后来的BSD,BSD又逐渐演化为了家喻户晓的Mac OS。同样地,UNIX演化出了GNU,也就有了后来的Linux。Linux是三大巨头中最年轻的操作系统。

computer

操作系统内核

从应用程序的角度看,一般可看作是一系列可供调用的函数(system call),面向硬件一侧,操作系统内核肩负了控制和协调硬件的作用。

内核是介于硬件和系统调用的中间一层。

Linux的优势

Linux是目前各类网络服务器的主要操作系统,相关软件的开发者更倾向于直接在Linux上开发、在Linux上测试、在Linux上运行。

Linux的各类配置一般采用易于查看的文本格式;而Windows上各类配置使用的注册表各个项目一般采取二进制数值作为配置的值,不易理解和修改。

嵌入式设备、机器人等领域的一些开发工具可能只提供Linux版本。

Linux的操作系统架构比Windows更加简单,如果想要学习操作系统、了解各类软件的工作原理,Linux是更好的选择。

macOS在一些层面上与Linux具有相似的优势,但并不易于在各类硬件设备上运行。

虚拟机与模拟器

虚拟机和模拟器相比,虚拟机性能高,可以由硬件加速,但不支持跨平台虚拟化。模拟器性能低,一般是纯软件方案,但支持跨平台虚拟化。

虚拟化技术

全虚拟化:虚拟机环境为操作系统提供完整的虚拟硬件支持,进行完整的译码过程来运行虚拟机中的程序。

硬件辅助全虚拟化:CPU中提供专门的单元用于译码来加快速度

半虚拟化:虚拟机为操作系统提供虚拟机接口,操作系统需要支持对应的接口或进行改造才能在其上运行。

操作系统内建虚拟化技术

对于不同的操作系统,应用有不同的内建虚拟化技术。

Windows:Hyper-V

Linux:KVM

BSD:bhyve

macOS:xhyve

其他重要的虚拟机有:VMware、VirtualBox和QEMU等。