从零开始:计算机基础
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 - SYNACK - 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)桶排序、计数排序、基数排序。查找二分查找有序数组。