计算机系统#
- 计算机 (computer):能够接收、存储、处理、输出数据的机器,俗称电脑。包括个人电脑、服务器(server)、超级计算机、工作站、嵌入式系统等。
- PC(personal computer):能够文档编辑、网页浏览、游戏等,个人计算机,通常运行操作系统如 Windows、macOS 或 Linux。
- Mac:特指苹果公司生产的个人电脑,运行 macOS 操作系统。
早期:Mac \(\in\) PC \(\in\) Computer
PC 这个术语最初是指个人电脑,但随着时间的发展,它在大众文化中通常被用来指代运行 Windows 操作系统的个人电脑。而 Mac 是苹果公司生产的个人电脑品牌,它们运行的是 macOS 操作系统。
硬件#
计算机的发展历史#
机械计算时期(17世纪 - 19世纪)
- 17世纪: 布莱兹·帕斯卡(Blaise Pascal)和戈特弗里德·莱布尼茨(Gottfried Leibniz)分别设计了早期的机械计算器(如Pascaline和莱布尼茨轮),用于执行简单的加减乘除运算。
- 19世纪: 查尔斯·巴贝奇(Charles Babbage)设计了“差分机”和“分析机”,这是最早的自动机械计算机概念,尽管由于技术限制,分析机从未完全建成。艾达·洛芙莱斯(Ada Lovelace)为巴贝奇的分析机编写了第一个算法,成为历史上第一位程序员。
电子计算机的萌芽(1930年代 - 1940年代)
1930年代: 艾伦·图灵(Alan Turing)提出了图灵机的理论模型,为计算理论奠定了基础。约翰·阿塔纳索夫(John Atanasoff)和克利福德·贝里(Clifford Berry)开发了阿塔纳索夫-贝瑞计算机(ABC),这是第一台电子数字计算机的原型。
1940年代: 世界上第一台通用电子数字计算机 ENIAC (Electronic Numerical Integrator and Computer)于 1946 年在美国建成。ENIAC 使用电子管,能够执行多种计算任务,但其体积庞大,耗电巨大。

第一代计算机(1940年代末 - 1950年代中期)
- 这一代计算机使用电子管作为基本逻辑元件,体积大、功耗高且不可靠。代表性计算机有UNIVAC I(1951年),这是第一台商用计算机。
- 编程使用机器语言或汇编语言,存储设备主要是磁鼓和打孔卡片。
第二代计算机(1950 年代中期 - 1960 年代中期)
- 第二代计算机采用晶体管代替电子管,体积缩小,能耗降低,速度提升,可靠性增强。
- 使用高级编程语言(如Fortran和COBOL)编写程序,磁芯存储器和磁带开始作为主要的存储介质。
- IBM 7090 和 UNIVAC 1108 是这一代计算机的代表。
第三代计算机(1960 年代中期 - 1970 年代初)
- 使用集成电路 (IC)取代晶体管,使计算机进一步小型化和高效化。
- 操作系统开始普及,多道程序设计(multiprogramming)使得计算机可以同时处理多个任务。
- IBM System/360 系列计算机是这一代的代表,它广泛应用于商业、科研和政府机构。
第四代计算机(1970年代初 - 现在)
- 采用大规模集成电路(LSI)和超大规模集成电路(VLSI),计算机性能和存储容量进一步提升。
- 微处理器的发明(如 Intel 4004 和 8080)推动了个人计算机(PC)的发展,催生了计算机的普及化。
- 操作系统和图形用户界面(GUI)逐渐成为标准,个人电脑(如Apple II、IBM PC)迅速普及。
现代计算机与未来计算(21世纪)
- 并行计算和云计算:分布式计算和云技术使得计算能力大幅度提升,允许大规模数据处理和人工智能的快速发展。
- 移动和嵌入式计算:智能手机、平板电脑、物联网设备等成为主流计算设备,嵌入式计算技术不断发展。
- 量子计算:量子计算机处于实验和早期应用阶段,有望解决传统计算机无法高效处理的复杂问题(如大规模因子分解和量子化学模拟)。
- 人工智能与机器学习:现代计算机借助于强大的计算能力和大数据,推动了人工智能、深度学习和神经网络的发展。
冯·诺依曼架构#

1945 年冯·诺依曼提出了冯·诺依曼架构,这是现代计算机的基础,包括了存储程序概念。
早期的计算机是由各种门电路组成的,这些门电路通过组装出一个固定的电路板,来执行一个特定的程序,一旦需要修改程序功能,就要重新组装电路板,所以早期的计算机程序是硬件化的!
然而,祖师爷的出现将最初的硬件化程序变为可编程、可存储编码, 放在存储器中 ,随意使用
冯·诺依曼架构理论要点
- 数据都是二进制,bit(0/1)、byte,1 byte = 8 bit
- 计算机按照程序顺序执行
- 计算机由五大部分组成
进制转换
- 二进制
- 十进制
五大部件:运算器、控制器、存储器、输入设备、输出设备

运算器处理算数运算和逻辑运算、控制器指挥整个计算机(告诉运算器该处理什么数据),二者共同组成了中央处理器。
存储器分为外部和内部,外部用来存储数据(硬盘)、内部直接和 CPU 交互(内存)
计算机的分类#
- 微型
- 大型
- 超大型
现代服务器常见硬件#
现代服务器的硬件通常具有高性能、稳定性和可扩展性,旨在处理大量数据和提供可靠的计算能力。以下是现代服务器常见的硬件组件:
中央处理器(CPU)
服务器通常配备多个高性能多核处理器,如Intel Xeon系列或AMD EPYC系列,以提高并行处理能力。
服务器CPU通常支持高级虚拟化和安全功能,提供更高的计算密度和能效。
内存(RAM)
服务器通常配备大量的内存,以支持大规模数据处理和多任务操作。常见的内存类型为DDR4或DDR5 ECC(错误纠正码)内存,以提高数据完整性和系统稳定性。
内存容量通常在64GB到数TB不等,取决于应用需求和服务器的配置。
存储设备
固态硬盘(SSD): 现代服务器越来越多地采用SSD(SATA、NVMe)作为存储介质,以获得更快的读写速度和更低的延迟。
硬盘驱动器(HDD): 尽管SSD流行,但HDD仍用于大容量存储解决方案,特别是在成本敏感的应用场景下。
RAID控制器: 用于实现冗余和数据保护,支持各种RAID级别(如RAID 0, 1, 5, 6, 10)。
主板
服务器主板设计用于支持多CPU插槽、大量内存插槽、高速I/O扩展,以及各种管理和监控功能(如IPMI,Intelligent Platform Management Interface)。
主板通常包括多个PCIe插槽用于扩展,例如增加GPU、存储控制器、网络适配器等。
电源供应(PSU)
服务器电源通常为冗余设计(如双电源),以保证系统的可靠性和持续运行能力。
现代服务器电源通常为高效(80 PLUS金牌或铂金认证),以减少能源消耗和散热需求。
网络接口卡(NIC)
大多数服务器内置多个千兆以太网接口,有些高性能服务器支持10GbE、25GbE、40GbE,甚至100GbE接口,用于高速网络连接和数据传输。
可以通过PCIe插槽扩展网络接口,增加带宽或支持不同的网络协议(如光纤通道,InfiniBand)。
图形处理单元(GPU)
专业的服务器通常配备高性能GPU卡(如NVIDIA Tesla、A100系列或AMD Radeon Instinct),用于加速AI/ML计算、数据分析、图形渲染和科学计算等任务。
GPU服务器被广泛用于机器学习、深度学习、金融建模和科学模拟等高性能计算领域。
机箱和冷却系统
服务器机箱通常为标准化的机架式(如1U, 2U, 4U等)或刀片式设计,以便于数据中心内的安装和维护。
配备强大的风冷系统或液冷系统,以确保在高负载下的散热性能。
远程管理模块
服务器通常配备基于BMC(Baseboard Management Controller)的远程管理模块,如IPMI、iDRAC(Dell)、iLO(HPE),用于监控和管理服务器的硬件状态、故障处理和固件升级。
存储控制器
用于管理磁盘阵列、缓存数据加速、优化读写性能,并支持不同的存储接口(如SATA、SAS、NVMe)。
服务器中常见的存储控制器品牌有Broadcom、Intel、Microsemi等。
固态硬盘缓存和加速卡
专用的缓存和加速卡(如NVDIMM、Optane Memory)可以进一步加速存储性能和数据吞吐量,适用于需要高IOPS的应用场景。
电池备份单元(BBU)
用于在断电时保护缓存数据,通常与RAID控制器搭配使用,防止数据丢失。
这些硬件组件结合在一起,为现代服务器提供了强大的计算、存储、网络和管理能力,能够支持各种企业级应用、云计算、虚拟化、大数据和AI/ML工作负载。
软件#
操作系统功能和分类#
功能:
- 硬件驱动
- 进程管理
- 内存管理
- 网络管理
- 安全管理
- 文件管理
分类:
| 类型 | 操作系统 |
|---|---|
| 服务器 | CentOS、Windows server、Ubuntu、Debian |
| 桌面 | Windows、Linux、macos |
| 移动端 | 安卓、苹果、鸿蒙、 |
Unix 哲学思想#
- 一切是文件(包括硬件)
- 小型、单一用途的程序
- 通过链接来完成复杂任务
- 避免复杂的界面
- 配置都可在文本中
Linux#
Linux 历史

Linus 开发内核,GNU 提供软件。
- Linux 发行版
