从零开始:计算机基础
HTTP/1.0 vs 1.1(长连接、管道化) vs HTTP/2(多路复用、头部压缩、服务器推送) vs HTTP/3(基于UDP的QUIC)。:计算机的“躯干”。计算机是一种能够按照程序运行,自动、高速地对各种数据进行存储、处理、输入和输出的电子设备。二叉树、二叉搜索树、平衡树(AVL、红黑树:HashMap底层、epoll底层)。FCFS(先来先服务)、SJF(短作业优先)、RR(时间片轮
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年提出的结构。它定义了计算机的五大核心逻辑部件:
-
输入设备: 接收外部指令和数据(如键盘)。
-
输出设备: 输出处理结果(如显示器)。
-
存储器: 存放数据和程序(内存)。
-
运算器: 执行算术运算和逻辑运算(在CPU内部)。
-
控制器: 自动读取并解释程序指令,向其他部件发出控制信号(也在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):桶排序、计数排序、基数排序。
-
查找:二分查找(有序数组)。
-
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)