前言
督促自己,同时分享所得,阅读完本篇大约需要10分钟,希望为朋友的技术精进之路尽到绵薄之力.码字不易,望能给个点赞和收藏,以激励笔者源源不断的创作.在此以表谢意,同时因为笔者实力有限,如果发现错误,请及时指正,以免误导后人,谢谢!
jyy: 02-应用视角的操作系统
接下来的学习我们将从三个视角看操作系统:
从程序角度看操作系统就是一堆API和对象
从硬件角度看操作系统就是一个普通的C程序
从数学的视角看操作系统就是一个严格的数学对象
操作系统是连接软件和硬件的桥梁
想要理解操作系统,就要想到第一节{此处附上链接},讲到的要了解什么是软件?
Everything(二进制程序) = 状态机
程序可以被视作状态机,是因为程序在运行时会经历不同的状态,而这些状态相当于程序执行的不同阶段.
当然程序和状态机还是有一定区别:
程序比状态机更复杂.而且程序也可以包含多个状态机
程序一般是用来处理大量数据,而状态机只处理少量数据
程序可以并发执行多个任务,而状态机通常只能执行一个任务
什么是状态机?
状态机是描述有限数量状态的系统,以及这些状态转换之间的规则
指令集中没有一条是关闭计算机的指令,那么问题来了,我们平时关闭计算机,切断计算机电源是怎么产生的?
因为退出不是由指令集实现的,而是由操作系统实现的.我们实际上不是通过一条指令就把计算机关掉的,而是因为硬件里面存在一些预设好的另一台小型计算机发送一条指令,这一台小型计算机里面有一个很小的操作系统,这个小型计算机会扫描其所知道的线路,发送电频,将每个模块关掉,最后把整体电源切断.
在大语言模型时代下,学习东西,最重要的是学会: 如何提问. 学习高质量的prompt, 好的问题会收获更高质量的"知识",只要能提问就一定有所收获,回想我启蒙计算机的路程,也是如此,掌握一门新的语言也是如此,从不知道问什么==> 一肚子疑问,大胆发问后 ==> 再回头发现在灯火阑珊处
操作系统上的应用程序
应用程序就相当于 计算机内的计算 + 操作系统的API
操作系统从应用程序的视角来看,本质就是API
操作系统设计的好,体现在各种应用程序调用这些API时候可以很容易被构造出来,可以很容易和其他程序协作.不好就是所有的程序可以直接控制显存,出现争抢.
理解高级语言程序
binary二进制
C语言代码=>编译成 binary
理解c=>binary的编译就能了解应用程序是怎么来的了
如果可以,最好是可以自己实现一个C编译器.真想,没有功利因素在,去钻研技术,用技术实实在在的便利生活,不用什么高新技术,能帮到就好.写于 20240326, 等我存款2000W时候,就开始追求一下.如果真有这一日,一定帮助更多人致富,这是我的愿景之一.
Operating System: Three Easy Pieces. 正在写,填坑是必然的.
信息来源:
[01-操作系统概述 南京大学2024操作系统]_哔哩哔哩_bilibili
相关学习资料: 操作系统:设计与实现 (2024 春季学期) (jyywiki.cn)