POSIX是可移植操作系统接口(Portable Operating System Interface of UNIX)的缩写,POSIX标准定义了操作系统应该为应用程序提供的接口标准,是在各种UNIX操作系统上运行的软件的一系列API标准的总称。

POSIX标准意在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。

POSIX 并不局限于 UNIX。许多其它的操作系统也支持POSIX,例如Windows NT就提供了与POSIX兼容的库。

一般情况下,应用程序通过应用编程接口(API)而不是直接通过系统调用来编程。这点很重要,因为应用程序使用API实际上并不需要和内核提供的系统调用对应。一个API定义了一组应用程序使用的编程接口。它们可以调用一个系统调用,也可以通过调用多个系统调用来实现,而不使用任何系统调用也可以。实际上,API可以在各种不同的操作系统上实现,给应用程序提供完全相同的接口,而它们本身在这些系统上的实现却不同。

从这种意义上来说,程序员不关心系统调用,他们只需要使用好API,而操作系统只需要处理好系统调用。不同的操作系统内核实现同样的功能的方法不同,为了实现可移植性,不同操作系统需要遵循同一套标准。举例来说,系统A实现fork的系统调用是A_fork,系统B实现fork的系统调用是B_fork,给系统A编写的程序如果要移植到系统B上,需要修改每一处调用A_fork的代码。如果系统A和B都遵循标准POSIX,把自己的fork封装到一个通用的POSIX_fork调用里,然后把这样遵循标准的函数都集中到unistd.h头文件里,那么应用程序只需要用这个头文件里的函数就可以实现不同系统之间的移植。

POSIX是什么,为什么需要POSIX相关推荐

  1. 【C++ 语言】Visual Studio 配置 POSIX 线程 ( Windows 不支持 POSIX | 配置文件下载 | 库文件说明 | 配置过程 )

    文章目录 POSIX 线程局限性 POSIX 线程配置文件下载及目录说明 Windows 动态库与静态库 POSIX 线程配置 ( 项目配置 ) POSIX 线程配置 ( Windows 动态库拷贝 ...

  2. linux posix 线程池_linux多线程--POSIX Threads Programming

    linux多线程自己从接触很久也有不少实践,但总是觉得理解不够深刻,不够系统.借这篇文章试着再次系统学习一下linux多线程编程,理解编程的concept,细致看一下POSIX pthread API ...

  3. Linux环境编程之同步(四):Posix信号量

    信号量是一种用于提供不同进程间或一个给定进程的不同线程间同步手段的原语.有三种类型:Posix有名信号量,使用Posix IPC名字标识.Posix基于内存的信号量,存放在共享内存区中:System ...

  4. NPTL(Native POSIX Thread Library)

    1.NPTL(Native POSIX Thread Library)为POSIX标准线程库,查看当前Linux系统的pthread库(线程库)版本的命令为:getconf GNU_LIBPTHREA ...

  5. linux 文件 字符集设置,Linux字符集和系统语言设置-LANG,locale,LC_ALL,POSIX等命令及参数详解...

    博文说明[前言]: 本文将通过个人口吻介绍Linux字符集和系统语言设置,包括LANG,locale,LC_ALL,POSIX等命令及参数详解的相关知识,在目前时间点[2017年6月21号]下,所掌握 ...

  6. 15、system V 与 posix 信号量的简单比较

    1.XSI system V的信号量是信号量集,可以包括多个信号灯(有个数组),每个操作可以同时操作多个信号灯 posix是单个信号灯,POSIX有名信号灯支持进程间通信,无名信号灯放在共享内存中时可 ...

  7. posix是什么_什么是POSIX? 理查德·斯托曼(Richard Stallman)解释

    posix是什么 什么是POSIX ,为什么重要? 这是您在技术写作中可能会看到的一个术语,但是它经常在技术创新主义和行话终结于X的海洋中迷失. 我通过电子邮件发送了Richard Stallman博 ...

  8. unix iorp等待队列_FreeRTOS+POSIX之消息队列API详解

    FreeRTOS+POSIX概述 可移植操作系统接口(Portable Operating System Interface,缩写为POSIX)是IEEE为要在各种UNIX操作系统上运行软件,而定义A ...

  9. Linux 文件IO管理 - POSIX

    以下是对POSIX的简短解释: POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操 ...

  10. Linux四种共享内存技术(附源码):SystemV、POSIX mmap、memfd_create、dma-buf

    <Linux 下的进程间通信:管道.消息队列.共享文件.共享内存> <[共享内存]基于共享内存的无锁消息队列设计> <File Sealing & memfd_c ...

最新文章

  1. DvaJS 入门, 快速上手Dva
  2. linux C++安装并编译boost库
  3. 程序员工资为什么高?
  4. [转]RedHat Enterprise Linux 7关闭防火墙方法
  5. getbean方法找不到bean_和平精英:一直找不到敌人?5个方法,让你彻底摆脱“瞎子”...
  6. 数组序列化 java_Java基础之数组序列化、反序列化 小发现(不知道 是不是有问题)...
  7. idea报错 IDEA:clear read-only status
  8. 钩子编程(HOOK) 安装进程内键盘钩子 (1)
  9. 需求分析与建模最佳实践
  10. 判断Windows操作系统版本
  11. 长沙理工大学ACMore编程协会2018年新生赛(重现赛)
  12. 【Python】Pandas读取tsv文件
  13. @vaild校验参数
  14. 精进之路-day01
  15. SeetaFace开源人脸识别引擎
  16. io vivado 怎么查看ps_基于Vivado的嵌入式开发 ——PS+PL实践
  17. 计算机教改论文发在那家核心期刊,教改类文章容易发的核心期刊有哪些
  18. [生存志] 第93节 孟子齐魏立说
  19. notifyDataSetInvalidated()和notifyDataSetChanged()有什么区别
  20. vue日历连月展示dom

热门文章

  1. 将一台笔记本电脑作为另一台笔记本电脑的扩展显示器
  2. 怎样将AutoCAD图转换成jpg等图片格式
  3. 【杰理AC696X】MIC能量采集的三种方式
  4. Render函数的用法
  5. 基于Vue实现的网页音乐播放器
  6. 07 图形学——曲线曲面
  7. js 伪造referer_javascript操作referer详细解析
  8. 适用于Mac,iPad和iPhone的通用PDF编辑器
  9. Python读取txt文件画Loss曲线图---txt文件转xls文件---xls文件转txt文件--xml文件转txt文件
  10. 从键盘上输入一位整数,当输入1~7时,显示对应的英文星期名称的缩写。