不同操作系統(tǒng)相關(guān)的設(shè)計(jì)和編程風(fēng)格可以追溯出三個(gè)源頭:(a)操作系統(tǒng)設(shè)計(jì)者意圖,(b)成本和編程環(huán)境的限制對(duì)設(shè)計(jì)的均衡影響 (c)文化隨機(jī)漂移,傳統(tǒng)無非先入為主
1.操作系統(tǒng)的統(tǒng)一性理念
Unix統(tǒng)一性最重要的一點(diǎn)是“一切皆文件”模型及在此基礎(chǔ)上建立的管道概念
2.多任務(wù)能力
各種操作系統(tǒng)最基本的不同之處之一就是操作系統(tǒng)支持多進(jìn)程并發(fā)能力。最低端的操作系統(tǒng)(DOS或CP/M),基本上就是一個(gè)順序的程序加載器,根本不具備多任務(wù)能力,這種操作系統(tǒng)在通用計(jì)算機(jī)上已經(jīng)毫無競(jìng)爭(zhēng)力。
操作系統(tǒng)可具備協(xié)作式多任務(wù)能力,支持多個(gè)進(jìn)程,一個(gè)進(jìn)程運(yùn)行前必須等待前一個(gè)進(jìn)程主動(dòng)放棄占用處理器。這種操作系統(tǒng)風(fēng)格是對(duì)一種硬件的暫時(shí)性適應(yīng),這種硬件雖然功能強(qiáng)大到支持并行操作,但要么缺乏周期性時(shí)鐘中斷,要么缺乏內(nèi)存管理單元、或者兩者都缺,這種系統(tǒng)過時(shí),不再具備競(jìng)爭(zhēng)力
unix系統(tǒng)擁有搶先式多任務(wù)能力,時(shí)間片由調(diào)度程序來分配,這個(gè)調(diào)度程序定期中斷或搶斷正在運(yùn)行的進(jìn)程而把控制權(quán)交給下一個(gè)進(jìn)程,幾乎所有現(xiàn)代操作系統(tǒng)都支持搶占式調(diào)度。
注意,多任務(wù)和多用戶不是一回事,一個(gè)操作系統(tǒng)可以進(jìn)行多任務(wù)處理而只支持單用戶。
3.協(xié)作進(jìn)程
在Unix,低價(jià)的進(jìn)程生成和簡(jiǎn)便的進(jìn)程間通信(IPC)使眾多小工具、管道和過濾器組成一個(gè)均衡系統(tǒng)成為可能。
進(jìn)程是自主運(yùn)算單元的統(tǒng)一性符號(hào)、而進(jìn)程中控制是可編程的。
管道和所有其他unix IPC方法有一個(gè)精微的性質(zhì),把程序間的通訊簡(jiǎn)化到某一程度而促使功能分離。如果沒有與管道等效機(jī)制,程序必須在完全相互了解內(nèi)部細(xì)節(jié)的基礎(chǔ)上設(shè)計(jì)程序,才能實(shí)現(xiàn)彼此間的合作。
4.內(nèi)部邊界
unix提倡設(shè)立多個(gè)賬戶,每個(gè)賬戶具有專屬、可能不同權(quán)限,以保護(hù)用戶不受行為不端程序的侵害。
unix至少設(shè)立了三層內(nèi)部邊界來防范惡意用戶或有缺陷的程序。一層是內(nèi)存管理:Unix用硬件自身的內(nèi)存管理單元來保證金各自進(jìn)程不會(huì)侵入到其它進(jìn)程的內(nèi)存地址空間。第二層為多用戶設(shè)置真正的權(quán)限組---普通用戶(非root用戶)的進(jìn)程未經(jīng)允許,不能更改或讀取其他用戶的文件。第三層是把涉及關(guān)鍵安全性的功能限制在盡可能小的可信代碼上。
5. 文件屬性和記錄結(jié)構(gòu)
unix既沒記錄結(jié)構(gòu)也沒有文件屬性。
6.二進(jìn)制文件格式
如果你的操作系統(tǒng)使用二進(jìn)制文件格式存放關(guān)鍵數(shù)據(jù),應(yīng)用程序采用可讀文本格式的傳統(tǒng)很可能無法形成。也會(huì)帶來如下后果:(1)即使支持命令接口、腳本和管道,也無法形成過濾器.(2)數(shù)據(jù)文件只有通過專用工具才能訪問,開發(fā)者的思維會(huì)以工具而非數(shù)據(jù)為中心,這樣,不同版本的文件格式很難兼容。