返回
查看原链接原链接
Bilibili1小时27分56秒 · —

应用视角的操作系统 · 课堂笔记

应用视角的操作系统核心结论从应用程序视角看,操作系统是一组系统调用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使用syscallARM使用svc参数传递系统调用号放在特定寄存器参数按顺序放入寄存器系统调用作为API操作系统是API系统调用是唯一接口所有程序通过系统调用与服务比喻手术麻醉:签契约后交控制权上帝祈祷:祈祷后事情实现系统调用的影响可改变进程状态或结束进程只有系统调用能影响外部系统生态与工具核心工具binutils:ld、objdump等命令行工具:cp、mv、grep守护进程蓝牙管理、定时任务、U盘挂载后台提供系统服务图形界面X11/Wayland提供显示服务窗口管理器协调应用程序分析工具strace跟踪系统调用序列可分析gcc编译过程