南京大学 操作系统 (JYY) 学习笔记:导论与历史的轮回 (OS Introduction)
写在前面这是一个全新的系列记录我学习南京大学蒋炎岩老师《操作系统》课程的硬核之旅。“把时间还给大家” —— 这门课不仅教底层原理更在教我们如何在 AI 时代成为一个掌握工具的 Power User。导言与课程概览课程主页https://jyywiki.cn/OS/2023/index.html教材Operating Systems…实验OS Lab助教时代变了如今我们的助教是 Kimi、GPT、DeepSeek、豆包等大语言模型。内核说明本课程今年不再开设操作系统内核的内容和实验。想要深入从事操作系统内核开发的同学强烈建议参考MIT xv6课程。Unit Test (单元测试)课程提供了强大的测试框架只需要 include 相应的头文件就可以对你的底层代码进行自动化测试。Why 为什么要学操作系统开学三板斧离不开时下最热的黑神话、哪吒当然还有 DeepSeek。在现在的互联网时代无论你是什么专业出身你几乎可以学到任何想学的东西通过视频媒体、通过开源代码、通过 AI 对话……既然如此为什么还要苦哈哈地学操作系统因为这是一个极其庞大且精密的工业结晶。计算机世界里随便一个操作系统都是几千万行的代码它们到底是怎么搭起来的这是一个极好的系统工程范例。AI 是一个好工具。在如今的时代你只需要一个梦想然后利用 AI 作为杠杆就能迅速追赶上那些读了本硕博十年书的所谓专家。What 什么是操作系统Operating Systems: A body of software, in fact, that is responsible for making it easy to run programs.(操作系统本质上是一组软件负责让程序的运行变得简单。)操作系统是来帮助我们的不是来折磨我们的。我们不需要死记硬背精准的概念定义它的存在是为了帮助我们更好、更安全地开发程序。整个计算机的发展史可以概括为硬件 (数字逻辑) - 软件 (本课程聚焦) - 操作系统。极速复习数字逻辑时钟是不可或缺的任何系统都需要时钟来驱动。导线。逻辑门。我们写的任何 C/C 代码最终都会变成一串指令序列编译成二进制的a.out文件然后交给底层的处理器数字电路去执行。狭义的操作系统操作系统就是硬件和软件之间的中间层。操作系统的历史轮回1940s 的计算机硬件混沌初开1946 年 2 月 14 日ENIAC 诞生它是图灵机的数字电路物理实现。逻辑门真空电子管。存储器延迟线delay lines。输入/输出打孔纸带 / 指示灯。在这个时代还没有操作系统甚至连编程语言都没有。程序员画完流程图直接写机器代码然后在纸带上戳孔。能把程序跑起来就是万幸了。1950s - 1960s 的计算机硬件算力成为服务硬件迎来了进化晶体管、磁芯内存以及丰富的 I/O 设备开始出现。但问题来了I/O 设备的速度严重低于处理器的速度这促生了中断机制的诞生。在这个年代一张打孔卡片有 80 行就是一行代码。早期的操作系统其实就是库函数 管理程序排队运行的调度代码。因为算力昂贵多用户需要轮流共享计算机当时甚至需要一个专门的职业叫 “Operator (操作员)” 来负责程序的切换。这就是 Operating Systems (操作系统/作业系统) 名字的由来。因为每个程序线程都想尽可能多地占用有限的内存操作系统不得不出面管理好每个线程。1960s - 1970s虚拟化与多任务的觉醒更快的处理器、更丰富的 I/O 设备。更高级的编程语言和编译器横空出世。在这个时代操作系统开始进行分时间片运行。系统能够同时载入多个程序进行复杂的调度和分片运行。同时虚拟内存的概念出现操作系统自然而然地增加了进程管理的 API。数字电路模拟器示例时钟、导线、NAND、寄存器是数字系统的基本组成部分。数字系统在时钟驱动下离散地更新下一周期的寄存器状态。下面这段程序模拟了数字电路的执行过程它也是nvboard的基本原理。这个例子还展示了 UNIX Philosophy 中命令行工具的协作原理C 程序logisim输出类似A0; B1; ...的数码管状态而另一个程序负责解析这些输出并真实地在终端里“画”出来。rootLAPTOP-GT06V0GS:/mnt/d/CSLab/osCourse/lec1/logisim# ./logisimA1;B1;C1;D1;E1;F1;G0;A0;B1;C1;D0;E0;F0;G0;A1;B1;C0;D1;E1;F0;G1;A1;B1;C1;D1;E1;F1;G0;...█████████ ██ ██ ██ ██ ██ ██ ██ ██ ░░░░░░░░ ██ ██ ██ ██ ██ ██ ██ ██ █████████ ░░░░░░░░░ ░░ ██ ░░ ██ ░░ ██ ░░ ██ ░░░░░░░░ ░░ ██ ░░ ██ ░░ ██ ░░ ██ ░░░░░░░░░RISC-V 处理器模拟器示例C 语言实现的 single-header RISC-V32IMA 系统模拟器 (源自mini-rv32ima)。因为有 M-Mode这个模拟器可以运行几乎“任意复杂”的程序——甚至是没有 MMU 的 Linux。底层代码其实非常简单只有几个状态和变量structCPUState{// Processor internal stateuint32_tregs[32],csrs[CSR_COUNT];// Memory stateuint8_t*mem;uint32_tmem_offset,mem_size;};rootLAPTOP-GT06V0GS:/mnt/d/CSLab/osCourse/lec1/mini-rv32ima# ./mini-rv32ima testcase.bin[mini-rv32ima]load image file: testcase.bin[mini-rv32ima]allocramsize0x4000000[mini-rv32ima]mainargs: initially: PC:00000000[03174291]... CYCLEL:00000000 CYCLEH:00000000 EXTRAFLAGS:00000000 stack(sp:04000000): 0x4000000...1970sUnix 的诞生Unix 的诞生彻底奠定了今天计算机世界的基础信号、管道、grep 等经典工具机制。BSD Socket 开启了网络时代。把算力变成了真正的 Product。How 怎样学操作系统忘掉 GPA试着去成为一个有梦想的 CS 人我们要知道“编码”是握在手中的利剑。在大语言模型LLM的帮助下我们要敢于自己动手解决问题什么都不怕vim、tmux、grep、binutils、甚至是前端。享受创造的乐趣。当出 Bug 时坚信机器永远是对的我肯定能调出来时刻反思我这么做显得专业吗合适吗是一个合格的开发者吗代码还能更好吗坚守学术诚信 (Academic Integrity) 与 AI 的正确用法Lab 实验不应该使用 AI 吗不日常学习中强烈鼓励使用大模型用来解释模糊的概念、复杂的命令行工具、生涩的 API 等。用来获取方法指导该用什么工具如何调试有什么技巧AI 可以提醒你进行错误处理C语言实验中往往容易忽略返回值检查导致严重后果。红线 (MiniLab 规则)禁止直接将一段实验作业的描述完整地复制输入给大语言模型让它代写但你可以利用大模型帮你阅读 API 文档给你一些简单的提示仅限单个 API 的用法。动手实操用 AI 辅助学习Prompt 示例《操作系统》需要解压缩toybox-0.1.0.tar.bz2但是我是刚选课的新手应该如何做AI 的回答往往非常标准且详尽要在《操作系统》课程中解压缩文件你可以打开终端在 Linux/macOS 中打开 Terminal。导航使用cd命令进入所在目录。解压运行tar -xvjf toybox-0.1.0.tar.bz2-x解压-v显示过程-j处理 bz2-f指定文件。查看当前目录会生成一个新的文件夹。实操演示如下rootLAPTOP-GT06V0GS:/mnt/d/CSLab/osCourse/lec1/tar# lsREADME.md toybox-0.1.0.tar.bz2 rootLAPTOP-GT06V0GS:/mnt/d/CSLab/osCourse/lec1/tar# cat README.md**toybox-0.1.0**这是早前版本的 toybox包含一些 “最小” 系统所需的工具。现在Android 内置了 toybox。当你打开手机的 “开发者模式” 后 通过 adb shell 连接到手机其中的命令行工具就是 toybox。 rootLAPTOP-GT06V0GS:/mnt/d/CSLab/osCourse/lec1/tar# tar -xjf toybox-0.1.0.tar.bz2rootLAPTOP-GT06V0GS:/mnt/d/CSLab/osCourse/lec1/tar# lsREADME.md toybox-0.1.0 toybox-0.1.0.tar.bz2 rootLAPTOP-GT06V0GS:/mnt/d/CSLab/osCourse/lec1/tar# cd toybox-0.1.0rootLAPTOP-GT06V0GS:/mnt/d/CSLab/osCourse/lec1/tar/toybox-0.1.0# lsConfig.in LICENSE Makefile configure generated kconfig lib main.c scripts toynet.h toys toys.h www成为 Power User这门课不只是教你操作系统是如何实现的更是要你聚焦于应用成为好工具的掌控者所以从现在开始写代码吧保持强烈的好奇心。记住命令行 浏览器就是全世界不需要死扣语言特性、设计模式只要在大量编程实践中这一切自然而然就会有深刻的体会。准备好正式开始你的《操作系统》硬核旅程

相关新闻

AI辅助论文写作:从选题到查重的智能解决方案

AI辅助论文写作:从选题到查重的智能解决方案

1. 毕业季论文写作痛点解析每到毕业季,各大高校图书馆和自习室总是挤满了焦头烂额的学生。论文写作这个"终极BOSS"让无数学子夜不能寐。根据我的观察,论文焦虑主要来自四个核心痛点:首先是选题迷茫。很多同学在导师给出研究方向后&…

2026/7/24 12:52:50阅读更多 →
04-观点分析-2026年下半年数字孪生行业五大预测深度解析

04-观点分析-2026年下半年数字孪生行业五大预测深度解析

2026年下半年数字孪生行业五大预测:AI原生化、边缘计算、标准化突破 引言 2026年上半年,数字孪生行业经历了技术革新和市场洗牌的双重变革。AI大模型的爆发式应用、边缘计算的成熟部署、行业标准的逐步建立,都在深刻重塑行业格局。本文基于上…

2026/7/24 12:50:49阅读更多 →
GEO优化适合哪些行业?广拓时代谈AI搜索流量新入口

GEO优化适合哪些行业?广拓时代谈AI搜索流量新入口

很多企业一听到GEO优化,第一反应是:这是大企业才需要做的东西吗?普通公司有没有必要跟进? 其实判断一个行业适不适合做GEO,不看企业规模,而看客户决策方式。只要你的客户在成交前会搜索、会比较、会问“哪家…

2026/7/24 12:50:49阅读更多 →
Agentic AI设计模式解析与实战应用

Agentic AI设计模式解析与实战应用

1. 什么是Agentic AI设计模式 在人工智能领域,Agentic AI(代理型人工智能)正逐渐成为技术演进的重要方向。这类系统与传统AI最大的区别在于其自主决策能力和目标导向特性。简单来说,Agentic AI不是被动响应指令,而是能…

2026/7/24 14:25:15阅读更多 →
从MVP到融资:用这套AI工具创业者套装,把产品上线周期压缩至72小时(含实测数据对比表)

从MVP到融资:用这套AI工具创业者套装,把产品上线周期压缩至72小时(含实测数据对比表)

更多请点击: https://intelliparadigm.com 第一章:从MVP到融资:AI工具创业者套装全景概览 构建一款成功的AI工具,远不止于写好一个模型。它是一条贯穿产品定义、最小可行验证、工程化落地、合规部署与资本对接的完整链路。本章呈…

2026/7/24 14:25:15阅读更多 →
Kaggle平台使用Unsloth高效微调Qwen3大模型实战

Kaggle平台使用Unsloth高效微调Qwen3大模型实战

1. 项目概述 在Kaggle平台上使用Unsloth工具对Qwen3大语言模型进行高效微调,这是一个极具实用价值的实战项目。Unsloth作为一款专为大模型优化的微调框架,能够显著提升训练速度并降低显存消耗,而Qwen3作为通义千问系列的最新版本,…

2026/7/24 14:25:15阅读更多 →
Unity后处理实战:用X-PostProcessing打造10种赛博朋克故障艺术特效

Unity后处理实战:用X-PostProcessing打造10种赛博朋克故障艺术特效

1. 项目概述:为什么赛博朋克故障艺术是后处理的绝佳舞台 如果你在Unity里做过一些风格化的项目,尤其是科幻、赛博朋克或者带有一些“数字朋克”味道的游戏,那你肯定对“故障艺术”不陌生。那种屏幕闪烁、图像撕裂、色彩通道错位、数字噪点乱窜…

2026/7/24 14:25:15阅读更多 →
AI工具不会选?ROI低于1.2的组合正在拖垮你的团队,这3套经天猫TOP10验证的配置必须立刻替换!

AI工具不会选?ROI低于1.2的组合正在拖垮你的团队,这3套经天猫TOP10验证的配置必须立刻替换!

更多请点击: https://codechina.net 第一章:AI电商运营工具组合的ROI陷阱与重构必要性 当企业将多个AI电商工具——如智能选品引擎、自动生成主图的视觉模型、实时竞价调价机器人、客服对话分析平台——打包采购并部署后,财务部门常收到一份…

2026/7/24 14:25:15阅读更多 →
MPS、MRP与APS:企业生产管理的三大核心系统

MPS、MRP与APS:企业生产管理的三大核心系统

1. 引言在现代制造业中,高效的生产计划和资源管理是企业保持竞争力的关键。MPS(主生产计划)、MRP(物料需求计划)和APS(高级计划与排程)作为企业资源计划(ERP)系统的核心组…

2026/7/24 14:21:15阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/24 0:58:53阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/24 0:58:53阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 0:58:53阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:06阅读更多 →
【LeetCode 54】螺旋矩阵

【LeetCode 54】螺旋矩阵

问题描述: 解法: 1、模拟(参考自【LeetCode 54】螺旋矩阵-CSDN博客) int *spiralOrder(int **matrix, int matrixSize, int *matrixColSize, int *returnSize) {static const int dirs[4][2] {{0, 1}, {1, 0}, {0, -1}, {-1, …

2026/7/24 0:00:06阅读更多 →
2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

2026 WAIC:模型隐身、智能体疯野,厂商竞赛聚焦办公场景与商业闭环

知春路不相信模型领先今年WAIC大会,昔日AI六小龙来了五家,分别是Kimi、阶跃星辰、Minimax、百川智能、零一万物。连放弃基模的百川和零一万物都来了,唯一缺席的竟是近几个月来风光无限的智谱。(DeepSeek一直不参加)WAI…

2026/7/24 0:00:06阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/23 22:58:43阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/23 18:58:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/23 18:58:18阅读更多 →