Linux系统调用及用户编程接口(API)
2024-08-24 03:03:15
系统调用
所谓系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序能够通过这组“特殊”接口来获得操作系统内核提供的服务。比如用户能够通过进程控制相关的系统调用来创建进程、实现进程调度、进程管理等。
为什么用户程序不能直接訪问系统内核提供的服务呢?这是因为在Linux中,为了更好地保护内核空间,将程序的执行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别执行在不同的级别上,在逻辑上是相互隔离的。
因此。用户进程在通常情况下不同意訪问内核数据,也无法使用内核函数。它们仅仅能在用户空间操作用户数据。调用用户空间的函数。
可是。在有些情况下,用户空间的进程须要获得一定的系统服务(调用内核空间程序),这时操作系统就必须利用系统提供给用户的“特殊接口”——系统调用规定用户进程进入内核空间的详细位置。进行系统调用时。程序执行空间须要从用户空间进入内核空间。处理完后再返回到用户空间。
前面讲到的系统调用并非直接与程序猿进行交互的。它不过一个通过软中断机制向内核提交请求,以获取内核服务的接口。
在实际使用中程序猿调用的一般是用户编程接口——API
系统命令相对API更高了一层,它实际上一个可运行程序,它的内部引用了用户编程接口(API)来实现对应的功能。
最新文章
- 企业级应用架构模式N-Tier多层架构
- 反射在ADO.NET中的运用(你还在每个项目中循环遍历DataTable吗)
- Java——List集合
- The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. 怎么解决
- PLSQL_性能优化工具系列10_Automatic Database Diagnostic Monitor - ADDM
- Jquery DataTables warning : Requested unknown from the data source for row 0
- 计算1到n整数中,字符ch出现的次数
- Jquery对选取到的元素显示指定的长度,对于的字符串用“...”显示
- Struts1.x下使用jquery的Ajax获取后台数据
- Java Concurrent Topics
- 使用react-router setRouteLeaveHook的钩子函数
- 201521123087 《Java程序设计》第11周学习总结
- 结合程序崩溃后的core文件分析bug
- raid制作(转载)
- hdu3183	RMQ
- 覆盖ng-zorro样式(非style.scss)
- MacBookPro磁盘空间不够
- SqlServer中exists和in的区别
- 使用EmbeddedValueResolverAware读取配置文件内容
- es6的Map()构造函数
热门文章
- sublime text3中成功使用bootstrap3
- Cryptography I 学习笔记 --- 基于陷门置换的公钥加密
- sprak 环境搭建的坑
- Codeforces Gym 101194C Mr. Panda and Strips(2016 EC-Final,区间DP预处理 + 枚举剪枝)
- HDU1086 You can Solve a Geometry Problem too(计算几何)
- 基于VUE开发项目
- Codeforces 734 F Anton and School
- 2016集训测试赛(二十)Problem A: Y队列
- 怎样去主动拿一个锁并占有?synchronized关键字即可
- 受检查异常要求try catch或者throws,但是要记住只要catch异常了,就不会向下继续抛了