posix,POSIX是什么标准?为什么Windows也要支持他
posix,POSIX是什么标准?为什么Windows也要支持他详细介绍
本文目录一览: 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标准。
POSIX标准是什么?
POSIX
表示可移植操作系统接口(Portable
Operating
System
Interface
,缩写为
POSIX
是为了读音更像
UNIX)。电气和电子工程师协会(Institute
of
Electrical
and
Electronics
Engineers,IEEE)最初开发
POSIX
标准,是为了提高
UNIX
环境下应用程序的可移植性。然而,POSIX
并不局限于
UNIX。许多其它的操作系统,例如
DEC
OpenVMS
和
Microsoft
Windows
NT,都支持
POSIX
标准,尤其是
IEEE
Std.
1003.1-1990(1995
年修订)或
POSIX.1,POSIX.1
提供了源代码级别的
C
语言应用编程接口(API)给操作系统的服务程序,例如读写文件。POSIX.1
已经被国际标准化组织(International
Standards
Organization,ISO)所接受,被命名为
ISO/IEC
9945-1:1990
标准。
POSIX
现在已经发展成为一个非常庞大的标准族,某些部分正处在开发过程中。表
1-1
给出了
POSIX
标准的几个重要组成部分。POSIX
与
IEEE
1003
和
2003
家族的标准是可互换的。除
1003.1
之外,1003
和
2003
家族也包括在表中。
posix表示可移植操作系统接口(portable
operating
system
interface
of
unix,缩写为
posix
),posix标准定义了操作系统应该为应用程序提供的接口标准,是ieee为要在各种unix操作系统上运行的软件而定义的一系列api标准的总称,其正式称呼为ieee
1003,而国际标准名称为iso/iec
9945。
posix标准意在期望获得源代码级别的软件可移植性。换句话说,为一个posix兼容的操作系统编写的程序,应该可以在任何其它的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
标准。
什么是posix标准?为什么要有posix标准?
POSIX表示可移植操作系统接口:Portable Operating System Interface,电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)最初开发 POSIX 标准,是为了提高 UNIX 环境下应用程序的可移植性。然而,POSIX 并不局限于 UNIX。许多其它的操作系统,例如 DEC OpenVMS 和 Microsoft Windows NT,都支持 POSIX 标准
它基本上是Portable Operating System Interface(可移植操作系统接口)的缩写,而X则表明其对Unix API的传承。posix标准是用来完成同一功能,不同内核提供的系统调用的。
POSIX是Unix的标准。1974年,贝尔实验室正式对外发布Unix。因为涉及到反垄断等各种原因,加上早期的Unix不够完善,于是贝尔实验室以慷慨的条件向学校提供源代码,所以Unix在大专院校里获得了很多支持并得以持续发展。
于是出现了好些独立开发的与Unix基本兼容但又不完全兼容的OS,通称Unix-likeOS。包括:美国加州大学伯克利分校的Unix4xBSD(BerkeleySoftwareDistribution)。贝尔实验室发布的自己的版本,称为SystemVUnix。
其他厂商的版本,比如SunMicrosystems的Solaris系统。则是从这些原始的BSD和SystemV版本中衍生而来。
什么是POSIX 1.0?
POSIX是一种操作系统
类似苹果mac操作系统
POSIX-style就是POSIX操作系统 的风格
POSIX是可移植操作系统接口(Portable Operating System Interface)的首字母缩写。POSIX是基于UNIX的,这一标准意在期望获得源代码级的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其它的POSIX操作系统(即使是来自另一个厂商)上编译执行。POSIX标准定义了操作系统应该为应用程序提供的接口:系统调用集。POSIX是由IEEE(Institute of Electrical and Electronic Engineering)开发的,并由ANSI(American National Standards Institute)和ISO(International Standards Organisation)标准化。大多数的操作系统(包括Windows NT)都倾向于开发它们的变体版本与POSIX兼容。
POSIX1.0是其中一种.
Unix和linux系统共同遵循的标准是什么
Unix和Linux系统共同遵循的标准是POSIX(Portable Operating System Interface for UNIX)。POSIX制定了一系列的接口标准和命令,以确保不同的UNIX和Linux系统之间的兼容性和可移植性。
POSIX标准定义了许多UNIX和Linux系统共有的基本功能和工具。例如,它规定了包括shell、编程语言、文件操作、网络套接字、进程控制、信号处理、线程和用户权限等在内的操作系统接口的标准。
POSIX标准的实现有许多不同的版本,例如UNIX版的POSIX叫做SUS(Single UNIX Specification),Linux版的POSIX叫做LSB(Linux Standard Base)。这些标准的实现保证了不同的UNIX和Linux系统都能提供相同的命令行接口、库、工具和程序接口,增强了系统之间的兼容性和可移植性。
POSIX
Unix和Linux系统共同遵循的标准是POSIX(Portable Operating System Interface for Unix,可移植操作系统接口)。POSIX是一套操作系统接口标准,旨在为不同的Unix和类Unix操作系统提供统一的应用程序接口。POSIX定义了一组标准操作系统接口,包括文件操作、进程管理、系统调用、共享库、线程、套接字等,使得应用程序可以在不同的Unix和类Unix系统上移植和运行,从而提高了应用程序的可移植性和互操作性。
POSIX标准由IEEE制定,目前已经发布了多个版本,包括POSIX.1、POSIX.2、POSIX.3等。POSIX标准对于Unix和类Unix操作系统的开发和应用具有重要的意义,也为开源社区和企业提供了一个统一的标准,使得开发者和用户可以更加轻松地在不同的系统之间切换和迁移。
POSIX是什么标准?为什么Windows也要支持他
POSIX代表 “可移植操作系统接口” Portable Operation System Interface 。主要是UNIX系统早期发展得太快,以SYS V为首的建制派和BSD为首的学院派各自搞了很多新玩意儿,相互之间竞争和不兼容之处越来越多,各个商业厂家也首鼠两端,无所适从。于是就有好事者出来一统江湖,把各个山头叫来坐下来谈,统一一下各家的乱七八糟,提出一个各方都能接受和支持的标准API,基本就是糅合一下SYSV和BSD。只要按照这个API标准写程序,理论上就可以在各个操作系统和硬件平台上编译运行。尾巴上的IX两个缩写就是为了表达跟UNIX的血缘关系。这名字还是Stallman大胡子起的。Linux作为一个从头开始研制的新操作系统,逐渐发展起来以后为了尽可能获得大量应用软件支持,也明智地选择了用POSIX作为API设计的标准。美国联邦信息处理标准规定联邦政府机构采购的产品必须符合POSIX标准,Windows NT为此做了个样子糊弄了一下,实际上早期版本根本不能用。
posix多线程是用户级还是内核级
1.内核级线程:
(1)线程的创建、撤销和切换等,都需要内核直接实现,即内核了解每一个作为可调度实体的线程。
(2)这些线程可以在全系统内进行资源的竞争。
(3)内核空间内为每一个内核支持线程设置了一个线程控制块(TCB),内核根据该控制块,感知线程的存在,并进行控制。
在一定程度上类似于进程,只是创建、调度的开销要比进程小。有的统计是1:10
2.用户级线程:
(1)用户级线程仅存在于用户空间。——>对比内核(3)
(2)内核并不能看到用户线程。——>重要的区别
(3)内核资源的分配仍然是按照进程进行分配的;各个用户线程只能在进程内进行资源竞争。
posix线程调度是一个混合模型,很灵活,足以在标准的特定实现中支持用户级和内核级的线程。模型中包括两级调度--线程及和内核实体级。线程级与用户级线程类似,内核实体由内核调度。由线程库来决定它需要多少内核实体,以及他们是如何映射的。
POSIX 引入了一个线程调度竞争范围(thread-scheduling contention scope)的概念,这个. 概念赋予了程序员一些控制权,使它们可以控制怎样将内核实体映射为线程。线程的contentionscope属性可是PTHREAD_SCOPE_PROCESS,也可以是PTHREAD_SCOPE_SYSTEM。带有PTHREAD_SCOPE_PROCESS属性的线程与它所在的进程中的其他线程竞争处理器资源。带有PTHREAD_SCOPE_SYSTEM属性的线程很像内核级线程,他们在全系统的范围内竞争处理器资源。POSIX的一种映射方式将PTHREAD_SCOPE_SYSTEM线程和内核实体之间绑定起来。
内核级线程创建时先设置线程属性PTHREAD_SCOPE_SYSTEM,代码如下,:
pthread_attr_t attr;
pthread_attr_init(&attr);
pthread_attr_setscope(&attr, PTHREAD_SCOPE_SYSTEM); //设置内核级的线程,以获取较高的响应速度
//创建线程
ret = pthread_create(&iAcceptThreadId, &attr, AcceptThread, NULL);
system?v信号量和POSIX信号量有哪些区别?
他们是有关
信号量
的两组程序设计
接口函数
。POSIX信号量来源于POSIX
技术规范
的
实时
扩展方案(POSIX
Realtime
Extension),常用于线程;system
v信号量,常用于进程的同步。这两者非常相近,但它们使用的
函数调用
各不相同。前一种的
头文件
为semaphore.h,函数调用为sem_init(),sem_wait(),sem_post(),sem_destory()等等。后一种头文件为
,函数调用为semctl(),semget(),semop()等
函数
。
这也是我在论坛里看到的,希望对你有所帮助。
POSIX 字符集
最近在学正则表达式,接触到POSIX 字符集,这个传统的字符区域的优点体现在其在处理快速地指定字符集合的问题方面易于理解并且有效。但是这里我要告诉大家关于它的一个小知识。首先,我们看看通配符怎样被用来完成路径名展开操作。我们知道在某种程度上,字符区域被使用的方式几乎与在正则表达式中的用法一样,但是有一个问题:
jeremy@ubuntu:/tmp$ ls /usr/sbin/[ABCDEFGHIJKLMNOPQRSTUVWXYZ]*
/usr/sbin/ModemManager /usr/sbin/NetworkManager
这个命令产生了期望的结果即只有以大写字母开头的文件名,但是:
jeremy@ubuntu:/tmp$ ls /usr/sbin/[A-Z]*
/usr/sbin/bccmd /usr/sbin/pm-hibernate
/usr/sbin/biosdecode /usr/sbin/pm-powersave
/usr/sbin/bluetoothd /usr/sbin/pm-suspend
/usr/sbin/chat /usr/sbin/pm-suspend-hybrid
/usr/sbin/chgpasswd /usr/sbin/popcon-largest-unused
/usr/sbin/chpasswd /usr/sbin/popularity-contest
/usr/sbin/chroot /usr/sbin/pppconfig
/usr/sbin/cpgr /usr/sbin/pppd
/usr/sbin/cppw /usr/sbin/pppdump
/usr/sbin/cracklib-check /usr/sbin/pppoeconf
/usr/sbin/cracklib-format /usr/sbin/pppoe-discovery
/usr/sbin/cracklib-packer /usr/sbin/pppstats
通过这个命令我们得到整个不同的结果,(输出了一大堆,只显示了一部分结果列表)。为什么会是那样?
这就要追溯到 Unix 刚刚开发的时候,它只知道 ASCII 字符,并且这个特性反映了事实。在 ASCII中,前 32 个字符(数字 0 - 31)都是控制码(如 tabs,backspaces,和回车)。随后的 32 个字符(32 - 63)包含可打印的字符,包括大多数的标点符号和数字 0 到 9。再随后的 32 个字符(64 - 95)包含大写字符和一些更多的标点符号。最后的31 个字符(96 - 127)包含小写字母和更多的标点符号。基于这种安排方式,系统使用这种排序规则的ASCII:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
这个不同于正常的字典顺序,其像这样:
aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
随着 Unix 系统的知名度在美国之外的国家传播开来,就需要支持不在 U.S. 英语范围内的字符。于是就扩展了这个 ASCII 字符表,使用了整个 8 位,添加了字符(数字 128 - 255),这样就容纳了更多的语言。为了支持这种能力,POSIX 标准介绍了一种叫做 locale 的概念,其可以被调整,来为某个特殊的区域,选择所需的字符集,即系统的语言设置。通过这个设置,POSIX 相容的应用程序将会使用字典排列顺序而不是 ASCII 顺序。这就解释了上述命令的行为。当 [A-Z] 字符区域按照字典顺序解释的时候,包含除了小写字母“a”之外的所有字母,因此得到这样的结果。
苹果手机文件解压出现posix错误
查看手机内存是否充足,检查其它软件是否可以正常安装可能是由于该软件版本和手机存在兼容性导致无法正常安装,建议查找该软件是否有其它版本。就是网络问题或者源出现错误,DNS改成8888或8844试试,把自己添加的源都删了,然后重新添加试试。