• 【Linux初阶】操作系统概念与定位 | 操作系统管理硬件方法、系统调用和库函数概念


     🌟hello,各位读者大大们你们好呀🌟

    🍭🍭系列专栏:【Linux初阶】

    ✒️✒️本篇内容:操作系统的基础概念、设计OS的目的,操作系统的定位,操作系统管理硬件方法,系统调用和库函数概念

    🚢🚢作者简介:计算机海洋的新进船长一枚,请多多指教( •̀֊•́ ) ̖́-

    📡📡同期Linux工具文章:【Linux初阶】认识冯诺依曼结构​​​​​​​

    目录

    一、操作系统概念

    二、设计OS的目的

    三、操作系统定位

    四、计算机管理硬件的方法

    五、系统调用和库函数概念


    一、操作系统概念

    任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。实际上,操作系统是一个对软硬件资源管理的软件

    笼统的理解,操作系统包括:

    • 内核(进程管理,内存管理,文件管理,驱动管理)
    • 其他程序(例如函数库,shell程序等等) 

    二、设计OS的目的

    • 与硬件交互,管理所有的软硬件资源 【向下】
    • 为用户程序(应用程序)提供一个良好的执行环境 【向上】

    三、操作系统定位

    在整个计算机软硬件架构中,操作系统的定位是:一款纯正的“搞管理”的软件

    如何理解 "管理"?我们通过下面的例子来理解一下

    在我们的生活中,一个正常的组织体系(学校等)包括:管理者 、被管理者(执行者)

    我们可以把校长比作管理者,辅导员和学生比作被管理者,在学校我们与校长见面的机会少之又少,那么校长又是怎么完成学生管理工作的呢?答案是,他可以让辅导员将学生的信息和诉求整理成表格之后再上交,通过分析表格的信息来推进学生管理工作。实际上,校长在这个过程中并没有和学生交流,他只是通过学生对应的信息来对学校资源进行调度。

    因此,我们可以的出结论:管理者和被管理者并不需要直接交互,依旧能对被管理者进行管理,管理的本质实际上是管理数据。

    回到计算机中,这里的校长实际上就是操作系统,他通过接收用户(学生)的诉求,根据软硬件的情况(利用学校有限资源),调度软硬件资源实现目标(完成学生的培养工作)

    下图为计算机组成示例


    四、计算机管理硬件的方法

    我们在上面说过,管理的本质实际上是管理数据,所有的“管理”,本质的内在逻辑是:先描述、在组织

    1. 描述起来,用struct结构体或类,将数据分类汇总起来
    2. 组织起来,用链表或其他高效的数据结构,将数据与数据联系起来

    【注意】操作系统可通过驱动程序对硬件做管理(校长通过辅导员对学生进行管理) ,每个硬件必然有对应的操作接口


    五、系统调用和库函数概念

    在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用接口

    在系统接口上方,有各种各样的软件层(用户操作接口),其中最重要的就是shell lib(库)

    • shell帮助用户对基础指令进行输入输出。
    • 系统调用在使用上,功能比较基础,对用户的要求相对也比较高。因此有心的开发者可以对部分系统调用进行适度封装,从而形成了库。
    • 库的存在,有利于更上层用户或者开发者进行二次开发(我们熟知的库有C语言库、C++库等)

    在用户操作接口之上,是普通用户或开发者的使用平台。通常我们所说的学习编程实际上就是学习用户层的知识。

    【注意】我们个人的任何操作,不能越过操作系统对其他软硬件进行直接控制我们在编程过程中的指令操作、编程操作(例如打印hello world),都是将数据交给操作系统,再由操作系统完成对硬件的调用。这样做的目的是为了保护计算机、减少用户或开发者的使用开发成本。举一个简单的例子,就像是我们去银行取钱,我们需要去银行柜台或者取款机办理业务,而不能越过它们直接去钱库中取钱。


     🌹🌹操作系统概念与定位大概就讲到这里啦,博主后续会继续更新更多Linux操作系统的相关知识,干货满满,如果觉得博主写的还不错的话,希望各位小伙伴不要吝啬手中的三连哦!你们的支持是博主坚持创作的动力!💪💪 

  • 相关阅读:
    Redis详解
    【Docker】Docker Swarm介绍与环境搭建
    单片机特殊知识(三)
    项目系列之登录管理
    第51节:cesium 范围查询(含源码+视频)
    9.12 C++作业
    vue前端docx库生成word表格 并合并单元格的例子
    yum小bug
    基于gunicorn部署flask项目
    Mybatis 实现简单增删改查
  • 原文地址:https://blog.csdn.net/Captain_ldx/article/details/127931904