关于POSIX标准
正则表达式的POSIX规范
Linux/Unix工具与正则表达式的POSIX规范内容来源于更多内容请查看网站对正则表达式有基本了解的读者,一定不会陌生『\d』、『[a-z]+』之类的表达式,前者匹配一个数字字符,后者匹配一个以上的小写英文字母。
但是如果你用过vi、grep、awk、sed之类Linux/Unix下的工具或许会发现,这些工具虽然支持正则表达式,语法却很不一样,照通常习惯的办法写的『\d』、『[a-z]+』之类的正则表达式,往往不是无法识别就是匹配错误。
而且,这些工具自身之间也存在差异,同样的结构,有时需要转义有时不需要转义。
这,究竟是为什么呢?原因在于,Unix/Linux下的工具大多采用POSIX规范,同时,POSIX规范又可分为两种流派(flavor)。
所以,首先有必要了解一下POSIX规范。
POSIX规范常见的正则表达式记法,其实都源于Perl,实际上,正则表达式从Perl衍生出一个显赫的流派,叫做PCRE(Perl Compatible Regular Expression),『\d』、『\w』、『\s』之类的记法,就是这个流派的特征。
但是在PCRE之外,正则表达式还有其它流派,比如下面要介绍的POSIX规范的正则表达式。
POSIX的全称是Portable Operating System Interface for uniX,它由一系列规范构成,定义了UNIX操作系统应当支持的功能,所以“POSIX规范的正则表达式”其实只是“关于正则表达式的POSIX规范”,它定义了BRE(Basic Regular Expression,基本型正则表达式)和ERE(Extended Regular Express,扩展型正则表达式)两大流派。
在兼容POSIX的UNIX系统上,grep和egrep之类的工具都遵循POSIX规范,一些数据库系统中的正则表达式也符合POSIX规范。
BRE在Linux/Unix常用工具中,grep、vi、sed都属于BRE这一派,它的语法看起来比较奇怪,元字符『(』、『)』、『{』、『}』必须转义之后才具有特殊含义,所以正则表达式『(a)b』只能匹配字符串(a)b而不是字符串ab;正则表达式『a{1,2}』只能匹配字符串a{1,2},正则表达式『a\{1,2\}』才能匹配字符串a或者aa。
linux汇总1
1.6什么是POSIX标准,为什么现代操作系统的设计必须遵循POSIX标准?POSIX表示可移植操作系统接口是UNIX标准化过程中的产物,POSIX 1003.1标准定义了一个最小的Unix操作系统接口,任何操作系统只要符合POSIX1003.1这一标准,就可以运行UNIX程序。
7.什么是GUN?linux和GUN有什么关系?1)GNU是GNU is Not Unix的递归缩写,是自由软件基金会的一个项目,该项目已经开发了许多高质量的编程工具,包括emacs编辑器、著名的GNU C和C++编译器;2)Linux的开发使用了许多GNU工具,Linux系统上用于实现POSIX.2标准的工具几乎都是由GNU项目开发的;Linu x内核、GNU工具以及其它一些自由软件组成了人们常说的Linu x系统或Linu x发布版。
1.9 linux操作系统有哪几部分组成?linux内核出于什么位置?1) Linux系统由四个部分组成:用户进程,系统调用接口、Linu x内核子系统和硬件;2)Linu x内核处于用户进程和硬件之间,包括系统调用接口和Linu x内核子系统。
2.2在80x86寄存器中,哪些寄存器供一般用户使用?哪些只能被操作系统使用?用户:通用,控制寄存器. 操作系统:段寄存器,指针指令寄存器和标志寄存器(参考)2.4在保护模式下,MM U如何把一个虚地址转换成物理地址?在保护模式下,内存管理单元(MMU)由一个或一组芯片组成,其功能是指虚拟地址映射为物理地址,即进行地址转换;MMU是一种硬件电路,它包含分段部件和分页部件两个部件,分别叫做分段机制和分页机制,分段机制是把一个虚拟地址转换为线性地址,分页机制是把一个线性地址转换为物理地址。
2.5请用c语言描述段描述符表(参考)struct bound struct badd{ {char b0; char ba2;char b1; char ba3;char b6; char ba4;}; char ba7; };struct sd{char access;struct bound b;struct badd ba;};2.8 linux是如何利用段机制又如何巧妙绕过段机制的?在内核代码中如何表示各种段,查找最新源代码并进行阅读和分析Linu x的设计人员让段的基地址为.0,而段的界限为4GB,这时任意给出一个偏移量,则等式为“0+偏移量=线性地址”也就是说“偏移量=线性地址”。
linux课件第5章
5.2.2文件控制 文件控制fcntl 文件控制 5.2.3lockf文件控制 文件控制 5.2.4锁定、解锁文件 锁定、 锁定 解锁文件flock 以上三个小节与“进程” 以上三个小节与“进程”和“文件锁”有关,以后介绍。 文件锁”有关,以后介绍。
5.2.5 读写文件内容 1、write系统调用 、 系统调用 #include <unistd.h> size_t write(int fildes, void *buf, size_t nbytes); 函数作用是:把缓冲区buf的前 函数作用是:把缓冲区 的前nbytes个字节写入与 个字节写入与 的前 文件描述符fildes相关联的文件中,函数返回实际写入 相关联的文件中, 文件描述符 相关联的文件中 的字节数。 的字节数。 例:simple_write.c
2、关闭文件 、 #include <unistd.h> int close(int fildes) 其中参数fildes为一个文件描述符 其中参数 为一个文件描述符 3、创建文件 、 #include <fcntl.h> int creat(char *path,mode_t mode); 例:open_example.c
5.1.3 文件权限修饰位 与进程有关,以后介绍。 与进程有关,以后介绍。 5.1.4文件访问权限位 文件访问权限位 可以通过chmod命令实现文件权限的修改。 命令实现文件权限的修改。 可以通过 命令实现文件权限的修改 5.1.5文件描述符 5.1.5文件描述符 文件描述符是一个简单的非负整数, 文件描述符是一个简单的非负整数,用以标明每 一个被打开的文件。第一个打开的文件是0, 一个被打开的文件。第一个打开的文件是 ,第二个 是1,依此类推。 ,依此类推。 可用fileno()函数返回文件流对应的文件描述符。 函数返回文件流对应的文件描述符。 可用 函数返回文件流对应的文件描述符 例:fileno_example.c
posix标准简介
1003.1b 1993年通过,实时扩展
1003.1c 1995年通过,线程扩展
1003.1d 1999年通过,实时扩展
1003.1j 2000年通过,高级实时扩展
1003.1q 20指POSIX标准,该标准是一个可移植操作系统接口(Portable Operating System Interface),由IEEE提出,ANSI和ISO将其标准化。POSIX的目的是使应用程序源代码可以在兼容POSIX的操作系统上移植。理想的目标是应用程序移植到另一个操作系统只需要重新编译就可以运行。POSIX最后一个字母“X”表达了这种超乎操作系统差异的理想。目前并没有实现这种理想:从操作系统看,由于目标、要求、理念、条件的差异,并不是所有的操作系统都实现100%POSIX兼容;从应用程序看,很多代码编写使用了特定操作系统支持的调用,并没有很好地使用POSIX接口。但是,很显然,使用POSIX接口的应用程序在兼容POSIX的操作系统间移植将是很轻松的事情。
POSIX标准是一个处于不断发展之中的庞大体系,包括:
1003.1 系统API
1003.2 SHELL及工具
1003.3 POSIX符合性测试方法
1003.5 ADA语言接口
1003.13 标准化可移植实时应用环境AEP
其中,POSIX 1003.1系列标准是POSIX最主体内容,也是我们最关心的部分。该系列内容由如下主体定义以及一些扩展和增补组成:
关于POSIX标准
关于POSIX标准对中国 Linux 标准战略与战术的思考国家软件与集成电路公共服务平台技术总监陈伟博士“制订标准” 现在已经成为了一个时髦的词,而有关各种标准的消息,也不断充斥耳畔,这也昭告了“标准时代” 的来临。
生于田野,长于社会,不拘小节的小企鹅Linux 也未能免俗,各种Linux 标准也纷至踏来,这就是“成长的烦恼”吧!而制订 Linux 标准正逐步成为我国标准战略的一个重要组成部份。
同样是制订标准,小企鹅的出生、成长方式、生存模式以及“它”和我们的相互认知度都对我们制订 Linux 标准有着重要的影响。
“标准”真的万能吗?认为只要制定了Linux 国家标准,Linux 就可以走上发展的康庄大道,这是一种错误也不现实的理解。
而在当前标准战略的大潮中,其实对Linux 真是“爱它并不容易”,因而在制订Linux 标准的过程中,需要有更多的耐心和技巧,要做的事还很多。
国际 Linux 的标准体系1.POSIX标准POSIX(Portable Operating System Interface for Computing Systems)是由 IEEE 和 ISO/IEC 开发的标准系统。
该标准是基于现有的 Unix 实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。
1991-1993 年Linux 刚起步时,适逢POSIX 标准的制定正处在最后定稿的时候,POSIX 标准为Linux 提供了极为重要的信息,使得Linux 能够与绝大多数 Unix 系统兼容。
POSIX 目前的最新标准是 IEEE 1003.1-2001。
在最初的 Linux 内核代码中(0.01 版、0.11 版)就已经为 Linux 与POSIX 标准的兼容做好了准备。
通过对0.01 版的内核/include/unistd.h 文件的分析就可见,Linux 在发展初期就想实现与POSIX的兼容。
posix接口标准
posix接口标准一、概述POSIX(Portable Operating System Interface)接口标准是由IEEE和ISO/IEC联合制定的一组操作系统接口规范,旨在实现不同操作系统之间的兼容性和互操作性。
其中,POSIX API(应用程序接口)是POSIX标准的核心组成部分,它定义了一组常用的系统调用,为开发人员提供了访问操作系统功能的途径。
二、posix接口标准的主要内容1. 进程管理(1)fork():创建一个新进程,复制父进程的映像。
(2)exec():加载可执行文件,替换当前进程的映像。
(3)exit():终止进程。
(4)wait():等待子进程结束。
(5)signal():设置信号处理函数。
2. 文件操作(1)open():打开文件。
(2)read()、write():读写文件。
(3)lseek():改变文件偏移量。
(4)close():关闭文件。
(5)stat()、lstat()、fstat():获取文件属性。
3. 进程间通信(1)pipe():创建管道。
(2)readline()、read():从管道读取数据。
(3)write():向管道写入数据。
(4)fork()+exec():使用管道执行子进程。
4. 信号处理(1)signal():设置信号处理函数。
(2)raise():发送信号。
(3)kill():发送信号给进程或线程。
5. 线程管理(1)pthread_create():创建线程。
(2)pthread_join():等待线程结束。
(3)pthread_exit():退出线程。
(4)pthread_setname_np():设置线程名称。
三、posix接口标准的特点与应用场景POSIX接口标准具有以下特点:1. 兼容性好:POSIX接口标准遵循统一的标准规范,不同操作系统之间的兼容性较好。
2. 易用性:POSIX接口提供了常用的系统调用,方便开发人员快速实现功能。
posix和system v的标准
POSIX和System V是两种不同的操作系统接口标准。
POSIX(Portable Operating System Interface for Computing Systems)是由IEEE和ISO/IEC开发的一簇标准,该标准是基于现有的UNIX实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。
它是在1980年早期一个UNIX用户组(usr/group)的早期工作的基础上取得的,该UNIX用户组原来试图将AT&T的系统V和Berkeley CSRG的BSD系统的调用接口之间的区别重新调和集成,从而于1984年产生了/usr/group标准。
而System V是UNIX系统的一种版本,它是由AT&T的Bell Labs在20世纪70年代开发的。
System V接口标准定义了UNIX系统中的系统调用、信号、进程控制等概念。
System V也是许多商业Unix操作系统的基础,如Sun Microsystems的Solaris和IBM的AIX等。
总的来说,POSIX和System V都是操作系统接口标准,但它们定义的内容和范围有所不同。
POSIX标准中的信号处理机制
POSIX标准中的信号处理机制在现代操作系统中,信号处理是一项重要的功能。
它提供了一种机制,用于将事件通知给应用程序,并允许程序响应这些事件。
POSIX标准定义了一套通用的信号处理机制,可用于所有兼容的系统。
本文将介绍POSIX标准中的信号处理机制,探讨其工作原理、常见的信号以及如何开发可靠的信号处理器。
信号处理机制的基本原理在POSIX标准中,信号是一种异步事件,可以是内核、其他进程或应用程序本身发出的。
当操作系统检测到一个信号时,它将立即中断正在运行的进程,并将控制权转移到一段特殊的代码,称为信号处理器。
信号处理器是一个独立的程序,用于响应和处理信号事件。
它可以执行各种操作,例如记录事件、终止进程或重新启动系统。
对于每个进程,内核都维护了一个信号掩码。
信号掩码是一个二进制掩码,指示哪些信号已被阻止或忽略。
当进程阻止一个信号时,它告诉内核不要将该信号发送给进程。
当进程忽略一个信号时,它告诉内核无论何时接收到该信号,都不执行任何操作。
可以使用sigprocmask函数来更改信号掩码。
POSIX标准定义了一组预定义的信号,每个信号由一个整数表示。
例如,SIGINT是中断信号,通常由用户按下Ctrl+C组合键生成。
SIGTERM是终止信号,用于请求进程正常退出。
当一个进程接收到一个信号时,它将调用相应的信号处理程序。
可以使用sigaction函数将信号处理程序与信号关联起来。
为了保证信号处理器的可靠性,必须遵循一些最佳实践。
首先,信号处理器应尽可能地简单和快速,因为它们在中断上下文中执行,时间是非常有限的。
其次,信号处理器通常会与应用程序的主循环交互,需要考虑线程安全和并发问题。
最后,必须小心处理可重入函数和异步信号安全函数,以确保信号处理器能够正确地工作。
常见的信号POSIX标准定义了一组预定义的信号,每个信号都由一个名称和整数表示。
下表列出了一些常见的信号和它们的含义。
信号名称说明SIGINT 中断信号(通常由Ctrl+C组合键发出)SIGTERM 终止信号,用于请求进程正常退出SIGQUIT 退出信号,用于请求进程退出,并生成核心转储文件SIGKILL 杀死信号,用于无条件终止进程SIGSTOP 停止信号,用于暂停进程的执行SIGCONT 恢复信号,用于恢复暂停的进程除了预定义的信号外,POSIX还允许应用程序自定义信号。
posix接口标准
posix接口标准POSIX接口标准简介POSIX(可移植操作系统接口)是一组定义了操作系统接口的标准。
它的目的是为了实现操作系统的可移植性,使得开发者可以在不同的操作系统上编写可移植的软件。
POSIX定义了许多功能、命令以及系统调用,以便于开发者编写可移植的软件,并且保持对不同系统的一致性。
POSIX标准的内容POSIX接口标准包含了许多不同的组件,以下是其中几个重要的组件:1. 文件和目录操作:POSIX定义了一系列函数,使得开发者可以对文件和目录进行读、写、创建等操作。
例如,开发者可以使用open()函数打开一个文件,并使用read()和write()函数进行数据的读取和写入。
此外,POSIX还定义了一些标准的文件和目录路径,以及文件权限的控制。
2. 进程控制:POSIX提供了一套用于进程控制的函数。
开发者可以使用fork()函数创建一个新的进程,使用exec()函数来加载新程序并替换当前进程的地址空间,以及使用wait()函数等待一个子进程的结束。
这些函数使得进程的创建、管理和通信变得更加容易。
3. 线程控制:POSIX对线程控制也进行了定义。
通过使用线程,可以实现并发执行的能力,从而提高程序的性能。
POSIX定义了线程的创建、同步和销毁等操作。
开发者可以使用pthread_create()函数创建线程,使用mutex和condition variable等机制进行线程同步。
4. 信号处理:POSIX提供了一套用于处理信号的函数,使得开发者可以对软件中出现的不同事件做出响应。
开发者可以使用signal()函数来定义信号的处理程序,以及使用sigprocmask()来管理进程的信号屏蔽集。
5. 文件I/O:POSIX定义了标准的文件I/O接口和相关函数。
开发者可以使用fopen()和fclose()函数打开和关闭文件,使用fgets()和fputs()函数进行文件的读写操作,以及使用fseek()和ftell()函数进行文件指针的定位和查询。
posix 时区标准
posix 时区标准
POSIX时区标准是一种广泛使用的计算时间的方法。
它以UTC(协调世界时)为基础,通过定义偏移量来将不同地区的时间转换为标准时间。
在POSIX时区标准中,每个时区都对应一个偏移量,这个偏移量是以秒为单位的。
例如,东八区的偏移量是3220839600秒。
使用POSIX时区标准可以避免不同时区之间时间计算的混乱。
通过将所有时间转换为UTC时间,可以方便地进行时间比较和同步。
同时,POSIX时区标准也考虑了夏令时等因素,可以根据需要进行调整。
POSIX时区标准是一种可靠、高效且广泛使用的计算时间的方法,适用于各种操作系统和编程语言。
posix正则表达式
posix正则表达式POSIX正则表达式是一种常见的正则表达式标准,被许多操作系统和编程语言所支持。
它定义了一系列字符和语法规则,用于匹配和处理文本字符串。
POSIX正则表达式的语法包括一些特殊字符和模式匹配规则,如下所示:1. 普通字符:除了特殊字符外,其他所有字符都被视为普通字符,用于精确匹配。
2. 特殊字符:- .:匹配除换行符外的任意字符。
- *:匹配之前的字符零次或多次。
- +:匹配之前的字符一次或多次。
- ?:匹配之前的字符零次或一次。
- ^:匹配字符串的开始位置。
- $:匹配字符串的结束位置。
- []:匹配括号中的任意一个字符。
- [^]:匹配不在括号中的任意一个字符。
- ():用于分组匹配和捕获。
- \|:逻辑或,匹配两个子表达式中的任意一个。
3. 字符类别:- [:alnum:]:字母和数字字符。
- [:alpha:]:字母字符。
- [:blank:]:空格和制表符。
- [:cntrl:]:控制字符。
- [:digit:]:数字字符。
- [:graph:]:可打印字符。
- [:lower:]:小写字母字符。
- [:print:]:可打印字符(包括空格)。
- [:punct:]:标点符号字符。
- [:space:]:空白字符。
- [:upper:]:大写字母字符。
- [:xdigit:]:十六进制字符。
4. 量词:- {n}:匹配之前的字符恰好出现n次。
- {n,}:匹配之前的字符至少出现n次。
- {n,m}:匹配之前的字符至少出现n次,最多出现m次。
- ?:非贪婪模式,尽可能少地匹配。
POSIX正则表达式可以用于搜索、匹配和替换字符串,具有强大的文本处理能力。
很多常见的编程语言,如C、C++、Java、Perl等,都支持POSIX正则表达式。
POSIX概念
Linux与UNIX这么相象的另一个原因就是他们都遵循POSIX标准。
4
1
POSIX的诞生和Unix的发展是密不可分的.
由于各厂家对Unix的开发各自为政,造成了Unix的版本相当混乱,给软件的 可移植性带来很大困难,对Unix的发展极为不利。
为结束这种局面,IEEE开发了POSIX,POSIX在源代码级别上定义了一组最小 的Unix(类Unix)操作系统接口。
然而,POSIX 并不局限于 UNIX。许多其它的操作系统,例如 Microsoft Windows NT,Linux等都支持(部分) POSIX 标准.
2
POSIX 现在已经发展成为一个非常庞大的标准族,某些部分正处OSIX标准定义了操作系统应该为应用程序提供的接口:系统调 用集。
(2)其目的是为了提高 UNIX 环境下应用程序源代码级的可移植性。
(3)也就是说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何 其它的POSIX操作系统(即使是来自另一个厂商)上编译运行。
(1)POSIX简介
Portable Operating System Interface 可移植操作系统接口
缩写为 POSIX 是为了读音更像 UNIX.
POSIX 标准是由IEEE(Institute of Electrical and Electronics Engineers,电气 和电子工程师协会)开发 ,是由ANSI(American National Standards Institute,美国国家标准学会 )和ISO(International Organization for Standardization,国际标准化组织 )标准化。
POSIX简介
POSIX简介
POSIX:Potable Operating System Interface of UNIX (可移植操作系统接⼝),是IEEE为要在各种UNIX操作系统上运⾏软件,⽽定义API的⼀系列互相关联的标准的总称,其正式称呼为IEEE Std 1003,⽽国际标准名称为ISO/IEC 9945。
POSIX标准定义了UNIX操作系统为应⽤程序提供的接⼝标准,是为了提升应⽤程序在不同UNIX操作系统之间的代码可移植性。
POSIX只定义接⼝,不定义具体实现,即定义了头⽂件 *.h,源⽂件*.c或库⽂件由各个提供商提供。
POSIX是标准C的超集,意味着标准C的函数都属于POSIX,可以直接使⽤这些函数,⽐如stdio.h中的printf、scanf,pthread.h中的
pthread_create等。
POSIX主要由四部分组成:
1. XBD(Base Definitions volume): 包含⼀些通⽤的术语、概念、接⼝以及⼯具函数(cd,mkdir, cp,mv等)和头⽂件定义(stdio.h,
stdlib.h,pthread.h等)。
2. XSH(System Interface volume):包含系统服务函数的定义,例如线程、套接字、标准IO、信号处理、错误处理等。
3. XCU(Shell and Utilities volume):包含shell脚本书写的语法、关键字以及⼯具函数(break,cd,cp,continue,pwd,return)的定义。
4. XRAT(Rationale volume):包含与本标准有关的历史信息以及采⽤或舍弃某功能的扩展基本原理。
详细叙述POSIX标准
POSIX标准总体分析POSIX,全称为可移植性操作系统接口,是一种关于信息技术的IEEE标准。
它包括了系统应用程序接口(简称API),以及实时扩展[C语言]。
该标准的目的是定义了标准的基于UNIX操作系统的系统接口和环境来支持源代码级的可移植性。
现在,标准主要提供了依赖C语言的一系列标准服务,再将来的版本中,标准将致力于提供基于不同语言的规范。
该标准对核心需求部分定义了一系列任何编程语言都通用的服务,这一部分服务主要从其功能需求方面阐述,而非定义依赖于编程语言的接口。
语言规范主要有两部分组成。
一部分包括了访问核心服务的编程语言的标准接口,这些核心服务为标准中基于编程语言的核心需求部分所定义;另一部分包含了一个特殊语言服务的标准接口。
基于任何语言,与该标准一致的执行都必须遵循语言规范的任何章节。
该标准一共被分为四个部分:(1)陈述的范围和一系列标准参考(第一章);(2)定义和总概念;(第二章)(3)各种接口设备;(第三章到第九章,第十一章到第十五章)(4)数据交换格式;(第十章)该标准的主要目的有:(1)面向应用(2)定义接口,而不是它的具体实现;(3)涉及资源和可移植性,而非对象;(4)基于c语言;(5)无超级用户,无系统管理;(6)最小限度的接口,最小限度的定义;(7)应用领域广泛;(8)对以前的实现进行最小限度改变;(9)对原有程序代码做最小的修改;(10)实时扩展;以下就对各个章节做简要分析。
第一章概述1.1 范围定义范围的关键要素有:(1)定义足够的一套功能适用于实时应用程序领域的重要部分;(2)定义足够的实现规范和性能相关的函数,以便允许实时应用程序完成系统的确定性的响应;1.2 一致性系统须支持标准中定义的接口,系统能够提供标准中没有要求到的函数和工具。
在遵循于该标准的实现中,一种一致性文档是需要用到的,它必须具有与该标准相同的结构,包含有全名,数字,和标准所指示的日期,以及头文件<limits.h>和<unistd.h>中的界限值等等。
posix标准
posix标准POSIX标准。
POSIX(Portable Operating System Interface)是一个由IEEE制定的一种UNIX操作系统的标准。
它的目的是为了确保不同的UNIX操作系统之间的兼容性,使得软件能够在不同的UNIX系统上移植和运行。
POSIX标准定义了一系列操作系统接口,包括文件操作、进程控制、系统调用等,以及一些工具和接口的规范。
POSIX标准的制定是为了解决UNIX系统之间的兼容性问题。
在早期,不同厂商的UNIX系统存在着各自的特性和接口,导致软件无法在不同的UNIX系统上移植和运行。
为了解决这一问题,IEEE制定了POSIX标准,统一了UNIX系统的接口和规范,使得软件能够在不同的UNIX系统上运行。
POSIX标准包括了一系列的接口和规范,其中最重要的是POSIX.1标准,它定义了基本的系统接口,包括文件操作、进程控制、信号处理等。
此外,还有POSIX.2标准定义了一些扩展的系统接口,包括正则表达式、Shell命令解释器等。
另外还有一些其他的POSIX标准,如POSIX.3、POSIX.4等,它们分别定义了一些特定的系统接口和规范。
POSIX标准的制定对于UNIX系统的发展起到了重要的推动作用。
它使得不同的UNIX系统之间能够保持兼容性,使得软件开发人员能够更加方便地开发和移植软件。
同时,POSIX标准也促进了UNIX系统的普及和发展,使得UNIX系统成为了当今世界上最重要的操作系统之一。
总的来说,POSIX标准是UNIX系统的基础,它定义了UNIX系统的接口和规范,保证了不同UNIX系统之间的兼容性,推动了UNIX系统的发展和普及。
在今后的发展中,POSIX标准仍然会起到重要的作用,它将继续影响着UNIX系统的发展方向,推动着UNIX系统的不断进步和发展。
POSIX标准理解
POSIX标准理解1、POSIX的定义,功能POSIX是可移植的操作系统接口(Portable Operating System Interface of Unix)的缩写。
由IEEE开发,由ANSI和ISO标准化。
目的在于提高应用程序在各种unix操作系统环境之间的可移植性。
也就是:使得任何符合POSIX标准的应用程序都可以在重新编译后运行于任何符合posix标准的OS上。
然而,POSIX 并不局限于 UNIX。
Linux基本上逐步实现了POSIX 兼容,但并没有参加正式的POSIX认证。
微软的Windows NT至少部分实现了POSIX兼容。
2、我的理解由于1003.1标注定义了一个接口(interface)而不是一种实现(implementation),所以并不区分系统调用和库函数。
标准中所有的例程都成为函数。
因此,POSIX的本质是接口。
接口就是两种事物的一种沟通方式。
POSIX接口连接了OS和应用程序。
符合POSIX接口的OS和应用程序就可以无缝交流。
vfs是OS的一部分,它符合了POSIX接口。
所以我们的文件系统只要满足了VFS,就符合了POSIX标准。
但是具体的实现与POSIX无关。
3、发展IEEE 1003.1-1988 标准就是 POSIX标准,该标准只定义了操作系统接口。
IEEE 1003.1 工作组对 1003.1-1988 进行了文本修订,未增加新的接口与功能,修订后的标准提交给ISO/IEC,获准后就成为ISO/IEC 9945-1:1990 标准,也就是最初的 POSIX.1 标准。
1993 年,IEEE 1003.1 工作组发布了 1003.1c-1995 标准,也就是人们常说的 POSIX 线程。
1003.1c-1995 与 1003.1-1990 组合在一起提交给 ISO/IEC 组织后,获准为 ISO/IEC 9945-1:1996 标准。
后来IEEE 1003.1 标准又经历多次修订,加入了多种新的子标准,到 IEEE 1003.1-2001 时,可谓集大成者,已经非常成熟了。
posix标准
posix标准POSIX标准。
POSIX(Portable Operating System Interface,可移植操作系统接口)是一个由IEEE制定的一系列标准,旨在保证不同操作系统之间的兼容性,使得在不同的UNIX系统上编写的程序可以在其他符合POSIX标准的UNIX系统上编译执行。
POSIX标准的出现,极大地促进了UNIX系统的发展,也为跨平台开发提供了便利。
POSIX标准包括了一系列的接口和命令,主要涵盖了文件系统、进程控制、系统调用、用户和组管理、Shell和工具等方面。
这些标准的制定,使得不同的UNIX系统可以在一定程度上保持一致的接口和功能,从而为开发者和用户提供了更好的体验。
首先,POSIX标准对文件系统的要求是非常严格的。
它规定了文件的基本操作,包括创建、读取、写入、删除等,同时也规定了文件的权限管理,以及文件的属性和元数据的获取方式。
这些规定使得不同的UNIX系统在文件操作上表现一致,开发者可以编写与文件系统交互的程序而不用担心兼容性的问题。
其次,POSIX标准对进程控制也做出了详细的规定。
它定义了进程的创建、销毁、信号处理、进程间通信等操作的接口和方法。
这些规定使得在不同的UNIX系统上编写多进程程序变得更加容易,也为进程间的协作提供了统一的标准。
另外,POSIX标准还包括了一系列的系统调用,如文件操作、内存管理、网络通信等。
这些系统调用的规范化,使得不同的UNIX系统在底层接口上保持了一定的一致性,为跨平台开发提供了基础。
此外,POSIX标准还规定了用户和组的管理方式,包括用户的创建、删除、权限管理等,以及组的管理和用户与组之间的关联。
这些规定使得在不同的UNIX系统上进行用户和权限管理变得更加方便和统一。
最后,POSIX标准还包括了Shell和工具的规范,定义了Shell的语法和内建命令,以及一些常用的工具和实用程序的接口和规范。
这些规定为UNIX系统提供了统一的命令行操作接口,使得用户可以在不同的UNIX系统上使用相似的命令进行操作。
posix标准的理解
posix标准的理解POSIX标准的理解。
POSIX(Portable Operating System Interface,可移植操作系统接口)是一种操作系统标准,旨在提供在不同操作系统之间可移植的应用程序接口。
它最初是由IEEE组织开发的,后来被ISO采纳为国际标准。
POSIX标准定义了一系列操作系统接口,包括文件操作、进程管理、系统调用等,以及一些工具和编程语言接口。
本文将对POSIX标准进行深入理解和分析。
首先,POSIX标准主要用于UNIX操作系统和类UNIX操作系统,如Linux、BSD等。
它的出现是为了解决不同操作系统之间的兼容性问题,使得开发的应用程序能够在不同的操作系统上运行而无需进行大量的修改。
POSIX标准的制定使得开发者可以更加方便地开发跨平台的应用程序,提高了软件的可移植性和可靠性。
其次,POSIX标准包括了一系列的接口和工具,其中最重要的是文件操作接口。
POSIX定义了一套文件系统的操作接口,包括文件的创建、打开、读写、关闭等操作,同时还定义了文件的权限、所有者、组等属性。
这些接口的统一标准使得开发者可以编写与文件系统无关的应用程序,而无需关心底层操作系统的差异。
此外,POSIX标准还定义了进程管理接口,包括进程的创建、销毁、信号处理等。
这些接口的统一标准使得在不同的操作系统上编写多进程应用程序变得更加容易,而不需要关心不同操作系统的细节差异。
另外,POSIX标准还包括了系统调用接口、线程接口、定时器接口等。
这些接口的统一标准使得开发者可以更加方便地编写跨平台的应用程序,同时也提高了应用程序的可移植性和可靠性。
总的来说,POSIX标准是一个非常重要的操作系统标准,它的出现解决了不同操作系统之间的兼容性问题,提高了软件的可移植性和可靠性。
通过对POSIX标准的深入理解,我们可以更好地利用这些标准接口和工具,编写出更加高效、可靠、可移植的应用程序。
在实际的软件开发过程中,我们应该充分利用POSIX标准提供的接口和工具,尽量避免使用与特定操作系统相关的接口和工具,从而使得我们开发的应用程序更加具有可移植性和可靠性。
posix规范
posix规范POSIX(可移植操作系统接口)是一种标准化的操作系统接口,其设计目标是为了提供一个应用程序与操作系统之间的可移植性。
POSIX标准于1988年由IEEE(电气和电子工程师协会)制定,并成为ISO(国际标准化组织)的国际标准。
POSIX规范的最新版本是2017年发布的POSIX.1-2017。
POSIX规范定义了一组标准的系统调用接口、库函数接口和命令行工具,以及应用程序可以使用的标准头文件。
这些接口和工具涵盖了操作系统的各个方面,如进程管理、文件系统、输入输出、网络通信等。
POSIX规范还定义了一组环境变量和配置文件,用于控制系统的行为。
POSIX规范的主要优势是提供了跨平台的可移植性。
通过依赖POSIX接口,应用程序可以在不同的操作系统上编译和运行,而无需进行大量的修改。
这为开发人员提供了更大的灵活性和便利性,可以更轻松地将应用程序移植到不同的平台上,并且在不同的平台上共享或重新使用代码。
POSIX规范还促进了互操作性。
由于POSIX定义了一个通用的操作系统接口,不同的操作系统可以共享和交换应用程序、库和工具。
这使得不同的开发者可以合作开发和维护跨平台的应用程序和系统工具,从而提高了软件生态系统的健康程度。
虽然POSIX规范的标准化使得应用程序的可移植性变得更加容易,但它也有一些限制和局限性。
首先,POSIX规范不能解决所有的跨平台问题。
一些操作系统的特定功能和特性可能无法在POSIX接口中找到相应的替代品,因此在移植应用程序时仍然可能需要进行一些修改和调整。
其次,不同的操作系统对POSIX规范的实现可能存在一些细微的差异,这可能导致在不同的平台上出现一些不一致的行为或性能差异。
总体而言,POSIX规范在提供可移植性和互操作性方面具有重要意义。
它为开发人员提供了一个通用的操作系统接口和一套标准工具,可以让他们更方便地开发、测试和维护跨平台的应用程序。
虽然在实践中可能会遇到一些限制和挑战,但POSIX仍然是开发人员在编写可移植软件时的重要指南之一。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OpenI18N (Open Internationalization Initiative) 致力于增强国际化背景下的软件应用的可移植性和互操作性,提供一个通用的开放源码环境,使得全球不同文化、语言的应用程序可以正确地运行和正确地表达。OpenI18N 也制定相关的标准并开发验证和测试工具包。符合 OpenI18N 标准的前提条件是符合对应的 LSB 标准。
因为众多原因,United Linux 基本上归于平静,但对于如何防止 Linux 的分裂、如何简洁 Linux 生态链提供了有益的参考。
?我国 Linux 标准的发展现状
在国务院信息化工作办公室、信息产业部、国家标准化管理委员会、科技部等部门的支持下,我国 Linux 标准化工作已取得了很大进展。
?根据系统规划拆分为以下六个项目:Linux 标准体系研究、 Linux 应用编程界面(API)规范、 Linux 桌面系统技术要求规范、Linux 服务器系统技术要求规范、Linux 用户界面规范以及嵌入式 Linux 技术规范。
《 Linux 标准体系研究报告》已完成;《 Linux 应用编程界面(API)规范》、《 Linux 桌面系统技术要求规范》、《 Linux 服务器系统技术要求规范》和《 Linux 用户界面规范》已经进行到征求意见的第二稿,涉及的四份规范是当前在网上备受争议并受到日、韩两国冷淡的 “四份标准”;《嵌入式 Linux 技术规范》完成前期调研,形成标准大纲草案,并提交了规范草案。
根据达成的协议,四家公司将通力合作开发一个通用核心的 Linux 操作系统环境,称之为 UL 软件。四家合作公司将在 UL 操作系统上捆绑自己的增值产品与服务,并以各自的品牌进行市场与销售。几乎每个为商务提供部分技术架构的供应商都表示支持 UL,包括系统与软件供应商 AMD、Borland、CA、富士通-西门子、 HP、IBM、Intel、NEC 和 SAP。为确保产品的兼容性,独立硬件供应商与独立软件供应商在不同的 Linux 版本上,花费了大量的时间与费用来认证他们的产品与服务。UL 将提供一个真正基于标准的 Linux 操作环境,使供应商需要认证的 Linux 版本显著减少。
在 FSG 中除了 LSB 和 OpenI18n 外,还有许多有影响的标准组,如 LANANA (Linux Assigned Names and Numbers Authority)、OpenPrinting、Accessibility、DWARF、Open Cluster。它们主要关注于特定的领域应用。
3.OSDL(Open Source Development Lab)标准系列
CGL (Carrier Grade Linux)是由 OSDL 资助的项目,致力于制订一个符合电信运营商要求的 Linux 标准。它针对网关, 信令服务器、管理服务器等电信应用提出了对 Linux 的增强,满足集成电信、数据和 Internet 的新一代通信基础设施的需要。CGL 承诺遵守 LSB 标准,保持 Linux 版本的一致性,并遵守开放源码的许可协议和开放源码的开发流程。CGL 支持相关软件包的测试和认证,是一个完整的体系。
Linux 的首要特征是开放与自由,但开放的东西并不一定是无知识产权的;而开源以及 Linux 领域以 GPL 为代表一批许可证协议族在 Linux 规模化商业应用方面制造了不少壁垒,反而不如当前大部份商业软件强调 “Copyright” 而看得更真切。在开源模式下发展的 Linux 缺少必要的软件的筛选以及剔除机制,也为 Linux 与其商业软件之间的 “纠葛” 提供了让人想像的空间。
1991-1993 年 Linux 刚起步时,适逢 POSIX 标准的制定正处在最后定稿的时候,POSIX 标准为 Linux 提供了极为重要的信息,使得 Linux 能够与绝大多数 Unix 系统兼容。POSIX 目前的最新标准是 IEEE 1003.1-2001。
在最初的 Linux 内核代码中(0.01 版、0.11 版)就已经为 Linux 与 POSIX 标准的兼容做好了准备。通过对 0.01 版的内核 /include/unistd.h 文件的分析就可见,Linux 在发展初期就想实现与POSIX的兼容。从 Linux 的发展进程也可以看出, Linux 的成长一直有 POSIX 标准的辅佐,没有 POSIX 的指导,就不会有 Linux 的今天。
制订 Linux 标准需要注意的问题
1.不能回避知识产权问题和专利风险
试图通过国家标准争取市场主动,甚至通过推行国家标准参与世界市场,正在成为信息产业发展的一个倾向。任何国家都需要技术标准管理,然而,如果管理不当,则很可能适得。
2.FSG(Free Standard Group)标准系列
Linux 标准化规范和工作组——LSB (Linux Standard Base) 工作组是 Free Standards Group 的成员工作组。LSB 是 Linux 领域重要和有影响的标准化组织。LSB 工作组以达成 “Standardizing The Penguin” 为目标,制定最基本的标准,如公众命令集和文件传输的格式等,为应用之间的兼容奠定基础。它致力于开发和推广一系列的标准,提高不同 Linux 发行版本的兼容性,使得软件应用得以运行在各种符合 LSB 标准的系统中,同时也帮助协调软件开发商向 Linux 移植和开发产品。目前国际上流行 的 Linux 版本基本都遵循 LSB 标准,该规范是 Linux 世界统一的重要力量,可以说是 Linux 的工业标准。在 LSB 的发展历程中较为重要版本是 V1.3,目前最新版本是 2004 年 9 月份所推出的 LSB V2.0,主要是在 V1.3 的基础上增加了对 C++ 的支持。LSB V2.0 也不能完全解决当前 Linux 应用中所面临的兼容性问题。
DCL (Data Center Linux)也是 OSDL 资助的项目,致力于制订一个满足企业数据中心需要的 Linux 标准。它面向金融行业和制造业等运行关键性业务系统。其特征是积极采用新技术,使大型系统能运行关键性业务并承担高风险和重负荷。
DTL(Desktop Linux)是 OSDL 新近资助的项目,旨在推进 Linux 企业级的桌面应用。该项目目前处于筹划期,对外发布的信息较少。据可靠消息,受中国大力推进桌面 Linux 操作系统的影响,OSDL 将加大与中国的合作力度,特别是在桌面 Linux 领域。
在 Linux 标准的制订过程中,需要有众多的单位来参与,不仅仅只是少数 Linux 企业,而应该包括众多的 Linux 操作系统厂商、独立软件提供商、设备厂商以及科研院所、用户和社区。Linux 是开放、自由的,因而制订 Linux 标准的操作方式,也应该是开放、自由的,但需要共同遵守一定的工作规程。
3.实事求是地发展适合中国市场的 Linux 系统
在发展适合我国市场的 Linux 操作系统方面,目前还没有摆脱 “汉化” 思想的束缚和模仿微软操作系统的思路。这说明,中文 Linux 在国内的市场上还不成熟。一个可供的选择是倪光南院士多次提出的主张:扩大 Linux 应用范围(这个应用范围包括操作系统和应用软件,也包括算法语言和编程工具等),通过政府订购等方式大力促进全国普及,通过公平竞争形成 “拳头” 产品和集团企业。
国家标准是公共知识产权,不能为个人或企业所拥有。专利与知识产权的问题在软件领域一直就是一个不容易界定的问题,因而在制订 Linux 标准时,我们需要从何种层次来定义与撰写标准,规避知识产权与专利方面的影响,需要参与标准的决策者和制订者拥有极高的智慧。
2.吸引 Linux 生态链企业广泛参与
???? 信息产业部成立了 “Linux 标准工作组”。2004年4月9日信息产业部成立了 Linux 标准工作组以推进我国的 Linux 标准建设。标准组的初始成员由 “863” 计划所资助项目的参与者扩大到 13 家,随着 Linux 标准组工作的进行,有更多的企业加入到 Linux 标准组中来,参与企业也覆盖了 Linux 产业的方方面面,截止 2004 年 9 月 30 日, Linux 标准组共有正式会员 28 家,观察会员 2 家。
科技部 “863” 计划资助了 Linux 相关标准与规范的研究。2003 年科技部通过了中文 Linux 和办公软件相关标准与规范(2003AA1Z2010)、中文 Linux 应用编程界面(API)规范(20032268-T-339)以及中文 Linux 系统技术要求规范(20032262-T-339)的立项,由中国电子信息标准研究所牵头承担。
国际 Linux 的标准体系
1.POSIX标准
POSIX(Portable Operating System Interface for Computing Systems)是由 IEEE 和 ISO/IEC 开发的标准系统。该标准是基于现有的 Unix 实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。
4.United Linux(UL)
2002 年 6 月,Caldera、 Conectiva、SuSE 以及 Turbo Linux 公司宣布成立 UNITED Linux 组织,计划使 Linux 的开发与认证工作围绕一个全球统一的商用 Linux 版本进行。UNITED Linux (简称 UL)将满足企业用户对标准的商用 Linux 版本的需要,该版本能跨越软件及硬件平台,从而加速企业采用 Linux 。
对中国 Linux 标准战略与战术的思考
国家软件与集成电路公共服务平台技术总监 陈伟博士
“制订标准” 现在已经成为了一个时髦的词,而有关各种标准的消息,也不断充斥耳畔,这也昭告了 “标准时代” 的来临。生于田野,长于社会,不拘小节的小企鹅 Linux 也未能免俗,各种 Linux 标准也纷至踏来, 这就是“成长的烦恼”吧!而制订 Linux 标准正逐步成为我国标准战略的一个重要组成部份。