1. 计算机发展:

       1. 第一代计算机(1946-1957) 电子管时代

       2. 第二代计算机(1958-1964) 晶体管时代

       3. 第三代计算机(1965-1970) 集成电路时代

       4. 第四代计算机(1971-以后)   大规模集成电路时代

2. 计算机基础知识框架:

2.1 计算机是什么

计算机是一种能够按照程序运行,自动、高速地对各种数据进行存储、处理、输入和输出的电子设备。

2.2 计算机的组成

通常可以从两个角度来理解计算机的组成:物理结构(硬件)和逻辑结构(冯·诺依曼体系结构)。

2.2.1. 硬件组成(看得见摸得着的部分)

一台典型的个人电脑(如台式机或笔记本)由以下核心部件构成:

中央处理器 (CPU):计算机的“大脑”。负责解释指令和处理数据,其性能主要由主频(处理速度)、核心数(同时处理任务的能力)决定。

内存 (RAM):计算机的“工作台”。用于临时存储CPU即将处理的数据。特点是读写速度极快,但断电后数据会全部丢失。内存大小直接影响能同时流畅运行多少程序。

硬盘 (Storage):计算机的“仓库”。用于长期存储数据和程序,如操作系统、文档、游戏等。特点是断电后数据不丢失,但速度比内存慢。主要分传统的机械硬盘 (HDD) 和更快的固态硬盘 (SSD)

主板 (Motherboard):计算机的“躯干”。一块大型电路板,将CPU、内存、硬盘、显卡等所有部件连接在一起,让它们能够互相通信。

显卡 (GPU):专门处理图像输出的部件。对于3D游戏、视频剪辑、图形设计等任务至关重要。现代CPU内部也集成了核心显卡,足以应对日常办公和影音。

输入设备:向计算机输入信息的设备。例如:键盘、鼠标、麦克风、摄像头。

输出设备:计算机向外界展示结果的设备。例如:显示器、音响、打印机。

2.2.1 软件组成(看不见但驱动硬件的部分)

只有硬件无法工作,必须要有软件来指挥它。软件分为两类:

系统软件:最核心的是操作系统 (OS),如 Windows, macOS, Linux, iOS, Android。它是用户和硬件之间的桥梁,管理所有硬件资源,并为应用软件提供运行环境。

应用软件:为解决特定任务而开发的程序,如 Chrome 浏览器、Word 编辑器、微信、Photoshop 等。

2.2.2核心逻辑结构:冯·诺依曼体系结构(核心)

几乎所有现代计算机都遵循这个由数学家冯·诺依曼在1945年提出的结构。它定义了计算机的五大核心逻辑部件:

  1. 输入设备: 接收外部指令和数据(如键盘)。

  2. 输出设备: 输出处理结果(如显示器)。

  3. 存储器: 存放数据和程序(内存)。

  4. 运算器: 执行算术运算和逻辑运算(在CPU内部)。

  5. 控制器: 自动读取并解释程序指令,向其他部件发出控制信号(也在CPU内部)。

其最核心的思想是 “存储程序”把程序(指令序列)和数据一起预先存入存储器中,计算机启动后,控制器会逐条取出指令并执行。 这使计算机可以自动化工作,只需改变存储器中的程序就能完成不同任务,赋予了计算机巨大的灵活性。

2.3计算机组成原理 

核心问题:计算机长什么样?它是怎么算出来的?

  • 1. 冯·诺依曼体系结构

    • 五大部件:运算器、控制器、存储器、输入设备、输出设备。

    • 核心思想:存储程序(指令和数据以二进制形式存放在存储器中)。

  • 2. 数据的表示与运算

    • 进制转换(二进制、十进制、十六进制)。

    • 原码、反码、补码(为什么用补码:统一加减法,避免+0和-0)。

    • 浮点数表示(IEEE 754标准)。

  • 3. 存储系统(层次结构)

    • 寄存器 (CPU内部) > 高速缓存 (L1/L2/L3 Cache) > 内存 (RAM) > 外存 (SSD/HDD)。

    • 局部性原理:时间局部性、空间局部性(缓存工作的基础)。

    • 虚拟内存:通过页表把硬盘当作内存用,隔离进程地址空间。

  • 4. 指令系统

    • CISC vs RISC(复杂指令集 vs 精简指令集,如x86 vs ARM)。

    • 指令周期:取指 -> 译码 -> 执行 -> 写回。

  • 5. 中央处理器(CPU)

    • 流水线技术(提高吞吐率,解决结构/数据/控制冒险)。

    • 中断与异常(系统调用、缺页异常、硬件中断)。

2.4 操作系统 

核心问题:怎么管理硬件和软件资源?

  • 1. 进程与线程 (Process & Thread)

    • 区别:进程是资源分配单位,线程是CPU调度单位。

    • 进程状态:新建、就绪、运行、阻塞、终止。

    • PCB(进程控制块)和上下文切换(开销较大)。

    • 协程:用户态轻量线程。

  • 2. 调度算法

    • FCFS(先来先服务)、SJF(短作业优先)、RR(时间片轮转)、多级反馈队列。

  • 3. 并发与同步

    • 临界区、互斥、信号量 (Semaphore)、管程 (Monitor)。

    • 经典问题:生产者-消费者、读者-写者、哲学家就餐。

    • 死锁四必要条件(互斥、占有且等待、不可剥夺、循环等待),死锁避免(银行家算法)。

  • 4. 内存管理

    • 分页(页表、TLB快表)、分段、段页式。

    • 页面置换算法:LRU(最近最久未使用)、FIFO、Clock。

    • 抖动 (Thrashing) 和工作集。

  • 5. 文件系统

    • 文件结构(索引节点inode、目录项dentry)。

    • 磁盘调度:先来先服务、最短寻道时间优先、电梯算法(SCAN)。

  • 6. 用户态 vs 内核态

    • 系统调用(read, write, open, fork)是切换状态的桥梁。

2.5 计算机网络 

核心问题:数据怎么从一台机器传到另一台机器?

  • 1. 五层模型(自顶向下)

    • 应用层:HTTP, HTTPS, DNS, SMTP, WebSocket。数据叫报文

    • 传输层:TCP, UDP。数据叫。作用:端到端连接。

    • 网络层:IP, ICMP, ARP。数据叫。作用:路由和寻址。

    • 链路层:以太网, WiFi。数据叫。作用:相邻节点传输。

    • 物理层:比特流。

  • 2. TCP 核心重点

    • 三次握手:SYN -> SYN+ACK -> ACK(防止已失效的连接请求突然传送到服务器)。

    • 四次挥手:FIN -> ACK -> FIN -> ACK(为什么多一次:服务器可能还有数据没发完)。

    • 可靠传输:序列号、确认应答、超时重传、校验和。

    • 流量控制:滑动窗口(告诉对方自己还能收多少)。

    • 拥塞控制:慢启动、拥塞避免、快重传、快恢复。

  • 3. UDP 特点

    • 无连接、不可靠、但速度快(常用于直播、DNS、游戏)。

  • 4. HTTP 重点

    • HTTP/1.0 vs 1.1(长连接、管道化) vs HTTP/2(多路复用、头部压缩、服务器推送) vs HTTP/3(基于UDP的QUIC)。

    • 常见状态码:200 OK, 301 Moved Permanently, 302 Found, 401 Unauthorized, 403 Forbidden, 404 Not Found, 500 Internal Server Error, 502 Bad Gateway。

    • Session vs Cookie vs Token (JWT)。

  • 5. 网络安全

    • HTTPS = HTTP + SSL/TLS(非对称加密交换密钥,对称加密传输数据)。

    • DNS劫持、ARP欺骗、DDoS攻击。

2.6 数据结构与算法 

核心问题:怎么组织数据?怎么高效解决问题?

  • 1. 线性结构

    • 数组:连续内存,随机访问快,增删慢。

    • 链表:非连续内存,增删快,查找慢(单链表、双向、循环)。

    • 栈:LIFO(函数调用、括号匹配、撤销)。

    • 队列:FIFO(任务队列、BFS)。

  • 2. 树形结构

    • 二叉树、二叉搜索树、平衡树(AVL、红黑树:HashMap底层、epoll底层)。

    • 堆(大顶堆、小顶堆):优先队列、Top K问题。

    • Trie树:自动补全、词频统计。

  • 3. 图

    • 邻接矩阵 vs 邻接表。

    • 遍历:深度优先搜索 (DFS)、广度优先搜索 (BFS)。

    • 最短路径:Dijkstra(非负权)、Bellman-Ford(可负权)。

  • 4. 常用算法思想

    • 递归(终止条件 + 递推公式)、回溯(八皇后、数独)。

    • 分治(归并排序、快速排序)。

    • 动态规划 (DP):最优子结构、重叠子问题(背包、最长递增子序列)。

    • 贪心(局部最优解,如哈夫曼编码、Dijkstra)。

  • 5. 排序与查找

    • O(n²):冒泡、选择、插入(小数据稳定)。

    • O(n log n):快速(最差n²)、归并(稳定)、堆排序。

    • O(n):桶排序、计数排序、基数排序。

    • 查找:二分查找(有序数组)。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐