1 概念
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。笼统的理解,操作系统包括:
• 内核(进程管理,内存管理,文件管理,驱动管理)
• 其他程序(例如函数库,shell程序等等)
2 设计OS的目的
• 对下,与硬件交互,管理所有的软硬件资源
• 对上,为用户程序(应用程序)提供一个良好的执行环境
我们使用计算机,大部分是在使用计算机的什么呢?
实际上,我们是使用软件访问计算机的硬件资源,但是,计算机的硬件资源是有限的,因此我们要想使用计算机,就必须要管理好计算机的硬件资源
3 核心功能
• 在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件
操作系统的定义就是:进行软硬件资源管理的软件
💡 关键:管理的目标是解决 “有限资源” vs “无限需求” 的矛盾。
终极目标:从“管理”到“服务”
操作系统的管理不是目的,而是手段,最终指向 “为用户程序提供高效、稳定的执行环境”:
- 对下:驯服硬件,隐藏复杂性 → “不用关心硬盘转速是多少”。
- 对上:提供服务,支撑应用 → “点击图标就能运行程序”。
4 如何理解 "管理"
• 管理的例子 - 学生,辅导员,校长
• 描述被管理对象
• 组织被管理对象
就好比你是一名学生,你的校长就是一名管理者,管理者所要做的就是做决策,而辅导员就是决策的执行者
校长要管理你并不需要直接与你见面,他只需要管理你的数据就可以了
在计算机中管理数据通常用结构体
但是校长只有一名,而学生有很多,校长该如何管理这么多学生呢?
答案是用数据结构
由此,校长对学生的管理就变成了对数据结构增删查改!
假如校长决定对成绩前十学生进行奖励,那么他只需要通过相应算法找出数据结构中成绩排名前十的学生的名字,然后让辅导员来具体下发对前十学生的奖励
由此,我们得到一个结论:
管理的本质是对数据进行管理
管理的做法是先描述,再组织
总结
计算机管理硬件
- 描述起来,用struct结构体
- 组织起来,用链表或其他高效的数据结构
操作系统内部一定有大量的数据结构,要想学好操作系统,就必须要能了解操作系统内的各种数据结构
5 系统调用和库函数概念
• 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
• 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。
举一个银行的例子
银行不允许外部的人直接访问银行系统的数据结构
为什么?因为外部的人中可能有坏人,这样做会有安全隐患
因此就需要有银行窗口来作为中间者,来替外部的人访问银行系统,银行窗口就相当于系统调用
系统调用实际上就是OS提供的函数,本质上也属于操作系统
操作系统提供系统调用本质是让用户安全的访问操作系统
我们在银行中使用窗口需要经过很多流程,系统调用也同样如此
但日常生活中还存在很多不清楚具体流程的老人,那他们要存取钱又该怎么办呢。这时,就要引入一个角色了
大堂经理,大堂经理就是专门帮助那些不清楚具体流程的老人使用窗口,他减少了老人使用窗口的成本
大堂经理就相当于是库函数,我们就相当于老人,我们使用计算机资源时都是通过库函数来使用系统调用从而和计算机进行交互的
到此,操作系统概述就讲完了,怎么样,是不是感觉大脑里面多了很多新知识。
如果觉得博主讲的还可以的话,就请大家多多支持博主,收藏加关注,追更不迷路
如果觉得博主哪里讲的不到位或是有疏漏,还请大家多多指出,博主一定会加以改正
博语小屋将持续为您推出文章