01 - AI 时代的操作系统课 [2025 南京大学操作系统原理]
01 - AI 时代的操作系统课 [2025 南京大学操作系统原理]
[00:00:00]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
大家好!我是姜艳艳,来自南京大学计算机软件研究所。今天我们开启《操作系统原理》的第一课,我希望以一种亲切的方式,带大家走进操作系统的世界。这门课不仅是一门技术课程,更是一门关于编程、探索和创造的旅程。就像我常说的,“操作系统是来帮我们的,不是来折磨我们的!” 通过这门课,我希望大家能感受到编程的乐趣,学会如何用操作系统的力量实现自己的想法。
今天的第一课,我们将从操作系统的概述开始,聊聊它的历史、重要性,以及在 AI 时代我们为什么还要学习它。以下是我整理的内容,结合老师的原话,稍作通顺和补充,力求让大家能清晰地回顾和学习。
1. 为什么学操作系统?
[00:00:46]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[00:00:46]~[00:09:58]
什么是操作系统?
[00:00:46]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[00:00:46]~[00:02:15]
让我用最简单的话来定义操作系统:操作系统是一组软件,负责让程序运行变得更简单。它管理硬件资源,为软件提供服务,让你的电脑、手机能够同时运行多个程序,共享内存,与设备交互。比如,你的手机可以一边播放音乐,一边刷微博,这背后就是操作系统在默默支持。
但这定义听起来有点抽象,对吧?别急,我们会一步步揭开它的面纱。就像我上课时说的,“你们不需要死记硬定义,有疑问就问大语言模型,它会帮你把复杂的东西讲得简单!”
图示说明:操作系统是硬件和软件之间的桥梁,它管理硬件资源(如 CPU、内存),为软件提供服务(如文件操作、进程调度)。
为什么要学操作系统?
[00:02:15]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[00:02:15]~[00:09:58]
你们可能从小就用智能手机,操作系统对你们来说再熟悉不过。但为什么要在大学里花一学期来学它呢?我觉得有三个理由:
-
理解程序的本质:操作系统是程序的“管家”。通过学习它,你会明白程序能做什么、不能做什么,以及操作系统是如何帮你实现这些功能的。比如,你写了一个
cout << "Hello World";
,它为什么能显示在屏幕上?这背后是操作系统在起作用。 -
掌握编程的力量:这门课本质上是一门编程课!通过操作系统的学习,你会学会如何用代码实现真实世界中的功能。就像我说的,“学完这门课,你会发现,你能做出这个世界上任何东西!”
-
迎接 AI 时代:AI 正在改变一切。操作系统的设计也在适应这个新时代。通过这门课,你会学会如何结合 AI 工具(如大语言模型)来更高效地编程和解决问题。
例子:假设你想写一个程序,让它在按 Ctrl+C
时不退出。你可能会觉得这很难,但用大语言模型一问,它秒秒钟就能给你代码!这门课会教你如何提出正确的问题,借助 AI 实现自己的创意。
2. 操作系统的历史:从 1940 年代到 AI 时代
[00:09:58]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[00:09:58]~[01:16:47]
要理解操作系统,我们得看看它是怎么一步步走来的。操作系统的历史,就是计算机软硬件发展的历史。以下是几个关键阶段:
1940 年代:计算机的诞生
[00:57:23]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[00:57:23]~[01:00:00]
- 硬件:第一台电子计算机 ENIAC 使用真空管作为逻辑门,内存靠水银延迟线(想象一下,用机械波存数据!),输入输出靠打孔纸带。
- 软件:程序员直接用机器代码写程序,接线、戳纸带,没有操作系统。程序主要是算素数、导弹弹道等数值计算。
- 趣事:那时候程序员还要和真正的“bug”(卡在继电器里的虫子)战斗!debug 这个词就是这么来的。
图示说明:1940 年代的计算机没有操作系统,程序员直接操作硬件,效率低下。
1950-1960 年代:批处理与作业系统
[01:00:00]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[01:00:00]~[01:10:40]
- 硬件进步:逻辑门换成晶体管,内存用磁芯存储(二维网格,像今天的 DDR 雏形),IO 设备有了打印机、磁带。
- 软件变化:高级语言(如 Fortran)诞生,程序员用卡片写代码,每张卡片一行代码。
- 操作系统雏形:计算机太贵,只能排队使用。操作员手动管理程序,操作系统(当时叫“作业系统”)开始出现,帮操作员自动处理卡片和设备。
例子:一个 Fortran 卡片可能写着 Z1 = Y + W1
,程序员得在卡片上戳孔,80 列编码一行代码。想想多费劲!
图示说明:1950-60 年代的操作系统管理卡片程序和 IO 设备,解放操作员。
1960-1970 年代:分时系统与现代操作系统
[01:10:40]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[01:10:40]~[01:16:47]
- 硬件飞跃:集成电路、总线出现,内存更大,CPU 更快,IO 设备更丰富(像早期图形界面 Sketchpad)。
- 软件进步:高级语言(如 C、Basic)普及,程序更复杂,图形界面初现。
- 操作系统进化:分时系统(Multics、UNIX)诞生,允许多个程序同时运行,通过虚拟内存隔离进程,防止崩溃。
例子:UNIX 的管道机制(pipe)让程序可以组合。比如,我写一个数字电路模拟器,输出接给另一个程序显示七段数码管,这就是操作系统的协同能力!
图示说明:1960-70 年代的操作系统支持多程序运行和进程隔离,奠定现代操作系统基础。
AI 时代:算力即服务
[01:07:07]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[01:07:07]~[01:16:47]
今天,算力又变成了服务。像 DeepSeek 这样的大语言模型,运行在云端 GPU 集群上,我们通过 API 访问。操作系统不仅管理本地硬件,还要支持分布式系统和云服务。这让我想起 1950 年代的“排队用计算机”,只不过现在我们排队用的是云端算力!
3. 这门课怎么学?
[01:16:47]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[01:16:47]~[01:28:36]
既然这是一门编程课,我希望大家能带着好奇心和创造力来学。以下是我的建议,结合老师的原话:
忘掉 GPA,拥抱创造
[01:17:14]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[01:17:14]~[01:22:21]
我知道 GPA 对你们很重要,但在这门课里,我想说:“忘掉 GPA,真正去做东西!” 当你专注于创造,GPA 自然不会差。我的考试不会考犄角旮旯的细节,而是看你是否理解大图景、是否是个好的开发者。
例子:考试可能问你如何用管道实现程序间通信。如果你写过 mini lab,理解了管道的原理,这题就不难。
用 AI 做你的助手
[01:19:08]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[01:19:08]~[01:25:20]
AI 是你的超级工具!用大语言模型帮你理解概念、写脚本、调 bug。比如,你不记得 pipe
函数怎么用,问 AI 就行,它会告诉你读口是 fd[0]
,写口是 fd[1]
,还提醒你处理错误。
注意:mini lab 里,AI 只能用于单个 API 的生成,不能直接把整个实验要求丢给 AI 做。这叫 academic integrity,靠你的好奇心和自律去学习!
图示说明:用 AI 辅助学习,提出具体问题,理解并应用答案。
多写代码,享受调试
[01:20:10]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[01:20:10]~[01:22:21]
编程是门手艺,调试是乐趣!每写完一段代码,问问 AI:“这段代码写得好吗?命名规范吗?” 慢慢地,你会养成专业开发者的习惯。
例子:你写了个函数,AI 可能提醒你加错误处理,像 if (pipe(fd) == -1) { perror("pipe"); exit(1); }
。这在真实系统设计中很重要。
探索有趣的工具
[01:31:01]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[01:31:01]~[01:37:05]
操作系统里有无数好玩的工具,比如 Toybox 里的 cat
、false
。读读它们的代码,问 AI 为什么没有 main
函数还能运行。你会发现,操作系统是个宝藏,等着你挖掘!
4. 课程设计与期待
[01:28:36]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[01:28:36]~[01:37:47]
课程安排
[01:22:55]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[01:22:55]~[01:28:36]
- 实验(40%):全是 mini lab,数量多但简单,部分由 AI 设计。实验框架带 unit test,帮你快速验证代码。
- 期中测验(10%):很轻松,签到就行。
- 期末考试(50%):注重理解,不考偏题。
我的期待
[01:37:05]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
[01:37:05]~[01:37:47]
我希望这门课能点燃你的好奇心,让你感受到“别人能做到的,我也行!” 不管是写个小工具,还是实现复杂系统,操作系统会给你无限可能。就像我说的,“从现在开始写代码,你就会拥有这个世界!”
补充:如果有问题,随时邮件我,我保证 100% 回复!课后也可以在 QQ 群讨论,或者告诉我你们喜欢的 office hour 时间。
总结
[01:37:05]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4]
今天我们从操作系统的定义讲到它的历史,从 1940 年代的 ENIAC 到 AI 时代的云算力,操作系统一直在进化,帮助我们更高效地编程和创造。这门课不仅教你技术,更教你如何用好奇心和 AI 工具,变成一个有创造力的开发者。
最后,用我上课的话结束:“你们需要的是好奇心。忘掉 GPA,写代码,拥有这个世界!” 下节课我们会深入探讨操作系统的核心机制,敬请期待!
参考资料:
- 课程主页(邮件群发通知)
- Bilibili 视频:01 - AI 时代的操作系统课
- Toybox 项目代码(推荐探索)
希望这篇博客能帮你回顾今天的内容,激发你的学习热情!如果有任何疑问,欢迎随时联系我!
相关文章:
01 - AI 时代的操作系统课 [2025 南京大学操作系统原理]
01 - AI 时代的操作系统课 [2025 南京大学操作系统原理] [00:00:00]-[D:\movie\南京大学操作系统\01-AI时代的操作系统课[2025南京大学操作系统原理].mp4] 大家好!我是姜艳艳,来自南京大学计算机软件研究所。今天我们开启《操作系统原理》的第一课&…...
数组1 day7
六:数组 一:数据类型 1.int a[10] //想要知道一个标识符对应的数据类型,去掉标识符,剩下就是它对应的数据类型 //eg:a所谓代表的类型,就是int[10]这种类型(是一个数组,包含10个…...

SAP学习笔记 - 开发15 - 前端Fiori开发 Boostrap,Controls,MVC(Model,View,Controller),Modules
上一章讲了Fiori开发的准备,以及宇宙至简之HelloWorld。 SAP学习笔记 - 开发14 - 前端Fiori开发 HelloWorld-CSDN博客 本章继续学习 Fiori 开发的知识: Bootstrap,Controls,MVC(Model,View,Controller&a…...
Redis中的过期策略与内存淘汰策略
因为Redis是纯内存操作,所以在Redis中创建的键一般都会带有过期时间,以此来保证内存中存储数据的时效性。这篇文章我们就来讲解一下Redis中的过期策略与内存淘汰策略。 如何设置Redis中键的过期时间? Redis提供了4个命令来设置键的过期时间&…...

基于SDN环境下的DDoS异常攻击的检测与缓解
参考以下两篇博客,最后成功: 基于SDN的DDoS攻击检测和防御方法_基于sdn的ddos攻击检测与防御-CSDN博客 利用mininet模拟SDN架构并进行DDoS攻击与防御模拟(Ryumininetsflowpostman)_mininet模拟dos攻击-CSDN博客 需求 H2 模拟f…...
HarmonyOS 实战:给笔记应用加防截图水印
最近在做笔记类应用时,遇到一个头疼的需求:防止用户内容被非法截图传播。思来想去,加水印是个直接有效的方案。研究了 HarmonyOS 的开发文档后,发现用 Canvas 配合布局组件能轻松实现动态水印效果。今天就来聊聊如何给笔记页面加上…...

如何轻松地将文件从 PC 传输到 iPhone?
传统上,您可以使用 iTunes 将文件从 PC 传输到 iPhone,但现在,使用 iTunes 已不再是唯一的选择。现在有多种不同且有效的方法可以帮助您传输文件。在今天的指南中,您可以找到 8 种使用或不使用 iTunes 传输文件的方法,…...
前端面试二之运算符与表达式
目录 1.JavaScript 中的 和 运算符 2.|| (逻辑或) 运算符 与 ES6 默认参数的区别 与 ?? (空值合并运算符) 的区别 3.?.(可选链)运算符 (1). 安全访问深层嵌套属性 (2). 安全调用可能不存在的函数 (3). 安全访问数组元素 4.展开运算符 (..…...
【运维实战】使用Nvm配置多Node.js环境!
背景 新项目 使用Node.js-v16.17.1旧项目 使用Node.js- v14.18.0 【且依赖于node-saas模块,根据 node-sass 的官方文档,目前最新版本的 node-sass(即 v5.0.0)支持的 Node.js 版本范围是 Node.js 10.x、Node.js 12.x、Node.js 14.…...

Bresenham算法
一 Bresenham 绘直线 使用 Bresenham 算法,可以在显示器上绘制一直线段。该算法主要思想如下: 1 给出直线段上两个端点 ,根据端点求出直线在X,Y方向上变化速率 ; 2 当 时,X 方向上变化速率快于 Y 方向上变化速率&am…...

【从GEO数据库批量下载数据】
从GEO数据库批量下载数据 1:进入GEO DataSets拿到所需要下载的数据的srr.list,上传到linux, 就可以使用prefetch这个函数来下载 2:操作步骤如下: conda 安装sra-tools conda create -n sra-env -c bioconda -c co…...

day 44
使用DenseNet预训练模型对cifar10数据集进行训练 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms, models from torch.utils.data import DataLoader import matplotlib.pyplot as plt import os# 设置中文字体…...
鸿蒙OSUniApp开发跨平台AR扫描识别应用:HarmonyOS实践指南#三方框架 #Uniapp
UniApp开发跨平台AR扫描识别应用:HarmonyOS实践指南 前言 随着增强现实(AR)技术在移动应用中的广泛应用,越来越多的开发者需要在跨平台应用中实现AR功能。本文将深入探讨如何使用UniApp框架开发一个高性能的AR扫描识别应用&…...

NER实践总结,记录一下自己实践遇到的各种问题。
更。 没卡,跑个模型休息好几天,又闲又急。 一开始直接套用了别人的代码进行实体识别,结果很差,原因是他的词表没有我需要的东西,我是用的医学文本。代码直接在github找了改的,用的是BERT的Chinese版本。 然…...

微信小程序实现运动能耗计算
微信小程序实现运动能耗计算 近我做了一个挺有意思的微信小程序,能够实现运动能耗的计算。只需要输入性别、年龄、体重、运动时长和运动类型这些信息,就能算出对应的消耗热量。 具体来说,在小程序里,性别不同,身体基…...

iTunes 无法备份 iPhone:10 种解决方法
Apple 设备是移动设备市场上最先进的产品之一,但有些人遇到过 iTunes 因出现错误而无法备份 iPhone 的情况。iTunes 拒绝备份 iPhone 时,可能会令人非常沮丧。不过,幸运的是,我们有 10 种有效的方法可以解决这个问题。您可以按照以…...
施耐德特价型号伺服电机VIA0703D31A1022、常见故障
⚙️ 一、启动类故障 电机无法启动 可能原因:电源未接通、制动器未释放、接线错误或控制器故障。解决措施: 检查电源线路及断路器状态;验证制动器是否打开(带制动器型号);核对电机与控制器…...

LangChain4J 使用实践
这里写目录标题 大模型应用场景:创建一个测试示例AIService聊天记忆实现简单实现聊天记录记忆MessageWindowChatMemory实现聊天记忆 隔离聊天记忆聊天记忆持久化 添加AI提示词 大模型应用场景: 创建一个测试示例 导入依赖 <dependency><groupI…...
慢SQL调优(二):大表查询
最近在工作中写SQL出现几次慢SQL的BUG,总结下来归根到底就是因为大表的原因~这表有多大呢,执行 select COUNT(1) FROM position 是出不来结果滴,每天保底新增1000条数据,可想而知有多大了,所以多次踩坑了这张表。所以…...

【C++】—— 从零开始封装 Map 与 Set:实现与优化
人生的态度是,抱最大的希望,尽最大的努力,做最坏的打算。 —— 柏拉图 《理想国》 目录 1、理论基石——深度剖析 BSTree、AVLTree 与 RBTree 的概念区别 2、迭代器机制——RBTree 迭代器的架构与工程实现 3、高级容器设计——Map 与 Set…...

内网穿透之Linux版客户端安装(神卓互联)
选择Linux系统版本 获取安装包 :https://www.shenzhuohl.com/download.html 这里以Ubuntu 18.04为例,其它版本方法类似 登录Ubuntu操作系统: 打开Ubuntu系统终端,更新版本 apt-get update 安装运行环境: 安装C 运…...

开疆智能Profinet转Profibus网关连接CMDF5-8ADe分布式IO配置案例
本案例是客户通过开疆智能研发的Profinet转Profibus网关将PLC的Profinet协议数据转换成IO使用的Profibus协议,操作步骤如下。 配置过程: Profinet一侧设置 1. 打开西门子组态软件进行组态,导入网关在Profinet一侧的GSD文件。 2. 新建项目并…...

华为云Flexus+DeepSeek征文|Flexus云服务器单机部署+CCE容器高可用部署快速搭建生产级的生成式AI应用
前引: 在AI技术高速演进的浪潮中,如何快速、高效、安全地搭建一个大模型应用平台,成为开发者和企业关注的焦点。近日,华为云推出的Flexus云服务器配合CCE容器引擎和Dify LLM应用开发平台,带来了极具吸引力的解决方案。…...
扫地机产品--材质传感器算法开发与虚拟示波器
扫地机产品–材质传感器算法开发与虚拟示波器 文章目录 扫地机产品--材质传感器算法开发与虚拟示波器**一、材质传感器的工作原理**二、核心功能与应用场景三、技术参数与产品示例四.MCU 与压电陶瓷超声波的材质检测技术方案实现原理分析4.1 超声波原理4.2表面类型检测4.3 超声…...
[蓝桥杯]上三角方阵
上三角方阵 题目描述 方阵的主对角线之上称为"上三角"。 请你设计一个用于填充 nn 阶方阵的上三角区域的程序。填充的规则是:使用 1,2,3.... 的自然数列,从左上角开始,按照顺时针方向螺旋填充。 例如&am…...

60天python训练计划----day44
DAY 44 预训练模型 知识点回顾: 预训练的概念常见的分类预训练模型图像预训练模型的发展史预训练的策略预训练代码实战:resnet18 一、预训练的概念 我们之前在训练中发现,准确率最开始随着epoch的增加而增加。随着循环的更新,参数…...

【JAVA版】意象CRM客户关系管理系统+uniapp全开源
一.介绍 CRM意象客户关系管理系统,是一个综合性的客户管理平台,旨在帮助企业高效地管理客户信息、商机、合同以及员工业绩。系统通过首页、系统管理、工作流程、审批中心、线索管理、客户管理、商机管理、合同管理、CRM系统、数据统计和系统配置等模块&…...

API异常信息如何实时发送到钉钉
#背景 对于一些重要的API,开发人员会非常关注API有没有报错,为了方便开发人员第一时间获取错误信息,我们可以使用插件来将API报错实时发送到钉钉群。 接下来我们就来实操如何实现 #准备工作 #创建钉钉群 如果已有钉钉群,可以跳…...

Python爬虫(48)基于Scrapy-Redis与深度强化学习的智能分布式爬虫架构设计与实践
目录 一、背景与行业痛点二、核心技术架构设计2.1 分布式爬虫基础架构2.2 深度强化学习模块 三、生产环境实践案例3.1 电商价格监控系统3.2 学术文献采集系统 四、高级优化技术4.1 联邦学习增强4.2 神经架构搜索(NAS) 五、总结🌈Python爬虫相…...
AtCoder Beginner Contest 407 E - Most Valuable Parentheses
AtCoder Beginner Contest 407 E - Most Valuable Parentheses E - Most Valuable Parentheses 反悔贪心算法 性质: 假设长度为 n n n, n ≡ 0 ( m o d 2 ) n \equiv 0 \pmod{2} n≡0(mod2) 的括号序列是合法的,那么有 n 2 \frac{n}{2}…...