Unix標準とか

POSIXPOSIXと言うが、実際のところUnix標準を調べるにはどうするのが良いんだろう、とググってみたところUNIXの規格について - memologueという記事を発見。
Wikipediastandards(7)も参照してみたところ、POSIX*1というのは、ISO/IEC 9945-1としてISOに承認されているIEEE 1003に対してRMSがつけた別名であったが、仕様を参照するためにコストが掛かるPOSIXよりも、業界団体X/Openによって策定された無料で参照出来るXPG*2(後にSUS*3として再構成)の採用が進み、その後合同で作られたAustin Groupによって両仕様はSUSv3*4として統合され、今やPOSIXはSUSv3を元に構成されている、という風に理解。
参照するには全体はThe Open Group Base Specifications Issue 6、Cヘッダ、コマンド、Cライブラリの仕様はそれぞれ0p、1p、3pセクション内のman pageを読めば良いようだ。
シェルスクリプトを書く際に主に意識するべきはShell & Utilitiesの章だと思われるが、多くのLinuxディストリビューションで採用されているGNU CoreutilsGNU拡張や、Linux Zaurusを含む多くの組込みシステムで採用されているBusyboxとの差異を考えると移植性を考えるのは結構面倒。
Unixを使う上でシェルスクリプトの知識は不可欠だけど、ちょっとした仕事以外はシステムコールに依存関係が収束するCや、環境であるインタプリタのバージョンに依存するスクリプト言語を用いた方が良いということになりそう。

*1:Portable Operating System Interface

*2:X/Open Portability Guide

*3:Single UNIX Specification

*4:Single UNIX Specification Version 3