系统调用

所谓系统调用是指操作系统提供给用户程序调用的一组“特殊”接口,用户程序能够通过这组“特殊”接口来获得操作系统内核提供的服务。比如用户能够通过进程控制相关的系统调用来创建进程、实现进程调度、进程管理等。

为什么用户程序不能直接訪问系统内核提供的服务呢?这是因为在Linux中,为了更好地保护内核空间,将程序的执行空间分为内核空间和用户空间(也就是常称的内核态和用户态),它们分别执行在不同的级别上,在逻辑上是相互隔离的。

因此。用户进程在通常情况下不同意訪问内核数据,也无法使用内核函数。它们仅仅能在用户空间操作用户数据。调用用户空间的函数。

可是。在有些情况下,用户空间的进程须要获得一定的系统服务(调用内核空间程序),这时操作系统就必须利用系统提供给用户的“特殊接口”——系统调用规定用户进程进入内核空间的详细位置。进行系统调用时。程序执行空间须要从用户空间进入内核空间。处理完后再返回到用户空间。 
前面讲到的系统调用并非直接与程序猿进行交互的。它不过一个通过软中断机制向内核提交请求,以获取内核服务的接口。

在实际使用中程序猿调用的一般是用户编程接口——API

系统命令相对API更高了一层,它实际上一个可运行程序,它的内部引用了用户编程接口(API)来实现对应的功能。



最新文章

  1. 企业级应用架构模式N-Tier多层架构
  2. 反射在ADO.NET中的运用(你还在每个项目中循环遍历DataTable吗)
  3. Java——List集合
  4. The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation. 怎么解决
  5. PLSQL_性能优化工具系列10_Automatic Database Diagnostic Monitor - ADDM
  6. Jquery DataTables warning : Requested unknown from the data source for row 0
  7. 计算1到n整数中,字符ch出现的次数
  8. Jquery对选取到的元素显示指定的长度,对于的字符串用“...”显示
  9. Struts1.x下使用jquery的Ajax获取后台数据
  10. Java Concurrent Topics
  11. 使用react-router setRouteLeaveHook的钩子函数
  12. 201521123087 《Java程序设计》第11周学习总结
  13. 结合程序崩溃后的core文件分析bug
  14. raid制作(转载)
  15. hdu3183 RMQ
  16. 覆盖ng-zorro样式(非style.scss)
  17. MacBookPro磁盘空间不够
  18. SqlServer中exists和in的区别
  19. 使用EmbeddedValueResolverAware读取配置文件内容
  20. es6的Map()构造函数

热门文章

  1. sublime text3中成功使用bootstrap3
  2. Cryptography I 学习笔记 --- 基于陷门置换的公钥加密
  3. sprak 环境搭建的坑
  4. Codeforces Gym 101194C Mr. Panda and Strips(2016 EC-Final,区间DP预处理 + 枚举剪枝)
  5. HDU1086 You can Solve a Geometry Problem too(计算几何)
  6. 基于VUE开发项目
  7. Codeforces 734 F Anton and School
  8. 2016集训测试赛(二十)Problem A: Y队列
  9. 怎样去主动拿一个锁并占有?synchronized关键字即可
  10. 受检查异常要求try catch或者throws,但是要记住只要catch异常了,就不会向下继续抛了