🌟hello,各位读者大大们你们好呀🌟
🍭🍭系列专栏:【Linux初阶】
✒️✒️本篇内容:操作系统的基础概念、设计OS的目的,操作系统的定位,操作系统管理硬件方法,系统调用和库函数概念
🚢🚢作者简介:计算机海洋的新进船长一枚,请多多指教( •̀֊•́ ) ̖́-
📡📡同期Linux工具文章:【Linux初阶】认识冯诺依曼结构
目录
一、操作系统概念
二、设计OS的目的
三、操作系统定位
四、计算机管理硬件的方法
五、系统调用和库函数概念
一、操作系统概念
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。实际上,操作系统是一个对软硬件资源管理的软件。
笼统的理解,操作系统包括:
- 内核(进程管理,内存管理,文件管理,驱动管理)
- 其他程序(例如函数库,shell程序等等)
二、设计OS的目的
- 与硬件交互,管理所有的软硬件资源 【向下】
- 为用户程序(应用程序)提供一个良好的执行环境 【向上】
三、操作系统定位
在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件
如何理解 "管理"?我们通过下面的例子来理解一下
在我们的生活中,一个正常的组织体系(学校等)包括:管理者 、被管理者(执行者)
我们可以把校长比作管理者,辅导员和学生比作被管理者,在学校我们与校长见面的机会少之又少,那么校长又是怎么完成学生管理工作的呢?答案是,他可以让辅导员将学生的信息和诉求整理成表格之后再上交,通过分析表格的信息来推进学生管理工作。实际上,校长在这个过程中并没有和学生交流,他只是通过学生对应的信息来对学校资源进行调度。
因此,我们可以的出结论:管理者和被管理者并不需要直接交互,依旧能对被管理者进行管理,管理的本质实际上是管理数据。
回到计算机中,这里的校长实际上就是操作系统,他通过接收用户(学生)的诉求,根据软硬件的情况(利用学校有限资源),调度软硬件资源实现目标(完成学生的培养工作)
下图为计算机组成示例
四、计算机管理硬件的方法
我们在上面说过,管理的本质实际上是管理数据,所有的“管理”,本质的内在逻辑是:先描述、在组织
- 描述起来,用struct结构体或类,将数据分类汇总起来
- 组织起来,用链表或其他高效的数据结构,将数据与数据联系起来
【注意】操作系统可通过驱动程序对硬件做管理(校长通过辅导员对学生进行管理) ,每个硬件必然有对应的操作接口
五、系统调用和库函数概念
在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用接口。
在系统接口上方,有各种各样的软件层(用户操作接口),其中最重要的就是shell 和 lib(库)
- shell帮助用户对基础指令进行输入输出。
- 系统调用在使用上,功能比较基础,对用户的要求相对也比较高。因此有心的开发者可以对部分系统调用进行适度封装,从而形成了库。
- 库的存在,有利于更上层用户或者开发者进行二次开发(我们熟知的库有C语言库、C++库等)
在用户操作接口之上,是普通用户或开发者的使用平台。通常我们所说的学习编程实际上就是学习用户层的知识。
【注意】我们个人的任何操作,不能越过操作系统对其他软硬件进行直接控制,我们在编程过程中的指令操作、编程操作(例如打印hello world),都是将数据交给操作系统,再由操作系统完成对硬件的调用。这样做的目的是为了保护计算机、减少用户或开发者的使用开发成本。举一个简单的例子,就像是我们去银行取钱,我们需要去银行柜台或者取款机办理业务,而不能越过它们直接去钱库中取钱。
🌹🌹操作系统概念与定位大概就讲到这里啦,博主后续会继续更新更多Linux操作系统的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪