系统调用接口
- 前言:系统调用接口的引入
- 例子理解
- 总结小图
- 一、系统调用接口
- 二、底层封装 系统调用接口
- 1. printf && scanf 重新理解
- 三、库函数 与 系统调用函数
前言:系统调用接口的引入
例子理解
就好比 去银行取钱,银行不可能让你直接去银行金库(底层的所有数据信息)里面去取钱,这样会非常危险。
- 担心群众中有坏人
- 又必须的给用户提供服务
就出现了银行柜台窗口( 也就是我们这里的 系统调用接口 ),为了方便您更便捷的取钱与咨询,每个窗口都有工作人员提供服务( lib库函数封装,通过 函数调用 来进行 系统函数接口的调用【 不同的平台 会自动调用 不同的系统函数接口 】 ) 。
总结小图
存在软件,就自然会有操作系统 对其进行管理 。
操作系统:1. 数据方面的支持; 2. 功能方面的支持 。操作系统要管理底层软硬件资源,势必会接触到 大量数据 。
如果要是人为 直接对下进行软硬件资源管理,那么 核心内部细节 必然会暴露给 别人 。
=> 于是产生了 系统调用接口 。用户 只能通过 系统调用接口,来访问操作系统管理的底层软件的数据信息 。
一、系统调用接口
系统调用接口:公共的接口 进行系统调用,访问类中的属性,要改 也只能通过接口来改,避免用户直接访问操作系统 。
【 操作系统就是直接对数据进行管理,则会暴露出大量数据,用户直接访问操作系统就相当于把所有数据都暴露给用户,不是所有人都是好人,安全性大大降低 】
二、底层封装 系统调用接口
1. printf && scanf 重新理解
就是函数,用C语言设计的函数 !由 操作系统 提供:系统调用函数! 输入、输出(对上提供服务)
不能越过操作系统,但又必须贯穿操作系统 ,所以 printf 底层必须封装系统调用 。
- c / c++ 中,函数 若对引起 硬件 方面的调用,必须包含系统调用,也只能包含系统调用 。
对系统调用进行了,封装 lib库。为上层用户提供更高效使用和操作 。
三、库函数 与 系统调用函数
库函数 由 语言设计者 如 c/c++ 进行提供 。系统调用函数 由操作系统进行提供 。
属于上下层的关系,通过库,让用户直接使用库接口,不用关心可移植性的细节了 。
差异化 在库中就屏蔽了 => 语言具有跨平台性,可移植性 => (不同的接口封装为同一个函数名) => 库 封装( 不同平台则调用不同平台的接口,接口差异化 )
- 操作系统 对上提供良好稳定的运行服务,通过系统调用
- 对下 管理好软硬资源 的手段