【Linux】进程基础铺垫(三)软件基础:系统调用接口

news2024/11/19 11:31:10

系统调用接口

  • 前言:系统调用接口的引入
    • 例子理解
  • 总结小图
  • 一、系统调用接口
  • 二、底层封装 系统调用接口
    • 1. printf && scanf 重新理解
  • 三、库函数 与 系统调用函数



前言:系统调用接口的引入

例子理解

就好比 去银行取钱,银行不可能让你直接去银行金库(底层的所有数据信息)里面去取钱,这样会非常危险。

  1. 担心群众中有坏人
  2. 又必须的给用户提供服务

就出现了银行柜台窗口( 也就是我们这里的 系统调用接口 ),为了方便您更便捷的取钱与咨询,每个窗口都有工作人员提供服务( lib库函数封装,通过 函数调用 来进行 系统函数接口的调用【 不同的平台 会自动调用 不同的系统函数接口 】 ) 。
在这里插入图片描述



总结小图

在这里插入图片描述

存在软件,就自然会有操作系统 对其进行管理

操作系统:1. 数据方面的支持; 2. 功能方面的支持 。操作系统要管理底层软硬件资源,势必会接触到 大量数据 。
如果要是人为 直接对下进行软硬件资源管理,那么 核心内部细节 必然会暴露给 别人

=> 于是产生了 系统调用接口用户 只能通过 系统调用接口,来访问操作系统管理的底层软件的数据信息 。


一、系统调用接口

系统调用接口:公共的接口 进行系统调用,访问类中的属性,要改 也只能通过接口来改避免用户直接访问操作系统
【 操作系统就是直接对数据进行管理,则会暴露出大量数据,用户直接访问操作系统就相当于把所有数据都暴露给用户,不是所有人都是好人,安全性大大降低 】



二、底层封装 系统调用接口

1. printf && scanf 重新理解

就是函数用C语言设计的函数操作系统 提供:系统调用函数! 输入、输出(对上提供服务)
不能越过操作系统,但又必须贯穿操作系统 ,所以 printf 底层必须封装系统调用

  1. c / c++ 中,函数 若对引起 硬件 方面的调用必须包含系统调用,也只能包含系统调用

对系统调用进行了封装 lib库。为上层用户提供更高效使用和操作 。



三、库函数 与 系统调用函数

库函数语言设计者 如 c/c++ 进行提供系统调用函数操作系统进行提供 。
属于上下层的关系通过库,让用户直接使用库接口不用关心可移植性的细节了
在这里插入图片描述
差异化 在库中就屏蔽了 => 语言具有跨平台性,可移植性 => (不同的接口封装为同一个函数名) => 库 封装( 不同平台则调用不同平台的接口,接口差异化 )

  • 操作系统 对上提供良好稳定的运行服务通过系统调用
  • 对下 管理好软硬资源 的手段

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1594229.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

硬件开发相关的流程文件介绍

学习目的:前面文章有简要介绍硬件开发的基本过程,本文会细分硬件开发的流程,然后分作5个步骤,详细介绍开发全过程,包括立项-实施项目-软件开发-测试-验收 这几个过程,然后,再分解对每一个步骤进…

二叉树(二)———链式二叉树结构

链式结构 链式二叉树的存储结构是指用链表来表示一棵二叉树,即用链表来指示元素的逻辑关系。通常的方法是链表中的每个节点由三个域组成,数据域与左右指针域,左右指针分别用来存储该节点左孩子和右孩子所在链节点的存储位置,这种…

用html写一个有趣的鬼魂动画

<!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>一个有趣的鬼魂动画</title><link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.m…

性能测试-数据库优化一(配置参数)

性能测试-数据库优化 数据库的优化方向 1、数据库是安装在操作系统中&#xff0c;是非常追求磁盘的稳定性。MySQL的库是磁盘文件夹&#xff0c;表是磁盘文件所以数据库的优化&#xff1a; 磁盘的性能 1、磁盘的速度&#xff0c;减少同时读写&#xff0c;考虑读写分离&#x…

【Spring Boot】深入解密Spring Boot日志:最佳实践与策略解析

&#x1f493; 博客主页&#xff1a;从零开始的-CodeNinja之路 ⏩ 收录文章&#xff1a;【Spring Boot】深入解密Spring Boot日志&#xff1a;最佳实践与策略解析 &#x1f389;欢迎大家点赞&#x1f44d;评论&#x1f4dd;收藏⭐文章 目录 Spring Boot 日志一. 日志的概念?…

上位机图像处理和嵌入式模块部署(智能硬件的开发)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 目前&#xff0c;用上位机软件虽然可以部署项目&#xff0c;但是它本身有自己的缺点&#xff0c;那就是稳定性差、价格贵。稳定性这部分&#xff0…

c++修炼之路之vector模拟实现

目录 前言&#xff1a; 一&#xff1a;在STL的开源代码中的vector的实现 二&#xff1a;模拟实现 1.数据成员size()capacity() 2.resizereserve 3.构造函数析构函数赋值重载 4.迭代器[] 5.push_backinserterase迭代器失效问题 三&#xff1a;测试用例和全部代码 接下…

【Proteus】51单片机对步进电机的控制

步进电机&#xff1a;将电脉冲信号转变为角位移或线位移的开换控制系统。在非超载的情况下&#xff0c;电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数&#xff0c;而不受负载变化的影响&#xff0c;即给电机加一个脉冲信号&#xff0c;电机则转过一个步距角。 特点&am…

2024蓝桥A组A题

艺术与篮球&#xff08;蓝桥&#xff09; 问题描述格式输入格式输出评测用例规模与约定解析参考程序难度等级 问题描述 格式输入 无 格式输出 一个整数 评测用例规模与约定 无 解析 模拟就好从20000101-20240413每一天计算笔画数是否大于50然后天数&#xff1b; 记得判断平…

【STM32】西南交大嵌入式系统设计实验:环境配置

把走过的坑记录一下&#xff0c;希望后来人避坑 No ST-Link device detected.问题解决 如果跟着指导书出现这个问题&#xff1a; 直接跳过这一步不用再更新固件&#xff0c;后面直接创建项目写程序就行了。 在keil里配置成用DAP_link即可。 详细的可以看这篇文章&#xff1a…

如何进行宏观经济预测

理性预期经济学提出了理性预期的概念&#xff0c;强调政府在制定各种宏观经济政策时&#xff0c;要考虑到各行为主体预期对政策实施有效性的影响&#xff0c;积极促成公众理性预期的形成&#xff0c;从而更好地实现宏观调控的目标。政府统计要深入开展统计分析预测研究&#xf…

实战项目——智慧社区(四)之 系统管理

1、用户管理 提供查询和搜索用户、根据id查询用户信息、添加用户、修改用户、删除用户的功能 界面 添加用户 修改用户信息 2、角色管理 提供查询和搜索角色、根据id查询角色信息、添加角色、修改角色、删除角色的功能 界面 添加角色 修改角色 3、菜单管理 提供查询和搜索菜…

JavaScript(七)-高级技巧篇

文章目录 深浅拷贝浅拷贝深拷贝 异常处理thorw抛异常try/catch捕获异常debugger 处理thisthis指向改变this 性能优化防抖lodash实现防抖手写防抖函数 节流 - throttle 深浅拷贝 浅拷贝 深拷贝 深拷贝有三种方式 通过递归实现深拷贝 一定先写数组再写对象 lodash/cloneDeep …

Gradle 在 Spring 中的使用-ApiHug准备-工具篇-006

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace ApiHug …

Linux(Ubuntu) 查看并删除使用【dpkg】安装的软件

目录 ■前言 ■查看安装的软件 ■删除安装的软件 正常删除&#xff08;dpkg -r xxxxName&#xff09; 问题解决&#xff1a;use --purge to remove them too ■其他调查信息 命令 图片1 图片2 图片3 ■前言 安装Mysql8.3失败 我的服务器-CSDN博客 ■查看安装的软…

Linux的学习之路:10、进程(2)

摘要 本章主要是说一下fork的一些用法、进程状态、优先级和环境变量。 目录 摘要 一、fork 1、fork的基本用法 2、分流 二、进程状态 三、优先级 四、环境变量 1、常见环境变量 2、和环境变量相关的命令 3、通过代码如何获取环境变量 五、导图 一、fork 1、fork…

`Object3D.lookAt()` 是 Three.js 中 `Object3D` 类的一个方法,用于让一个对象朝向指定的目标点。

demo案例 方法签名 object.lookAt(target)参数 target&#xff1a;目标点的坐标&#xff0c;可以是一个 Three.js 的 Vector3 对象&#xff0c;也可以是包含 x、y、z 坐标的普通 JavaScript 对象。 返回值 该方法没有返回值。 功能 该方法将当前对象的 z 轴指向目标点&am…

GitHub repository - Pulse - Contributors - Network

GitHub repository - Pulse - Contributors - Network 1. Pulse2. Contributors3. NetworkReferences 1. Pulse 显示该仓库最近的活动信息。该仓库中的软件是无人问津&#xff0c;还是在火热地开发之中&#xff0c;从这里可以一目了然。 2. Contributors 显示对该仓库进行过…

【Golang学习笔记】从零开始搭建一个Web框架(四)

文章目录 模板渲染静态文件支持HTML 模板渲染 错误恢复完结撒花~~ 前情提示&#xff1a; 【Golang学习笔记】从零开始搭建一个Web框架&#xff08;一&#xff09;-CSDN博客 【Golang学习笔记】从零开始搭建一个Web框架&#xff08;二&#xff09;-CSDN博客 【Golang学习笔记】从…

【C++成长记】C++入门 | 类和对象(上) |类的作用域、类的实例化、类的对象大小的计算、类成员函数的this指针

&#x1f40c;博主主页&#xff1a;&#x1f40c;​倔强的大蜗牛&#x1f40c;​ &#x1f4da;专栏分类&#xff1a;C❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、类的作用域 二、类的实例化 三、类对象模型 四、this指针 1、this指针的引出 2 this指针的特…