进程上下文与中断上下文

上下文 上下文指一种环境。相对进程而言,就是进程执行时的环境,具体包括各种变量和数据:所有寄存器变量、进程打开的文件、内存信息等。 一、为什么会有上下文这个概念 内核空间和用户空间是现代操作系统的两种工作模式,内核模块运行在内核空间,用户态应用程序运行在用户空间。它们代表不同的级别,对系统资源具有不同的访问权限。内核模块运行在最高级别(内核态),此级别下的所有操作都受系统信任;而应用程序运行在较低级别(用户态),处理器会控制对硬件的直接访问及对内存的非授权访问。内核态和用户态各自拥有自己的内存映射,即自己的地址空间。 ...

July 6, 2026 · 5 min · 2198 words

Linux 中断机制详解:从硬件触发到软件调度

中断赋予了 CPU 随时暂停当前执行流、去处理紧急事件的能力。没有中断机制,就无法实现“抢占式并发”,只能靠代码主动让出或轮询来切换任务,无法强制剥夺 CPU;有了中断,系统就能强制抢占,完全不用依赖代码自觉。另外,中断也让 CPU 核与核之间、CPU 与 IO 设备之间的交流变得更加主动、及时。 ...

July 5, 2026 · 7 min · 3143 words

心中的内核

心中的内核 —— 在阅读内核代码之前先理解内核 原文:The Kernel in the Mind [TOC] 介绍 这并非一部教你编写内核代码的指南,而是一场探寻Linux内核设计思维的思想之旅。 在系统编程的世界里,人们常常迷失于符号定义、头文件结构与实现细节的丛林中。然而剥离代码表象,内核实则是一个井然有序的响应式系统——它受上下文环境所规约,以分离原则为基石,从内存管理到任务调度的每一处设计,都浸透着精准的设计意图。 ...

June 27, 2026 · 98 min · 48697 words

IO设备

计算机与物理世界交互的方式,通过各种io设备,能够使用计算机做任何事 就像人操作各种机器一样,机器提供各种开关和按钮,仪表和指示灯,进料口和出料口。计算机中的io设备将这些物理操作抽象成了寄存器和地址,通过访问或设置不同的寄存器和地址实现和io设备的交互 ...

June 11, 2026 · 2 min · 566 words

tty模块

tty 所有终端设备的泛称 pty 伪终端 pts 伪终端从属 terminal 终端模拟器 terminal,一个输入输出设备, 在现代os中已经抽象成了控制终端**(controlling terminal), 可以由伪终端,虚拟控制台,串口终端,usb串口担任控制终端**. 它可以 ...

June 11, 2026 · 4 min · 1600 words

关于操作系统的理解

计算机中的硬件, 软件,操作系统都是可以看作一个状态机 先讲os, os的模型简单说就是一个管理多个软件(状态机)的一个状态机. os的每个状态就是当前时间下的所有其他进程的状态, 在单核处理器下, 每次os的状态转移时会随机选择一个程序运行下一步,这就是调度. os的状态机中除了进程外,还有为了进程通信的缓冲区. ...

June 11, 2026 · 2 min · 573 words

内核存储栈

June 11, 2026 · 0 min · 0 words

内核结构图

June 11, 2026 · 0 min · 0 words

进程与通信

不同的进程在各自的房间内运行, 每个房间有自己的编号pid, 进程之间互不干涉, 房间内有许多种与外界通信的方式, 他们有各自的用途和特性, 分布在墙壁上; 房间内还分成多个区域, 分别是: 代码区(.text), 已初始化的全局/静态数据区(.data), 未初始化的全局/静态数据区(.bss), 堆, 栈, 内存映射区, 环境变量与命令行参数区, 内核空间 ...

June 11, 2026 · 5 min · 2039 words

file descriptor

理解Linux的file descriptor(文件描述符) ​ 我们知道在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。在操作这些所谓的文件的时候,我们每操作一次就找一次名字,这会耗费大量的时间和效率。所以Linux中规定每一个文件对应一个索引,这样要操作文件的时候,我们直接找到索引就可以对其进行操作了。 ...

January 20, 2025 · 6 min · 2692 words