Portable Operating System Interface(可移植操作系統(tǒng)接口)的縮寫,而X則表明其對Unix API的傳承。Portable Operating System Interface of Unix.
POSIX定義
POSIX: Portable Operating System Interface of Unix.,可移植操作系統(tǒng)接口。X表示其是對Unix API的傳承。
POSIX標準由IEEE(電氣和電子工程師協(xié)會)發(fā)布,定義了操作系統(tǒng)應該為應用程序提供的接口標準,是IEEE為要在各種UNIX操作系統(tǒng)上運行軟件而定義的一系列API標準的總稱。
簡單可以理解POSIX標準是為操作系統(tǒng)設計API時遵循的規(guī)范,一套規(guī)范的系統(tǒng)調用集。
POSIX的誕生/解決的問題
POSIX的誕生和Unix的發(fā)展是密不可分的。當年最早的Unix,源代碼流傳出去了,加上早期的Unix不夠完善,于是之后出現了好些獨立開發(fā)的與Unix基本兼容但又不完全兼容的OS,通稱Unix-like OS。這樣版本混亂的情況導致相互之間的競爭和不兼容之處越來越多,給軟件的可移植性帶來很大困難,對Unix的發(fā)展極為不利。
為了提高兼容性和應用程序的可移植性,結束混亂局面,IEEE提出了POSIX標準,POSIX在源代碼級別上定義了一組最小的Unix(類unix)操作系統(tǒng)接口。 這套標準涵蓋了很多方面,比如Unix系統(tǒng)調用的C語言接口,shell程序和工具、線程和網絡編程等。POSIX標準意在期望獲得源代碼級別的軟件可移植性。為一個POSIX兼容的操作系統(tǒng)編寫的程序,可以在任何其他POSIX操作系統(tǒng)上編譯執(zhí)行。
POSIX現在已經發(fā)展成為一個非常龐大的標準族,并不局限于Unix, 一些其他的操作系統(tǒng),如Microsoft windows NT, Linux等都支持或者部分支持POSIX標準。
POSIX標準的思路
問題: 不同操作系統(tǒng)內核為同一功能提供的系統(tǒng)調用(函數)是不同的,例如創(chuàng)建進程,linux下是fork函數,windows下是createprocess函數,如果在Linux下寫了一個程序用到了fork函數,要往windows上移植就得把源代碼里面的fork通通改成createprocess,然后重新編譯。
解決方法: 定義POSIX標準, linux和windows實現基于POSIX標準,提供同樣的接口,例如定義創(chuàng)建進程的接口為posix_fork(示例名/非真實名字), 且linux和windows都把各自創(chuàng)建進程的調用封裝成posix_fork,都聲明在unistd.h里。 這樣程序員編寫應用時,只需包含unistd.h, 調用這個POSIX標準中定義的API接口: posix_fork函數,即可實現源代碼級別的可移植。
聯系客服