ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

操作系统|零基础术语大全【庖丁解牛版】

2026/10/7 2:43:46 拓冰建站 浏览量
操作系统|零基础术语大全【庖丁解牛版】 定位单独把操作系统OS抽出来解剖不再混CPU硬件、网络应用层。核心比喻操作系统就是计算机硬件的大管家。硬件是厂房设备OS管家负责分配CPU、内存、磁盘管理所有工人进程接待程序的请求隔离底层硬件给上层软件提供统一服务。一句话总纲操作系统两大核心目标1. 管理硬件资源2. 向上给应用程序提供API接口。一、操作系统整体骨架1. 内核 Kernel操作系统最核心程序开机后常驻内存拥有最高权限。职责CPU调度、内存管理、文件系统、IO管理、网络协议栈。用户态 User Mode普通应用程序运行空间权限低不能直接操作硬件。想操作硬件必须向内核发起系统调用。内核态 Kernel Mode内核代码运行空间拥有全部硬件访问权限。用户态 ↔ 内核态切换 上下文切换有性能开销频繁切换会拖慢程序。2. 系统调用 System Call应用程序请求内核干活的“接口”。例程序要读文件、创建进程、收发网络包不能直接操作磁盘网卡必须调用系统调用进入内核完成操作。通俗理解应用是客户内核是管家系统调用就是客户呼叫管家办事。3. Shell内核是底层人没法直接和内核对话。Shell是命令解释器接收人输入命令转成系统调用交给内核。Linux常见bash、zshWindows cmd/powershell。区分Shell ≠ 内核只是内核外面的交互壳子。4. 发行版LinuxLinux内核只是核心加上Shell、工具、库打包成完整操作系统叫发行版。CentOS、Ubuntu、Debian。二、进程与线程OS最重要模块后端必懂5. 进程 Process程序运行实例。磁盘上的.exe/.php文件是静态程序加载进内存、分配资源就变成进程。进程是资源分配的最小单位每个进程拥有独立虚拟内存、文件描述符、PID。PID进程唯一ID内核用来标识进程。进程之间内存隔离A进程不能随意读写B进程内存。6. 线程 Thread进程内部的执行流是CPU调度最小单位。一个进程至少有1条主线程可以新建多条子线程。特点同一个进程里所有线程共享进程的内存、文件句柄线程切换开销远小于进程切换。比喻进程一间办公室线程办公室里的打工人办公室资源大家共享每个人独立干活。7. 进程状态Linux进程常见5种状态运行态R正在CPU上执行就绪态S准备好了只等CPU时间片阻塞态睡眠等待IO、等待锁不占用CPU。比如读磁盘、等网络数据停止态T收到暂停信号被挂起僵尸态Z进程代码执行结束但父进程没有回收它PCB保留。僵尸进程子进程死掉父不收尸占用少量内核资源。8. PCB进程控制块 Process Control Block内核保存进程全部信息的数据结构。进程存在PCB就存在。记录PID、内存地址、打开文件、寄存器现场、优先级等。PCB就是内核给每个工人建的档案。9. 时间片 Time SliceCPU给每个就绪进程分配一小段执行时间。时间片用完OS暂停当前进程切换下一个实现并发。10. 并发 Concurrency单核CPU快速交替执行多个任务宏观上看起来同时运行。微观同一时刻只有一个任务跑。11. 并行 Parallelism多核CPU多个任务在不同核心真正同时执行。12. 上下文切换 Context SwitchOS暂停当前线程/进程保存寄存器、程序现场加载另一个任务的现场。进程上下文切换开销很大需要切换虚拟内存页表线程上下文切换开销更小同进程不用换页表高服务器性能瓶颈来源之一大量上下文切换CPU浪费在保存现场而不是业务计算。13. 调度器 Scheduler内核模块负责选下一个任务上CPU运行。调度算法决定优先跑哪个进程。Linux调度CFS完全公平调度。14. 信号 Signal内核发给进程的异步通知。类似短信进程收到信号中断当前工作处理事件。常用Linux信号SIGINT CtrlC终止SIGTERM 正常终止kill默认SIGKILL 强制杀死不能捕获不能忽略15. 孤儿进程 / 僵尸进程孤儿进程父进程提前退出子进程被系统init进程收养。一般无害。僵尸进程子进程退出父进程没有调用wait回收PCB进程尸体残留。大量僵尸会占内核资源。三、内存管理操作系统核心模块16. 物理内存真实内存条硬件就是RAM。17. 虚拟内存 Virtual Memory操作系统给每个进程单独编造一套独立地址空间。每个进程以为自己独占全部内存。核心价值进程之间地址隔离互相不干扰内存不够时可以把冷数据挪到磁盘Swap内存地址统一抽象程序不用关心真实物理内存位置18. 页 PageOS管理内存的最小单位Linux默认4KB一页。虚拟内存、物理内存都按页划分。19. 页表 Page Table内核维护的映射表虚拟页号 → 物理页框。进程访问虚拟地址MMU硬件查页表翻译成物理地址。20. MMU 内存管理单元CPU硬件模块专门做虚拟地址转物理地址。21. 缺页中断 Page Fault进程访问虚拟内存发现这一页不在物理内存。触发中断内核从磁盘把数据加载进内存。缺页会触发磁盘IO速度很慢程序卡顿常见原因。22. Swap 交换分区磁盘划出一块空间作为内存后备。物理内存紧张时内核把很久不用的内存页写入Swap腾出物理内存。坑Swap是磁盘速度比内存慢几百倍服务器一旦大量使用Swap性能雪崩。23. OOM KillerLinux内存耗尽时触发。内核挑选占用内存大的进程直接杀死保护系统不崩溃。四、文件系统 IO输入输出24. IO Input/Output程序读写外部设备磁盘、网卡、键盘。CPU运算极快IO是慢操作绝大多数等待都来自IO。25. 文件描述符 fd File DescriptorLinux内核进程打开文件、socket连接内核返回一个数字编号就是fd。进程靠fd操作文件/网络。Linux一切皆文件普通文件、目录、管道、Socket都当做文件都用fd管理。26. 文件系统 FileSystem管理磁盘数据的一套规则。裸磁盘不能直接存文件格式化就是写入文件系统。Linux常用ext4、XFS。Windows NTFS。27. InodeLinux文件系统核心元数据。每个文件对应一个inode。记录文件大小、权限、磁盘块位置、修改时间。inode不存文件名文件名放在目录项里。删除文件本质删除目录项inode引用计数归零才释放磁盘空间。28. 块 Block磁盘IO最小读写单位文件系统层面一般4K。磁盘硬件最小单元叫扇区512字节。29. 缓冲区 Buffer / 缓存 CacheBuffer缓冲写数据时先放到buffer攒一批再刷磁盘减少IO次数Cache缓存把磁盘读过的数据放到内存下次读直接拿内存减少读盘30. 阻塞IO Block IO发起IO调用线程卡住原地等待IO完成函数才返回。PHP-FPM、传统同步程序都是阻塞IO。31. 非阻塞IO Non-blocking IO发起IO立刻返回不卡住线程不管IO是否完成。程序需要循环轮询检查结果消耗CPU。32. IO多路复用 IO Multiplexing单个线程监听多个fd文件/网络连接任何一个fd就绪就去处理。Linux三种实现select、poll、epoll。Nginx、Swoole底层epoll。33. 事件循环 EventLoop基于IO多路复用的循环不断监听事件事件就绪就执行回调。单线程处理大量IO连接。五、进程间通信 IPC多个进程怎么交换数据34. IPC 进程间通信 Inter-Process Communication进程内存隔离不能直接读写需要内核提供的通信方式。常用IPC管道 pipe父子进程单向数据流命名管道 FIFO无关进程也可以用管道通信共享内存 Shared Memory直接一块内存映射到多个进程最快IPC需要锁保护消息队列 Message Queue内核维护消息缓冲区信号量 Semaphore用来做同步互斥Socket本地Unix Socket跨网络TCP Socket35. 临界区 Critical Section多线程同时访问共享资源的代码片段。同一时间只能一个线程进入。36. 互斥锁 Mutex保护临界区。线程进入临界区拿锁执行完释放拿不到锁就阻塞等待防止并发修改造成数据错乱。37. 信号量 Semaphore比Mutex更通用。Mutex是信号量取值只能0/1信号量可以设置N允许最多N个线程同时进入。38. 条件变量 Condition线程等待某个条件满足后唤醒配合锁使用。39. 原子操作 Atomic不可拆分指令执行中途不会被CPU调度打断不需要锁。40. 死锁 Deadlock多个进程/线程互相持有对方需要的锁循环等待谁都无法继续执行。六、中断、硬件交互41. 中断 Interrupt硬件主动通知内核。磁盘读完、网卡收到数据包硬件发送中断打断CPU当前任务内核处理硬件事件。轮询CPU不停主动询问设备中断设备主动喊CPU节省CPU。42. 中断处理程序收到中断后内核运行的处理函数。中断上下文优先级极高不能执行耗时操作。七、庖丁总骨架总结操作系统完整链路开机加载内核常驻内存 → 内核初始化CPU调度、虚拟内存、文件系统程序启动内核创建进程分配PCB、虚拟内存进程创建线程交给CPU调度进程要读写文件/网络调用系统调用进入内核操作fd执行IO多进程之间通信靠IPC多线程共享内存用锁保护临界区内存不足时内核触发缺页、使用Swap内存彻底耗尽触发OOM杀进程硬件事件通过中断通知内核。OS的本质抽象硬件隔离复杂底层调度资源管控所有进程给上层应用提供统一API。