CuteNote
颜值笔记
价格
反馈
中 / EN
登录
中 / EN
登录
← 返回
生成耗时 20秒
耗时
查看原链接
原链接
导出脑图
导出
Bilibili
1小时27分56秒 · —
应用视角的操作系统 · 课堂笔记
长图
脑图
Markdown
原文
AI 问答
应用视角的操作系统
核心结论
从应用程序视角看,操作系统是一组
系统调用API,程序通过系统调用
与操作系统交互,一切程序本质相同
。
课程引言
为什么学操作系统
人工智能时代仍需理解操作系统
操作系统让程序共享资源、交互设
备
应用视角的定义
操作系统是一组API
了解API可指挥AI调用
程序的概念
C语言的选择
接近硬件,可写应用程序
C是高级汇编语言
程序可改写为简单形式
每行只做一件小事的简单C
可用编译器工具转换
状态机模型
程序计数器PC、寄存器、内存
执行一条语句即状态迁移
函数调用与递归
函数调用的状态变化
创建新栈帧,PC指向入口
旧的PC保留在栈中
汉诺塔例子
递归版本直观但难改非递归
非递归需模拟调用栈
AI解决非递归
GPT-3.5可写非递归汉诺塔
GPT-4不能处理互相调用
推理模型首次做对互调案例
C程序的状态机
状态定义
栈帧包含局部变量、参数、PC
全局变量和内存也是状态
执行规则
从栈顶帧取PC执行
函数调用压栈新帧
返回弹栈恢复PC
编译器与优化
编译器的作用
把C翻译成汇编和机器码
包括汇编器和链接器
优化原理
可消除死代码、常量折叠
优化需保持输入输出一致
不可优化项
外部函数调用(如printf)
不可删
编译器需保留对外部的一切影响
最小程序与系统调用
最小hello world
用汇编直接写系统调用
只需write和exit两个系
统调用
系统调用指令
x86-64使用syscall
ARM使用svc
参数传递
系统调用号放在特定寄存器
参数按顺序放入寄存器
系统调用作为API
操作系统是API
系统调用是唯一接口
所有程序通过系统调用与服务
比喻
手术麻醉:签契约后交控制权
上帝祈祷:祈祷后事情实现
系统调用的影响
可改变进程状态或结束进程
只有系统调用能影响外部
系统生态与工具
核心工具
binutils:ld、obj
dump等
命令行工具:cp、mv、gre
p
守护进程
蓝牙管理、定时任务、U盘挂载
后台提供系统服务
图形界面
X11/Wayland提供显示
服务
窗口管理器协调应用程序
分析工具
strace跟踪系统调用序列
可分析gcc编译过程
首页
登录
我的