System v和posix的IPC對比


之前有一篇關於共享內存的System V和Posix的對比:

http://www.cnblogs.com/charlesblc/p/6261469.html

 

POSIX(Portable Operating System Interface)可移植操作系統接口,這樣的簡寫完全是為了和UNIX讀起來更像而已。

IEEE開發了POSIX,在源碼級別定義了一組UNIX操作系統接口。

Glibc(GNU C Library),即C運行庫,是Linux系統中最底層的API,它就是完全按照POSIX標准編寫的。

 

System V(System Five),是Unix操作系統眾多版本中的一支,就是當年UNIX廠家混戰中,比較強大的一個諸侯王,最初由 AT&T 開發,在1983年第一次發布。

這里要感謝POSIX這樣標准化的努力,是它兼容了絕大部分System V的規格,減少了各類操作系統之間移植的麻煩。 

 

Posix和SystemV的IPC庫有幾點區別(我總結的)

1. Posix函數有下划線分隔,SystemV函數沒有,是連在一起的;

2. Posix 每個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對象是有一定權限的,與文件的權限類似。

對應的,SystemV每個IPC有一個重要的類型是key_t,在msgget、semget、shmget函數操作中都需要利用這個類型是參數。系統中對每個ipc對象都會有一個結構體來標識

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM