Skip to content

2025春操作系统课程笔记

这组文章整理自 2025 年春季的操作系统课程笔记,按主题拆成了适合博客阅读的几篇文章,涵盖了进程、地址空间、终端、并发、链接与加载等内容。 实际上,这并不是刘华俊或者蔡朝晖老师的课程笔记,更多的来源于蒋岩炎老师的课程讲义,然后结合了自己的笔记。

上次更新于:

文章列表

7 篇

从 mmap 理解进程地址空间

- 通义千问=》Manus - 大语言模型是不固定的,它会出现幻觉 - 寄存器:可直接打印 - 内存:字节数组。==内存的绝大部分空间都不可访问== - 写一段c代码,把main赋值给一个指针

并发控制为什么离不开互斥

- 人类具备 A→…→BA→…→B 简化为 A→BA→B 的直觉本能 - 人类可以把物理世界的状态机上化简抽象,只要有类似的经历就可以理解。 - 并且据此开发了编译器 (处理器也是编译器)

把操作系统对象当成文件来访问

- 进程 = 状态机 - 进程管理 API: fork, execve, exit - 我们可以把 “连续的内存段” 看作一个对象 - 可以在进程间共享 - 也可以映射文件 - 内存管

操作系统到底在管理什么

- 时分复用:多个用户轮流使用同一个资源 - 空分复用:多个用户同时使用一个资源的一部分 - 手工操作 - 人机矛盾大:输入输出时间长 - 批处理:一次处理一批 - 联机批处理 - 脱机批处理:

程序是怎样被链接和加载的

- 尝试调试glibc - 太复杂了 1. musl-libc ✅ 代码简洁规范,模块化设计 ✅ 支持动态/静态链接,调试符号完整

终端、TTY 与 Unix Shell

- 打字机 - 为降低打字速度而设计“qwerty”键盘,防止卡键。 - Shift是使字锤向上移动一段距离,切换字符集(*机械结构,上下两个打印头*) - `\r\n`和`\n`来源也是打字机

设备、文件描述符与驱动程序

- 文件描述符 - 指向操作系统对象的 “指针” - Everything is a file - 通过指针可以访问 “一切” - 对象的访问都需要指针 - open,