posix android,“POSIX”是什么意思?

C API

通过以下方式扩展ANSI C:

这些API还确定了它们所依赖的底层系统概念,例如fork需要一个过程的概念。

很多Linux系统调用存在实现特定的POSIX C API函数使Linux兼容的,例如sys_write,sys_read,...许多这些系统调用的也有特定的Linux的扩展不过。

主要的Linux桌面实现:glibc,在很多情况下只是为系统调用提供浅层包装。更多文件操作:mkdir,dirname,symlink,readlink,link(硬链接)poll(),stat,sync,nftw()

过程和线程:fork,execl,wait,pipe,semaphors sem_*,共享存储器(shm_*), kill,调度参数(nice,sched_*), ,,sleepmkfifosetpgid()

联网: socket()

内存管理:mmap,mlock,mprotect,madvise,brk()

实用程序:正则表达式(reg*)

CLI实用程序

如:cd,ls,echo,...

许多实用程序是用于相应C API函数的直接shell前端,例如mkdir。

主要的Linux桌面实现:GNU Coreutils的为小的,独立的GNU项目为大的:sed,grep,awk,...一些CLI工具类猛砸实现为内置插件。

Shell语言

例如, a=b; echo "$a"

主要的Linux桌面实现:GNU Bash。

环境变量

例如:HOME,PATH。

PATH 指定了搜索语义,包括斜杠如何阻止PATH搜索。

程序退出状态

ANSI C表示,0或EXIT_SUCCESS成功,EXIT_FAILURE失败,并留下所定义的REST实现。

POSIX补充说:126:找到命令但不可执行。

127: 没有找到指令。

> 128:由信号终止。

但是POSIX似乎没有指定128 + SIGNAL_IDBash使用的规则:https://unix.stackexchange.com/questions/99112/default-exit-code-when-process-is-terminated

正则表达式

有两种类型:BRE(基本)和ERE(扩展)。不推荐使用Basic,只保留不破坏API。

这些由C API函数实现,并在整个CLI实用程序中使用,例如grep,默认情况下接受BRE,以及使用ERE -E。

例如: echo 'a.1' | grep -E 'a.[[:digit:]]'

主要的Linux实现:glibc在regex.h下实现了哪些程序grep可以用作后端。

目录结构

如:/dev/null,/tmp

Linux FHS极大地扩展了POSIX。

文件名

另请参阅:文件系统的posix合规性是什么?最多使用14个字符和256个完整路径

只能包含: a-zA-Z0-9._-/ 是路径分隔符

NUL 不能使用

.是cwd,..父母

便携式文件名

命令行实用程序API约定

不是强制性的,由POSIX使用,但几乎没有其他地方,特别是在GNU中。但事实上,它限制性太强,例如单字母标志(例如-a),没有双连字符长版本(例如--all)。

一些广泛使用的惯例:

另请参阅:Linux命令行开关和参数是否有标准?- 表示预期文件的stdin

--终止标志,例如ls -- -l列出名为的目录-l

“POSIX ACL”(访问控制列表),例如用作后端setfacl。

这已被撤销,但它已在多个操作系统中实现,包括在Linux中setxattr。

谁符合POSIX?

许多系统都严格遵循POSIX,但实际上很少有Open Group认证,它保持了标准。值得注意的认证包括:

OS X(Apple)X代表10和UNIX。是第一款Apple POSIX系统,大约在2001年发布。另请参阅:OSX是POSIX操作系统吗?

AIX(IBM)

HP-UX(HP)

Solaris(Oracle)

大多数Linux发行版非常合规,但未经认证,因为他们不想支付合规性检查。浪潮的K-UX和华为的EulerOS是两个经过认证的例子。

官方认证系统列表可在以下网址找到:https://www.opengroup.org/openbrand/register/,也可在维基页面找到。

视窗

Windows在其某些专业发行版上实现了POSIX。

由于它是一个可选功能,程序员不能依赖它来支持大多数最终用户应用程序。

Windows 8中不支持支持:

Microsoft Windows的7 POSIX实现目前在哪里?

https://superuser.com/questions/495360/does-windows-8-still-implement-posix

功能请求:https://windows.uservoice.com/forums/265757-windows-feature-suggestions/suggestions/6573649-full-posix-support

2016年,宣布了一个名为“Linux子系统Linux”的新的类似Linux的官方API。它包括Linux系统调用,ELF运行,部分/proc文件系统,Bash,GCC,(TODO可能是glibc?)apt-get等等:https://channel9.msdn.com/Events/Build/2016/P488所以我相信它将允许Windows运行很多(如果不是全部)POSIX。但是,它专注于开发人员/部署而非最终用户。特别是,没有计划允许访问Windows GUI。

官方Microsoft POSIX兼容性的历史概述:http://brianreiter.org/2010/08/24/the-sad-history-of-the-microsoft-posix-subsystem/

Cygwin是一个众所周知的GPL第三方项目,为Windows“提供了大量的POSIX API功能”,但要求您“从源代码重建应用程序,如果您希望它在Windows上运行”。MSYS2是一个相关项目,似乎在Cygwin之上添加了更多功能。

Android的

Android拥有自己的C库(Bionic),它不支持Android O的POSIX:Android POSIX兼容吗?

奖金水平

在Linux标准基础进一步扩展POSIX。

使用非帧索引,它们更具可读性和可搜索性:http://pubs.opengroup.org/onlinepubs/9699919799/nfindex.html

获取用于grepping的HTML页面的完整压缩版本: POSIX C API函数列表在哪里?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值