当前位置:QNX > QNX市场

成都嵌入式学习Systemv和Posix

西藏治疗白癜风的医院 http://m.39.net/baidianfeng/a_4306091.html

成都嵌入式学习:Systemv和Posix

当我们在linux系统中进行进程间通信时,会发现例如共享内存,信号量,消息队列等方式时,会发现有Systemv以及POXIS两种类型。因此,我们探究一下Systemv和POXIS到底代表着什么意义。

POSIX

POSIX(PortableOperatingSystemInterfaceforComputingSystems)是由IEEE和ISO/IEC开发的一簇标准。该标准是基于现有的UNIX实践和经验,描述了操作系统的调用服务接口,用于保证编制的应用程序可以在源代码一级上在多种操作系统上移植运行。它是在年早期一个UNIX用户组(usr/group)的早期工作的基础上取得的。该UNIX用户组原来试图将ATT的系统V和BerkeleyCSRG的BSD系统的调用接口之间的区别重新调和集成,从而于年产生了/usr/group标准。年,IEEE操作系统技术委员会标准小组委员会(TCOS-SS)开始在ANSI的支持下责成IEEE标准委员会制定有关程序源代码可移植性操作系统服务接口正式标准。到了年4月,IEEE就制定出了试用标准。第一个正式标准是在年9月份批准的(IEEE.1-),也既以后经常提到的POSIX.1标准。

SystemV

SystemV,曾经也被称为ATTSystemV,是Unix操作系统众多版本中的一支。它初由ATT开发,在年第一次发布。一共发行了4个SystemV的主要版本:版本1、2、3和4。SystemVRelease4,或者称为SVR4,是成功的版本,成为一些UNIX共同特性的源头,例如”SysV初始化脚本“(/etc/init.d),用来控制系统启动和关闭,SystemVInterfaceDefinition(SVID)是一个SystemV如何工作的标准定义。

ATT出售运行SystemV的专有硬件,但许多(或许是大多数)客户在其上运行一个转售的版本,这个版本基于ATT的实现说明。流行的SysV衍生版本包括DellSVR4和BullSVR4。当今广泛使用的SystemV版本是SCOOpenServer,基于SystemVRelease3,以及SUNSolaris和SCOUnixWare,都基于SystemVRelease4。

SystemV是ATT的第一个商业UNIX版本(UNIXSystemIII)的加强。传统上,SystemV被看作是两种UNIX风味之一(另一个是BSD)。然而,随着一些并不基于这两者代码的UNIX实现的出现,例如Linux和QNX,这一归纳不再准确,但不论如何,像POSIX这样的标准化努力一直在试图减少各种实现之间的不同。

使用

照上面所说的SystemV和POXIS是一种应用于系统的接口协议,POXIS相对于SystemV可以说是比较新的标准,语法相对简单。

在linux/unix系统编程中支持SystemV和POXIS。我们常见的一个名词就是POSIXIPC和

SystemVIPC。IPC的全称是Inter-processComminication,就是进程间通信。

在POSIXIPC中,在POSIXIPC中,每个IPC对象是有名称的,而且名称是一个很重要的概念,posixipc使用ipc的名称作为ipc的标识。mq_opensem_openshm_open三个函数的第一个参数就是这个名称,这个名称不一定是在文件系统中存在的名称。要使用IPC对象,需要创建或者打开,这与文件操作类似,主要是使用mq_open、sem_open、shm_open函数操作。在创建或者打开ipc对象时需要指定操作的mode,例如O_RONLY、O_WRONLY、O_RDWR、O_CREAT、O_EXCL等,IPC对象是有一定权限的,与文件的权限类似。

在SystemVIPC中,Systemvipc中有一个重要的类型是key_t,在msget、semget、shmget函数操作中都需要利用这个类型是参数。

具体的进程间通信区别就不在这里赘述了,以后再写。




转载请注明:http://www.wodkn.com/yyzn/13563.html