當(dāng)前位置:首頁 > 學(xué)習(xí)資源 > 講師博文 > System v 和Posix
System v 和Posix
時(shí)間:2018-10-28 來源:華清遠(yuǎn)見
當(dāng)我們?cè)趌inux系統(tǒng)中進(jìn)行進(jìn)程間通信時(shí),會(huì)發(fā)現(xiàn)例如共享內(nèi)存,信號(hào)量,消息隊(duì)列等方式時(shí),會(huì)發(fā)現(xiàn)有System v以及POXIS兩種類型。因此,我們探究一下System v和POXIS到底代表著什么意義。
POSIX
POSIX(Portable Operating System Interface for Computing Systems)是由IEEE 和ISO/IEC 開發(fā)的一簇標(biāo)準(zhǔn)。該標(biāo)準(zhǔn)是基于現(xiàn)有的UNIX 實(shí)踐和經(jīng)驗(yàn),描述了操作系統(tǒng)的調(diào)用服務(wù)接口,用于保證編制的應(yīng)用程序可以在源代碼一級(jí)上在多種操作系統(tǒng)上移植運(yùn)行。它是在1980 年早期一個(gè)UNIX 用戶組(usr/group)的早期工作的基礎(chǔ)上取得的。該UNIX 用戶組原來試圖將AT&T 的系統(tǒng)V 和Berkeley CSRG的BSD 系統(tǒng)的調(diào)用接口之間的區(qū)別重新調(diào)和集成,從而于1984 年產(chǎn)生了/usr/group 標(biāo)準(zhǔn)。1985 年,IEEE操作系統(tǒng)技術(shù)委員會(huì)標(biāo)準(zhǔn)小組委員會(huì)(TCOS-SS)開始在ANSI 的支持下責(zé)成IEEE 標(biāo)準(zhǔn)委員會(huì)制定有關(guān)程序源代碼可移植性操作系統(tǒng)服務(wù)接口正式標(biāo)準(zhǔn)。到了1986 年4 月,IEEE 就制定出了試用標(biāo)準(zhǔn)。第一個(gè)正式標(biāo)準(zhǔn)是在1988 年9 月份批準(zhǔn)的(IEEE 1003.1-1988),也既以后經(jīng)常提到的POSIX.1 標(biāo)準(zhǔn)。
System V
System V, 曾經(jīng)也被稱為 AT&T System V,是Unix操作系統(tǒng)眾多版本中的一支。它初由 AT&T 開發(fā),在1983年第一次發(fā)布。一共發(fā)行了4個(gè) System V 的主要版本:版本1、2、3 和 4。System V Release 4,或者稱為SVR4,是成功的版本,成為一些UNIX共同特性的源頭,例如 ”SysV 初始化腳本“ (/etc/init.d),用來控制系統(tǒng)啟動(dòng)和關(guān)閉,System V Interface Definition (SVID) 是一個(gè)System V 如何工作的標(biāo)準(zhǔn)定義。
AT&T 出售運(yùn)行System V的專有硬件,但許多(或許是大多數(shù))客戶在其上運(yùn)行一個(gè)轉(zhuǎn)售的版本,這個(gè)版本基于 AT&T 的實(shí)現(xiàn)說明。流行的SysV 衍生版本包括 Dell SVR4 和 Bull SVR4。當(dāng)今廣泛使用的 System V 版本是 SCO OpenServer,基于 System V Release 3,以及SUN Solaris 和 SCO UnixWare,都基于 System V Release 4。
System V 是 AT&T 的第一個(gè)商業(yè)UNIX版本(UNIX System III)的加強(qiáng)。傳統(tǒng)上,System V 被看作是兩種UNIX"風(fēng)味"之一(另一個(gè)是 BSD)。然而,隨著一些并不基于這兩者代碼的UNIX實(shí)現(xiàn)的出現(xiàn),例如 Linux 和 QNX, 這一歸納不再準(zhǔn)確,但不論如何,像POSIX這樣的標(biāo)準(zhǔn)化努力一直在試圖減少各種實(shí)現(xiàn)之間的不同。
使用
照上面所說的System V和POXIS是一種應(yīng)用于系統(tǒng)的接口協(xié)議,POXIS相對(duì)于System V可以說是比較新的標(biāo)準(zhǔn),語法相對(duì)簡(jiǎn)單。
在linux/unix系統(tǒng)編程中支持System V和POXIS。我們常見的一個(gè)名詞就是POSIX IPC和
System V IPC。IPC的全稱是Inter-process Comminication,就是進(jìn)程間通信。
在POSIX IPC中,在POSIX IPC中,每個(gè)IPC對(duì)象是有名稱的,而且名稱是一個(gè)很重要的概念,posix ipc使用ipc的名稱作為ipc的標(biāo)識(shí)。mq_open sem_open shm_open三個(gè)函數(shù)的第一個(gè)參數(shù)就是這個(gè)名稱,這個(gè)名稱不一定是在文件系統(tǒng)中存在的名稱。 要使用IPC對(duì)象,需要?jiǎng)?chuàng)建或者打開,這與文件操作類似,主要是使用mq_open、sem_open、shm_open 函數(shù)操作。在創(chuàng)建或者打開ipc對(duì)象時(shí)需要指定操作的mode,例如O_RONLY、O_WRONLY、O_RDWR、O_CREAT、O_EXCL 等,IPC對(duì)象是有一定權(quán)限的,與文件的權(quán)限類似。
在System V IPC中,System v ipc中有一個(gè)重要的類型是key_t,在msget、semget、shmget函數(shù)操作中都需要利用這個(gè)類型是參數(shù)。
具體的進(jìn)程間通信區(qū)別就不在這里贅述了,以后再寫。
課程分享:華清遠(yuǎn)見聯(lián)合NXP推出i.MX8M Plus開發(fā)與實(shí)踐
課程分享:鴻蒙HarmonyOS系統(tǒng)及物聯(lián)網(wǎng)開發(fā)實(shí)戰(zhàn)課程(
課程分享:HaaS EDU K1開發(fā)教程(附課程視頻及源碼下
新版C語言編程之控制語句視頻教程重磅贈(zèng)送(嵌入式入
價(jià)值2000元的嵌入式精裝教程大禮包免費(fèi)送。ǜ愣度
價(jià)值1000元的最新ARM系列視頻完整版教程新鮮出爐(免
【最新】ARM課程課堂實(shí)錄精華版視頻免費(fèi)領(lǐng)。▋(nèi)含源
如何利用機(jī)器學(xué)習(xí)構(gòu)建個(gè)性化推薦系統(tǒng)
嵌入式系統(tǒng)從上電到操作系統(tǒng)運(yùn)行的完整啟動(dòng)流程
如何在不同工作場(chǎng)景下優(yōu)化嵌入式系統(tǒng)的電源消耗
硬件抽象層(HAL)的設(shè)計(jì)如何提高代碼的可移植性
批量歸一化在深度學(xué)習(xí)訓(xùn)練中的作用和實(shí)現(xiàn)方法
物聯(lián)網(wǎng)項(xiàng)目中設(shè)計(jì)嵌入式系統(tǒng)時(shí)的關(guān)鍵技術(shù)和考慮因素
通過自然語言處理技術(shù)理解文本的深層含義
如何基于RISC-V架構(gòu)設(shè)計(jì)高效能的嵌入式系統(tǒng)
LSTM和GRU在時(shí)間序列預(yù)測(cè)中的應(yīng)用
JTAG和SWD的調(diào)試技術(shù)及應(yīng)用
