1、什么是POSIX?
POSIX是可移植操作系统接口(Portable Operating System Interface for UNIX)的缩写,是IEEE为了在各种UNIX操作系统上运行软件而定义的一系列API标准总称,正式称呼为IEEE 1003,国际标准名称为ISO/IEC 9945。
POSIX标准定义了操作系统应该为应用程序提供的接口标准,为获得源代码级别的软件可移植性。
POSIX不局限于UNIX,其它操作系统,如DEC OpenVMS支持POSIX标准;IEEE Std. 1003.1-1990(1995年修订)或POSIX.1,POSIX.1提供源代码级别的C语言应用编程接口(API)给操作系统的服务程序,如读写文件。
POSIX.1被国际标准化组织(International Standards Organization,ISO)所接受,因此,被命名为 ISO/IEC 9945-1:1990标准。
简单理解:
1、POSIX是一个针对操作系统(准确地说是针对类Unix操作系统)的标准化协议。
2、这个协议是对操作系统服务接口的标准化,从而保证了应用程序在源码层次的可移植性。
3、如今主流的Linux系统都做到了兼容POSIX标准。
2、POSIX标准的C/C++库
C/C++的标准库是指ANSI C/C++定义的标准库,这个是构成标准C/C++语言的基础。简称libc/libc++,常见的libc/libc++的实现有:UNIX C/C++,GUN C/C++,MicroSoft Visual C/C++
在标准C/C++库基础上,兼容POSIX协议的C/C++库就是POSIX标准的C/C++库,这些C/C++库可以直接操作符合POSIX标准的操作系统调用。
常见的POSIX标准C/C++库有:
2.1 BSD,这个库是AOSP使用的标准C库。
2.2 Bionic,这个是BSD的衍生库,用于NDK开发
2.3 UNIX C/C++,GUN C/C++,MicroSoft Visual C/C++
什么是POSIX threads?
POSIX thread是操作系统级(OS level)的API规范,主要用来定义线程及线程间同步的相关操作,采用C语言定义。posix规范主要在unix like类系统上实现;Windows类系统采用了自己的线程API。