文章背景图

Day01-02-计算机组成原理与操作系统

2026-06-04
0
-
- 分钟
|

Day 01-02 计算机组成原理与操作系统

[TOC]


Day 01 计算机组成原理

1. 什么是计算机?

计算机俗称电脑,相当于一种"人造人"——一通电就能像人脑一样工作。

2. 为何要有计算机?

造出一种机器取代人去工作,计算机就相当于人类的奴隶。

3. 计算机的核心组成

计算机由五大部分组成:

组成部分 说明 类比
控制器 计算机的指挥系统,负责控制所有其他硬件的运行 大脑
运算器 数学运算 + 逻辑运算 大脑
存储器 计算机的记忆设备(内存 + 外存) 大脑记忆 / 笔记本
输入设备 键盘、鼠标等 感官
输出设备 显示器、音响、打印机等 表达

CPU = 控制器 + 运算器,即计算机的"大脑"。

3.1 存储器详解

类型 名称 存储方式 优点 缺点
内存(RAM) 主存 基于电信号 存取速度都快 断电数据全部丢失
外存(机械磁盘) 硬盘 基于磁信号 可以持久保存数据 存储速度慢

3.2 程序在计算机中是如何运行的?

程序运行前,一定先存放在硬盘中(安装程序本质就是把代码文件放到硬盘各位置)。

程序运行分两个阶段:

flowchart LR
    A[硬盘中的程序] -->|1. 加载阶段| B[内存]
    B -->|2. 执行阶段| C[CPU 从内存取指令运行]
  1. 加载/启动阶段:把程序的指令或数据从硬盘读入内存
  2. 执行阶段:CPU 从内存中取出指令来运行

4. 处理器详解

4.1 CPU 指令集

  • x86:复杂指令集(CISC)
  • 64 位:CPU 一次性能从内存中取出 64 位二进制数,即 64 位 CPU 认为 64 位二进制数才是一条完整指令

补充:一个二进制数又称之为一个 bit(比特位)。

兼容性:

CPU 类型 可运行的程序
64 位 CPU 64 位、32 位程序
32 位 CPU 仅 32 位程序

软件包命名示例:nginx-1:1.20.1-14.el9_2.1.x86_64(版本与 CPU 兼容性相关)

4.2 多核多线程

  • 2 核 4 线程:真 2 核,假 4 核(超线程技术)

5. 存储器详解

5.1 CMOS

与内存一样断电数据就丢,但特点是耗电量非常低,由主板上的电池负责供电。

5.2 存储单位换算

单位 换算关系
1 B 8 bit
1 KB 2¹⁰ B = 1024 B
1 MB 2¹⁰ KB = 1024 KB = 2²⁰ B
1 GB 2¹⁰ MB = 1024 MB = 2³⁰ B
1 TB 2¹⁰ GB = 1024 GB = 2⁴⁰ B
1 PB 2¹⁰ TB = 1024 TB = 2⁵⁰ B
1 EB 2¹⁰ PB = 1024 PB = 2⁶⁰ B

计算机存取硬盘的最小单位是一个扇区,一个扇区 = 512 字节。

5.3 机械磁盘寻址时间

步骤 说明 耗时
平均寻道时间 磁头找到存储数据所在磁道 ~5ms
平均延迟时间 磁盘转半圈 ~4ms

5.4 虚拟内存(Swap)

在硬盘上分出一个空间当作内存使用,称为 swap 分区

flowchart TD
    A[物理内存不足] -->|数据交换| B[Swap 分区]
    B -->|释放物理内存| A
    style B fill:#f9f,stroke:#333

要点:

  • 虚拟内存是一种保命措施,不是提效措施
  • 一旦物理内存不够用,会把部分数据交换到 swap 分区
  • 整个过程计算机速度会降低,但保证不崩溃

6. 什么是编程语言?

编程语言与英语、汉语一样,是沟通的工具:

沟通对象 语言
英国人 英语
中国人 汉语
计算机 编程语言

print ——工具转换——> 010101010

7. 什么是编程?什么是程序?

  • 编程:把想让计算机做的事情的步骤,用编程语言翻译下来,写入一系列文件中
  • 程序:这一系列文件就是程序,计算机本身不会运行,运行都是受程序控制

类比:

银行行长(人) ----指令----> 小员工(人)
  "要求用户输入账号"
  "要求用户输入密码"
  "判断账号密码是否正确"

银行行长(人) ----编程语言----> 计算机
  用编程语言把上述步骤翻译

8. 程序的分类

类别 说明
应用程序 给用户使用/应用的程序
操作系统 协调管理控制计算机硬件资源与应用软件的控制程序

只有操作系统才能控制计算机硬件,应用程序操作硬件必须给操作系统发请求。

9. 计算机体系的三层结构

flowchart TB
    A[应用程序] --> B[操作系统]
    B --> C["计算机硬件<br/>CPU、内存、硬盘"]

Day 02 操作系统

1. 操作系统是什么?

操作系统是一个协调、管理、控制计算机硬件资源给应用程序使用的控制程序。

应用程序:图形界面 / 命令解释器
操作系统:Windows / Linux
计算机硬件:CPU、内存、硬盘

2. 为何要有操作系统?

为了方便上层应用程序开发——操作系统把复杂的硬件控制代码写好,对上层提供简单的功能接口。

操作系统 vs 应用程序:

操作系统 应用程序
职责 控制硬件,给上层提供调用接口 给用户使用的程序
对象 与硬件打交道 与用户打交道

3. 操作系统的构成

操作系统由两部分构成:

组成 说明
系统调用接口 为上层应用程序提供一系列功能
内核 负责控制硬件的运行

3.1 用户态与内核态

flowchart LR
    subgraph 用户态
        A["系统调用接口<br/>与应用程序打交道"]
    end
    subgraph 内核态
        B["内核<br/>与硬件打交道"]
    end
    A <-->|频繁切换| B
  • 用户态:执行系统调用接口层代码,与上层应用程序打交道
  • 内核态:执行内核代码,与底层硬件打交道
  • 操作系统运行过程中会频繁发生用户态与内核态的切换

3.2 应用程序如何启动运行?

flowchart LR
    A["双击快捷方式 / 执行命令"] --> B["图形界面 / 命令解释器 bash"]
    B --> C[操作系统]
    C --> D[硬件]

具体流程:

  1. 操作系统接到启动程序的指令
  2. 操作系统控制硬盘把程序代码文件读入内存
  3. 操作系统控制 CPU 去内存里读取程序指令来运行

4. 操作系统的分类

场景 系统
个人台式机 Windows
Mac macOS
服务器 Linux

5. 操作系统发展史

flowchart LR
    A["第一代<br/>无操作系统<br/>串行执行"] --> B["第二代<br/>批处理系统<br/>仍串行"]
    B --> C["第三代<br/>多道技术 + 分时系统<br/>并发执行"]
    C --> D[CTTS 分时操作系统]
    D --> E["MULTICS<br/>支持更多终端"]
    E --> F["UNIX<br/>1970 Unix 元年"]
    F --> G["GNU / GPL 开源运动"]
    G --> H["Linux<br/>加入 GPL"]
    H --> I["发行版<br/>RedHat 系 / Debian 系"]

5.1 第一代计算机

  • 没有操作系统的概念
  • 所有程序设计都是直接操控硬件
  • 多程序串行执行
优点 缺点
程序独享整个计算机资源 资源浪费(调试时别人也用不了)
串行执行

5.2 第二代计算机(批处理系统)

  • 一下处理一批程序,但仍是串行的
  • 批处理提升了计算机资源利用率
优点 缺点
出错只输出结果,不影响下一个程序 程序无法实时调试
仍然串行

5.3 第三代计算机(多道技术)

硬件发展:IO + 运算功能集成在一台计算机里。

多道技术的核心——控制多个程序看起来同时运行:

复用维度 说明
空间上的复用 复用内存,多个程序同时读入内存。注意:多个程序的内存空间必须隔离
时间上的复用 复用 CPU 时间,CPU 在多个程序之间快速切换

CPU 切换时机:

  1. 遇到 IO 操作一定会切换
  2. 没遇到 IO 操作,也要切换(让 CPU 雨露均沾)

并发 vs 并行

概念 说明 要求
并发 多个任务看起来同时运行 单核即可实现
并行 多个任务真正同时运行 必须多核

5.4 分时操作系统 CTTS

  • 多个联机终端 + 多道技术
  • 每个程序员/程序都以为自己独占计算机资源
  • 多个程序并发运行

5.5 MULTICS → UNIX → Linux

  • MULTICS:支持更多联机终端(项目最终破产)
  • UNIX:Ken Thompson 开发的简易版 MULTICS,1970 年为 Unix 元年,TCP/IP 在 Unix 上开发测试
  • GNU 运动 & GPL 开源协议:开放源代码,所有人可抄可改,修改后也必须开源
  • Linux:芬兰大学生 Linus 开发,加入 GPL 协议

6. Linux 发行版

flowchart TD
    L[Linux 内核] --> R[RedHat 系]
    L --> D[Debian 系]
    L --> C[国产系]
    
    R --> F[Fedora]
    F --> RHEL[RHEL]
    RHEL --> CentOS[CentOS 7.9]
    F --> CS[CentOS Stream]
    CS --> RHEL2[新版 RHEL]
    
    D --> U[Ubuntu]
    
    R --> RL[Rocky Linux 9.3]
系列 包管理器 代表发行版
RedHat 系 dnf / yum CentOS、Rocky Linux、Fedora
Debian 系 apt-get Ubuntu

7. 本次课程安装的系统版本

  • CentOS 7.9
  • Rocky Linux 9.3
  • Ubuntu 22.04.4 LTS

关于操作系统安装详见 Day 03。

原创

Day01-02-计算机组成原理与操作系统

本文链接: Day01-02-计算机组成原理与操作系统

本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

评论交流

文章目录