這個小節列出一些材料供您參考,看看能不能讓您藉此找出您所用的 UNIX 屬於哪一種流派。由於各流派之間的程式碼或想法上都會大量交流, 而且廠商也會自行許多修改,因此,類似「本 Unix 是 SVR2」這一類的說法, 充其量只是統計上的敘述(但有些 SVRn 的移植除外)。
也有許多 Unix 同時提供這兩個世界的大多數功能(不論是像 SunOS 一樣 把這兩個世界融合在一起,或者像 Apollo 一樣把這兩個世界做嚴格的劃分)。 所以這個小節也許沒那麼有用...。
前一小節所列出的特性也有點兒幫助。例如,如果某一個系統有 poll(2) 但 沒有 select(2),那它很有可能是從 SRV3 衍生出來的。同時,您也可以從 OS 的命名或者從簽到訊息當中,找出一些蛛絲馬跡(例如 SGI 的 IRIX SVR3.3.2) ;此外,您也可以利用 "uname -a" 指令的輸出。找尋某些指令是否存在也是 判斷的線索,但是直接探討核心的特性可能是比較可靠的做法。例如終端機 初始化的方式 (inittab 或 ttys) 就是一個較可靠的指示,這比起從列印 子系統判斷來的可靠。
特性 | SVRx 的典型 | xBSD 的典型 |
核心名稱 | /unix | /vmunix |
終端機啟動 | /etc/inittab | /etc/ttys (only getty to 4.3) |
開機啟動 | /etc/rc.d directories | /etc/rc.* files |
加掛檔案系統 | /etc/mnttab | /etc/mtab |
常用的shell | sh, ksh | csh, #! hack |
原生檔案系統 | S5 (blk: 512-2K) 檔案名稱 <= 14 bytes |
UFS (blk: 4K-8K) 檔案名稱 < 255 bytes |
群組 | 必須使用 newgrp(1) SVR4: 多重群組 |
自動加入成員 |
列印子系統 | lp, lpstat, cancel | lpr, lpq, lprm (lpd daemon) ?? |
終端機控制 | termio, terminfo, SVR4: termios (POSIX) |
termios (sgtty before 4.3reno) termcap |
工作控制 | >= SVR4 | yes |
ps 指令 | ps -ef | ps -aux |
多重等待 | poll | select |
字串函數 | memset, memcpy | bzero, bcopy |
程序對映 | /proc (SVR4) |
由於我們逐步跨入 90 年代末期,上述的差異已越來越不明顯了。