什么是posix?(Portable Operating System Interface 便携式操作系统接口)
POSIX(Portable Operating System Interface)是Unix系统的一个设计标准。当年最早的Unix,源代码流传出去了,加上早期的Unix不够完善,于是之后出现了好些独立开发的与Unix基本兼容但又不完全兼容的OS,通称Unix-like OS。局面非常混乱,为了提高兼容性和应用程序的可移植性,标准化Unix-like OS,提出了大家都应该遵守的POSIX标准。后来,Unix这个名字成为了商标,只有花钱进行POSIX标准兼容性测试并通过了的OS,才能称为Unix,其余的OS,最多称为Unix-like OS或者*nix OS。
遵循这个标准的好处是软件可以跨平台。
- Windows从WinNT开始就有兼容POSIX的考虑。这是因为当年在要求严格的领域,Unix地位比Windows高。为了把Unix用户拉到Windows阵营而搞的。现在情况当然有变化,与当年大不相同了。
- 现在最新的Win10对 Linux/POSIX 支持好,则是因为Linux已经统治了廉价服务器市场。为了提高Windows的竞争力而搞的。
所以windows也支持就很容易理解了,那么多优秀的开源软件,支持了这些个软件就可能有windows版本,就可以完善丰富windows下的软件。
以下对于POSIX的介绍,来自《Linux内核设计与实现(第2版)》的第5章
一般情况下,应用程序通过应用编程接口(API)而不是直接通过系统调用来编程。这点很重要,因为应用程序使用的这种编程接口实际上并不需要和内核提供的系统调用对应。一个API定义了一组应用程序使用的编程接口。它们可以实现成一个系统调用,也可以通过调用多个系统调用来实现,而完全不使用任何系统调用也不存在问题。实际上,API可以在各种不同的操作系统上实现,给应用程序提供完全相同的接口,而它们本身在这些系统上的实现却可能迥异。
在Unix世界中,最流行的应用编程接口是基于POSIX标准的。从纯技术的角度看,POSIX是由IEEE的一组标准组成,其目标是提供一套大体上基于Unix的可移植操作系统标准。Linux是与POSIX兼容的。
POSIX是说明API和系统调用之间关系的一个极好例子。在大多数Unix系统上,根据POSIX而定义的API函数和系统调用之间有着直接关系。实际上,POSIX标准就是仿照早期Unix系统的界面建立的。
另一方面,许多操作系统,像Windows NT,尽管和Unix没有什么关系,也提供了与POSIX兼容的库。
Linux的系统调用像大多数Unix系统一样,作为C库的一部分提供。C库实现了Unix系统的主要API,包括标准C库函数和系统调用。所有的C程序都可以使用C库,而由于C语言本身的特点,其他语言也可以很方便地把它们封装起来使用。此外,C库提供了POSIX的绝大部分API。
参考文章:什么是POSIX?
什么是posix?(Portable Operating System Interface 便携式操作系统接口)相关推荐
- POSIX:可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX )
POSIX表示可移植操作系统接口(Portable Operating System Interface of UNIX,缩写为 POSIX ),POSIX标准定义了操作系统应该为应用程序提供的接口标 ...
- 《Operating System Concepts(操作系统概念)》课程学习(1)——Chapter 1 Introduction(第1章 绪论)
操作系统概念 Operating System Concepts 说起操作系统,我想在坐的各位同学都不会陌生.因为无论我们想用计算机干什么,首先要做的就是启动操作系统,任何软件的运行都离不开操作系统的 ...
- Operating System lab1(操作系统课程设计实验1)
操作步骤 把如下文件放到一个目录下 再依次执行以下命令 make mkdir web ./webserver 8088 ./web display.c /** Copyright (c) 1989, ...
- [No000035]操作系统Operating System之OS Interface操作系统接口
接口(Interface) 仍然从常识开始- 日常生活中有很多接口:电源插座:汽车油门- 那什么是接口? 连接两个东西.信号转换.屏蔽细节- Interface: electrical circuit ...
- How to Make a Computer Operating System
How to Make a Computer Operating System 如何制作一个操作系统(翻译版) 原文地址:Github:How to Make a Computer Operating ...
- CentOS (Community Enterprise Operating System)是什么?
转自CentOS中文社区 占击查看相关介绍 内容如下: CentOS (Community Enterprise Operating System), 社区企业操作系统 redhat.com发布red ...
- CPT104 Operating System Concepts Note
Word 直接复制过来标号有错误 Lecture 1 Process What is an Operating System? OS An Operating system is the heart ...
- C/C++ tip: How to detect the operating system type using compiler predefined macros
转自:http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_oper ...
- SI - 系统 - 操作系统简述 (Operating System)
Unix 操作系统:System V.BSD Microsoft Windows Apple Mac OS Linux FreeBSD 安装 https://jingyan.baidu.com/art ...
最新文章
- 服务器信息采集协议,服务器信息采集
- 【BZOJ】3036: 绿豆蛙的归宿
- 移植net-snmp 出现的编译问题 ./libs/libnetsnmpsnmpd.a(snmpd.o): relocation R_ARM_THM_MOVW_ABS_NC against `
- 20155317 2016-2017-2 《Java程序设计》第十学习总结
- java open course_关于开闭原则 JavaDiscountCourse 类的设计
- 实现BUG自动检测 - ASP.NET Core依赖注入
- 信息学奥赛一本通C++语言——1102: 与指定数字相同的数的个数
- 关于多文档MFC从xp系统上移植到win7上出现错误的问题解决经验
- windows下PL/SQL Developer连接Orcale
- java实现冗余校验_循环冗余校验_循环冗余校验码计算_循环冗余校验 java实现(6)...
- 关于解决MyEclipse的耗内存的办法
- Google两步验证的工作原理
- html中引入的图标库,动态引入阿里图标库
- python计算皮尔森相关系数
- 为啥E进制计算机的效率最高?
- 1个英文字母、1个汉字、标点符号各占几个字节
- Centos7设置开机自动运行脚本
- 欧科云链链上卫士:做穿越Web3黑暗森林的那盏探照灯
- c语言编程求pai的近似值,c语言:求π的近似值
- ubuntu18.04返回桌面快捷键