[2022新版]计算机基础,计算机组成原理+操作系统+网络

AI摘要
该内容为计算机基础知识分享,系统梳理了计算机组成原理、操作系统、计算机网络三大底层基础的核心知识点、对编程的意义及学习路线,属于技术学习类知识分享,适合开发者进阶与面试准备参考。

编程三大底层基础:计组 + 操作系统 + 计算机网络

作用:看懂程序底层怎么跑、性能瓶颈在哪、线上故障为什么发生;写业务代码可能暂时用不到,但进阶、面试、调优、架构必备

一、计算机组成原理(计组)

核心:CPU、内存、硬盘怎么协作,指令如何执行,理解硬件对代码的约束。

核心知识点

  1. 冯诺依曼体系:运算器、控制器、存储器、输入输出;程序和数据都存在内存。
  2. CPU
    • 寄存器:CPU 内部高速存储,速度最快(几十个)
    • 指令集:CPU 能识别的机器指令(x86 / ARM)
    • 流水线、多核、缓存(L1/L2/L3 Cache):缓存一致性,CPU 从缓存读数据远快于内存
  3. 存储器层次:寄存器 > Cache > 内存 (RAM) > 磁盘 > 网络;速度越慢,容量越大
  4. 内存:地址空间、寻址;程序看到的地址不是真实物理地址(交给 OS 做虚拟内存)
  5. IO:IO 设备速度远慢于 CPU;轮询、中断
  6. 数据表示:二进制、补码、浮点数;大小端

对编程的意义

  • 为什么数组连续访问比跳跃访问快(缓存局部性)
  • 理解原子操作、锁的底层硬件原理
  • 看懂内存溢出、CPU 高占用问题

二、操作系统(OS)

核心:管理硬件资源,给应用程序提供抽象接口;程序不能直接操作硬件,要通过 OS。

核心知识点

  1. 进程 & 线程
    • 进程:资源容器(独立虚拟内存空间);进程间隔离
    • 线程:进程内执行单元,共享进程内存;轻量
    • 协程:用户态,OS 不可见,由程序调度
  2. 调度:CPU 时间片;进程状态(就绪 / 运行 / 阻塞);调度算法
  3. 虚拟内存
    • 页表、缺页中断;程序拥有独立完整地址空间
    • 交换分区 swap;内存不足时把内存数据放到磁盘
  4. 内存管理:堆、栈
    • 栈:函数调用、局部变量;自动回收,容量小
    • 堆:手动申请释放(new/malloc),由程序员管理
  5. IO 模型(重点)
    • 阻塞 IO、非阻塞 IO、IO 多路复用(select/poll/epoll)、信号驱动、异步 IO
    • 网络编程、高并发服务基石
  6. 文件系统:文件描述符 fd;一切皆文件(Linux)
  7. 信号、管道、共享内存、消息队列:进程间通信 IPC
  8. 锁、信号量:内核态同步原语

对编程的意义

  • 理解并发安全、死锁;多线程为什么会有竞争
  • 高并发服务选型(BIO/NIO)
  • 排查 OOM、CPU 负载、文件句柄泄漏

三、计算机网络

核心:不同主机之间如何传输数据,服务端开发重中之重。

核心知识点

  1. OSI 七层 / TCP/IP 四层模型(推荐背 TCP/IP 四层)
    • 应用层:HTTP/HTTPS、DNS、FTP、RPC
    • 传输层:TCP、UDP(重点)
    • 网络层:IP、ICMP
    • 网络接口层:MAC、网卡
  2. TCP(可靠传输)
    • 三次握手建立连接,四次挥手断开连接
    • 滑动窗口、拥塞控制、流量控制、超时重传
    • 粘包问题
  3. UDP:无连接,不可靠;速度快,直播 / 游戏
  4. HTTP
    • HTTP1.1/2/3 区别;请求响应模型;Header、Cookie、Session
    • HTTPS = HTTP + TLS;对称加密、非对称加密、证书
  5. DNS:域名解析
  6. 网络基础概念
    • IP 地址、子网掩码、网关;端口号
    • ARP 协议
  7. 网络问题:丢包、延迟、RTT、带宽;TCP 半连接、TIME_WAIT

对编程的意义

  • 前后端接口调用、微服务 RPC 底层原理
  • 排查接口超时、连接失败、大量 TIME_WAIT
  • 理解限流、熔断、网关、负载均衡

三者之间的关联(非常重要)

  1. 计组:硬件底座(CPU / 内存 / 磁盘)
  2. 操作系统:封装硬件,提供进程、内存、IO 抽象,程序跑在 OS 之上
  3. 计算机网络:让多台计算机通过 OS 的 IO 能力互相通信

简单链路: 代码(进程)→ OS 系统调用 → 硬件(CPU / 内存 / 网卡)→ 网络传输 → 另一台机器 OS → 对方进程

学习路线建议(由浅入深)

  1. 先计算机网络:上手最快,写接口就能感受,面试高频
  2. 再操作系统:理解并发、内存、IO,后端核心难点
  3. 最后计组:底层原理,用来理解性能、硬件约束

面试高频一句话区分

  • 计组:硬件怎么工作
  • OS:操作系统如何管理硬件,给程序提供运行环境
  • 网络:多台主机怎么通信
本作品采用《CC 协议》,转载必须注明作者和本文链接
IT爱知识
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!