POSIX和System V的比較 IPC函式彙總

2021-08-11 01:13:44 字數 3636 閱讀 1466

標籤: ipc

posix

systemv

2017-11-19 21:46

//【ipc與網路部分】

當我們在linux系統中進行程序間通訊時,會發現例如共享記憶體,訊號量,訊息佇列等方式時,會發現有system v以及poxis兩種型別。因此,我們**一下system v和poxis到底代表著什麼意義。

一.posix

posix(portable operating system inte***ce for computing systems)是由ieee 和iso/iec 開發的一簇標準。該標準是基於現有的unix 實踐和經驗,描述了作業系統的呼叫服務介面,用於保證編制的應用程式可以在源**一級上在多種作業系統上移植執行。它是在1980 年早期乙個unix 使用者組(usr/group)的早期工作的基礎上取得的。該unix 使用者組原來試圖將at&t 的系統v 和berkeley csrg的bsd 系統的呼叫介面之間的區別重新調和整合,從而於1984 年產生了/usr/group 標準。1985 年,ieee作業系統技術委員會標準小組委員會(tcos-ss)開始在ansi 的支援下責成ieee 標準委員會制定有關程式源**可移植性作業系統服務介面正式標準。到了1986 年4 月,ieee 就制定出了試用標準。第乙個正式標準是在1988 年9 月份批准的(ieee 1003.1-1988),也既以後經常提到的posix.1 標準。

posix(portable operating system inte***ce)可移植作業系統介面,這樣的簡寫完全是為了和unix讀起來更像而已。它是由ieee(電子和電氣工程師協會)開發,由ansi(美國國家標準化學會)和osi(國際標準化組織)兩個機構標準化。由於早起各廠家對unix的開發各自為政,互相競爭,造成unix版本混亂,給軟體移植造成困難,不利於unix長期發展,基於此,ieee開發了posix,在原始碼級別定義了一組unix作業系統介面。

目前posix已經成為類unix(unix-like)作業系統程式設計的通用介面,極大方便了類unix環境下應用程式原始碼級的可移植性。glibc(gnu c library),即c執行庫,是linux系統中最底層的api,它就是完全按照posix標準編寫的。
posix版本

2023年之前版本

posix.1(ieee std 1003.1-1988): core services

posix.1b (ieee std 1003.1b-1993): real-time extensions

posix.1c(ieee std 1003.1c-1995) :threads extensions

posix.2(ieee std 1003.2-1992) :shell and utilities

2023年之後的版本

posix.1-2001( ieee std 1003.1-2001)

posix.1-2004 (with two tcs)(ieee std 1003.1-2004

posix.1-2008 (with one tc))( ieee std 1003.1, 2013)

二.sytem vsystem v, 曾經也被稱為 at&t system v,是unix作業系統眾多版本中的一支。它最初由 at&t 開發,在2023年第一次發布。一共發行了4個 system v 的主要版本:版本1、2、3 和 4。system v release 4,或者稱為svr4,是最成功的版本,成為一些unix共同特性的源頭,例如 」sysv 初始化指令碼「 (/etc/init.d),用來控制系統啟動和關閉,system v inte***ce definition (svid) 是乙個system v 如何工作的標準定義。

at&t **執行system v的專有硬體,但許多(或許是大多數)客戶在其上執行乙個轉售的版本,這個版本基於 at&t 的實現說明。流行的sysv 衍生版本包括 dell svr4 和 bull svr4。當今廣泛使用的 system v 版本是 sco openserver,基於 system v release 3,以及sun solaris 和 sco unixware,都基於 system v release 4。

system v 是 at&t 的第乙個商業unix版本(unix system iii)的加強。傳統上,system v 被看作是兩種unix」風味」之一(另乙個是 bsd)。然而,隨著一些並不基於這兩者**的unix實現的出現,例如 linux 和 qnx, 這一歸納不再準確,但不論如何,像posix這樣的標準化努力一直在試圖減少各種實現之間的不同。

system v(system five),是unix作業系統眾多版本中的一支,就是當年unix廠家混戰中,比較強大的乙個諸侯王,最初由 at&t 開發,在2023年第一次發布。一共發行了4個 system v 的主要版本:1、2、3 和 4,比如:system v release 4,或者稱為svr4,是最成功的版本,比如現今依然使用的作業系統sun solaris 和 sco unixware,都基於 system v release 4的,sun公司我想大家都知道吧,依然是現在商用伺服器作業系統重要提供商,但是我們常用的linux作業系統並不是基於此的,但是這裡要感謝posix這樣標準化的努力,是它相容了絕大部分system v的規格,減少了各類作業系統之間移植的麻煩。

三.使用照上面所說的system v和poxis是一種應用於系統的介面協議,poxis相對於system v可以說是比較新的標準,語法相對簡單。

在linux/unix系統程式設計中支援system v和poxis。我們常見的乙個名詞就是posix ipc和

system v ipc。ipc的全稱是inter-process comminication,就是程序間通訊。

在posix ipc中,在posix ipc中,每個ipc物件是有名稱的,而且名稱是乙個很重要的概念,posix ipc使用ipc的名稱作為ipc的標識。mq_open sem_open shm_open三個函式的第乙個引數就是這個名稱,這個名稱不一定是在檔案系統中存在的名稱。 要使用ipc物件,需要建立或者開啟,這與檔案操作類似,主要是使用mq_open、sem_open、shm_open 函式操作。在建立或者開啟ipc物件時需要指定操作的mode,例如o_ronly、o_wronly、o_rdwr、o_creat、o_excl 等,ipc物件是有一定許可權的,與檔案的許可權類似。

在system v ipc中,system v ipc中有乙個重要的型別是key_t,在msget、semget、shmget函式操作中都需要利用這個型別是引數。

四.posix和sytemv函式彙總

system v ipc函式彙總

posix ipc函式彙總

從ipc鍵生成ipc識別符號

參考 

POSIX和System V的比較 IPC函式彙總

當我們在linux系統中進行程序間通訊時,會發現例如共享記憶體,訊號量,訊息佇列等方式時,會發現有system v以及poxis兩種型別。因此,我們 一下system v和poxis到底代表著什麼意義。一.posix posix portable operating system inte ce f...

POSIX和System V的比較 IPC函式彙總

當我們在linux系統中進行程序間通訊時,會發現例如共享記憶體,訊號量,訊息佇列等方式時,會發現有system v以及poxis兩種型別。因此,我們 一下system v和poxis到底代表著什麼意義。一.posix posix portable operating system inte ce f...

posix和system v有什麼區別 ?

posix和system v有什麼區別 現在在應用時應用那一標準 浮雲484212 瀏覽 243 次 2014 11 06 10 36 2014 11 19 22 36 最佳答案 們是有關訊號量的兩組程式設計介面函式。posix訊號量 於posix技術規範的實時擴充套件方案 posix realti...