深入理解操作系统Operator System(2)

目录

操作系统对上的管理

系统调用接口

用户操作接口(库函数)

系统调用和库函数的概念

结构层次示意图

总结

为什么要有操作系统❓


上次主要介绍了操作系统的"管理"和操作系统对下的管理。本篇主要是对上的管理。

操作系统对上的管理

  • 用户可以直接访问硬件吗?

当然不能!!任何对硬件的操作都必须经过操作系统。像scanf/printf需要使用硬件,它们底层都必须使用操作系统


  • 操作系统内包含软硬件的属性数据,用户可以直接访问操作系统吗?

非常不合理!!让用户直接去操作系统内部访问软硬件资源属性数据不可能的。那我们怎样去访问操作系统呢?

就像银行不能让存钱的客户自己去银行的保险柜里放钱,然后把自己去银行的电脑上加上存钱的数额。这是非常危险和不切实际的。银行既要保证安全,又要让客户访问银行存钱。

  • 所以银行就会开设一个一个窗口。只要根据窗口就可以访问银行存钱了。
  • 同理可得,操作系统也开设一层软件层,也就是面向访问操作系统的窗口,称"系统调用接口"

可是有些爷爷奶奶年纪很大,不会自己去区号排序办手续存钱,这是银行就会提供"客户经理"和"前台"等服务去帮助它们。同样用户/程序员,觉得访问系统调用接口太过复杂。

  • 编译器就把系统调用接口封装称"库/shell外壳/指令"等用户操作接口以便用户使用。

系统调用接口

  • 系统调用是操作系统提供的函数
  • 系统调用是一层软件层
  • 操作系统不一样,提供的系统调用接口不一样

  • 用户输入参数到系统调用接口,接口传给操作系统,操作系统返回参数给接口传给用户
  • 系统调用使整个操作系统处于一种安全/稳定的状态
  • 使用户,安全稳定的获取到系统内的软硬件资源属性的数据
  • 我们学习对"软件"的管理,对进程/线程/文件/信号的管理都是对系统调用接口的学习
  • printf/scanf本质是调用系统调用对应的接口,由操作系统控制,通过驱动层写入硬件(显示器)

  • 综上所述:用户访问操作系统直接/间接都使用了系统调用接口

那怎样间接访问系统调用接口呢?

用户操作接口(库函数)

  • 间接访问系统调用接口:就是把系统调用接口封装成库直接提供给用户使用。
  • 我们已经使用过的:C/C++标准库
  • 我们下在VS2022的时候,下载时不仅仅安装了编译器,还安装对应的"库"

关于直接/间接使用系统调用函数直接关系到这段代码是否具有跨平台性。

  • 不具有跨平台性:直接使用系统调用接口
  • 具有跨平台性:使用用户操作系用的(库等)
  • 因为系统调用接口时和操作系统配套的。操作系统是Linux,那么系统调用接口也是Linux。同理,操作系统是windows,那么系统调用接口也是windows。二者的系统调用不能跨平台使用。
  • 例如:我们的printf在Linux或windows底下都可以使用,是因为虽然系统调用底层实现不一样,但是对上C/C++标准库(封装成库)是一样都可以使用,具有跨平台性。

系统调用和库函数的概念

  • 在开发角度,操作系统对外会表现为一个整体,但是会暴露自己的部分接口,供上层开发使用,这部分由操作系统提供的接口,叫做系统调用。
  • 系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。

结构层次示意图

总结

  • 获取数据。
  • 先描述,再组织。 
  • 对硬件的管理:操作系统是硬件的"管理者" ,所以用户访问硬件必须通过操作系统。
  • 计算机管理硬件
  1. 描述起来,用struct结构体
  2. 组织起来,用链表或其他高效的数据结构
  • 对软件的管理:进程/线程/文件/型号的系统调用接口。
  • 驱动层。
  • 系统调用层/用户调用接口。

为什么要有操作系统❓

  • 以人为本
  • 操作系统对下层进行软硬件管理工作。(手段)
  • 操作系统对上层提供良好的(高效,稳定,安全)运行环境。(目的)
  • 操作系统就是一个工具。
  • 操作系统先浅显的理解"代码和数据”的集合,本身,不会像进程一样去被调度,和后面学到的中断等等有关。>>>>>>>后面说

🙂感谢大家的阅读,若有错误和不足,欢迎指正。下篇进入【进程】的概念了。在学习进程之前,就问大家,操作系统是怎么管理进行进程管理的呢?很简单,先把进程描述起来,再把
进程组织起来!

  • 25
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

唐唐思

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值