文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>shell學習筆記_1_UNIX簡史

shell學習筆記_1_UNIX簡史

时间:2010-08-16  来源:chenliangmoran

UNIX最初是由貝爾電話實驗室(Bell Telephone Laboratories)的計算機科學研 究中心(Computing Sciences Research Center)開發的。第一版誕生于1970年--也 就是在貝爾實驗室(Bell Labs)推出Multics項目不久。在UNIX廣受歡迎的功能中,有 許多便是來自Multics操作系統。其中最著名的有:將設備視為文件,以及特意不將命 令解釋器(command interpreter)或Shell整合到操作系統中。更完整的歷史信息可在 http://www.bell-labs.com/history/unix找到。
由于UNIX是在面向研究的環境下開發的,因而沒有必須生產或者銷售成本的盈利壓力。 這使其具有下列優勢:
×    系統由用戶自行開發。他們使用這套系統來解決每天所遇到的計算問題。
×    研究人員可以不受拘束地進行試驗,必要時也可任意變換程序。由于用戶群不大,      若程序有必要整個重寫,多半也不會太難。由于用戶即為開發人員,發現問題時便      能隨即修正,有地方需要加強時,也可以馬上就做。            UNIX已歷經數個版本,各個版本以字母V加上數字作為簡稱,如V6、V7,等等。      (正式名稱則是遵循發行的使用手冊的修訂次數編號來命名,例如Frist Edition、      Second Edition,等等。這兩種名稱的對應其實很直接:V6=Sixth Edition、V7=      Seventh Edition。和大多數有經驗的UNIX程序員一樣,這兩種命名方式我們都會      用到)。影響最深遠的UNIX系統是1979年發行的第7版(Seventh Edition),但      是在最初的幾年,它僅用于學術教育機構領域。值得一提的是:第7版的系統同      時提出了 awk 與 Bourne Shell,這兩者是POSIX Shell的基礎,同時,第一本討      論UNIX的書也在此誕生。
×    貝爾實驗室的研究人員都是計算機科學家。他們所設計的系統不單單是自己使用,      還要分享給同事--這些人一樣也是計算機科學家。因此,衍生出“務實(no      nonsense)”的設計模式:程序會執行你所賦予的任務,但不會跟你說話,也不會問      一堆“你確定嗎?”之類的問題。
×    除了精益求精,在設計與問題解決上,他們也不斷地追求“優雅“(elegance)。關      于“優雅”有一個切貼的定義:簡單就是力量(power cloaked in simplicity)。      貝爾實驗室自由的環境,所早就的不僅是一個可用的系統,也是一個優雅的系統。
當然,自由同樣也帶來了一些缺點。當UNIX流傳至開發環境以外的地方,這些問題也 逐一浮現:
×    工具程序之間存在許多不一致的地方。例如,同樣的選項字母,在不同的程序之間有      完全不一樣的定義;或是相同的工作卻需要指定不同的選項字母。此外,正則表達      式的語法在不同程序之間用法類似,卻又不完全一樣,易產生混淆--這種情況      其實可以避免。(直至正則表達式的重要性受到認可,其模式匹配機制才得以收錄      在標准程序庫中。)
×    諸多工具程序具有缺陷,例如輸入行(input lines)的長度,或是可打開的文件個      數,等等。(現行的系統多半已經修正這些缺陷。)
×    有時程序并未經過徹底測試,這使得它們在執行的時候一不小心就會遭到破壞,這      可能會導致核心轉儲(core dumps),令用戶不知所措。幸好,現行的UNIX      系統極少會面臨這樣的問題。
×    系統的文檔盡管大致上內容完備,但通常極為簡單。使得用戶在學習時很難找到所      需要的信息。
最初的UNIX機器(Digital Equipment Corporation PDP-11s)不能運行大型程序。要 完成復雜的工作,得先將它分割成更小的工作,再用程序來完成這些更小的工作。某些 常見的工作(從數據行中提取某些字段、替換文本,等等)也常見與許多大型項目,最 後就成了標准工具。人們認為這種自然而然的結果是件好事:由于缺乏大型的解決空間, 因而產生了更小、更簡單、更專用的程序。
許多人在UNIX的使用上采用半獨立的工作方式,重復套用彼此間的程序。由于版本之 間的差异,而且不需要標准化,導致許多日常工具程序的發展日漸分歧。舉例來說,grep 在某系統裏使用-i來表示“查找時乎略大小寫”,但在另一個系統中,卻使用-y來代 表同樣的事!無獨有偶,這種怪事也發生在許多工具程序上。還有,一些常用的小程序 可能會取相同的名字,針對某個UNIX版本所編寫的Shell程序,不經修改可能無法在 另一個版本上執行。
最後,對日常標准工具組與選項的需求終于明朗化,POSIX標准即為最後的結果。現行 標准IEEE Std. 1003.1-2004包含了C的庫層級的主題,還有Shell語言與系統工具機槍 選項。
好消息是,在這些標准上所做的努力有了回報。現在的商用UNIX系統,以及可免費使 用的同類型產品,例如GNU/Linux 與BSD衍生系統,都兼容POSIX。這樣一來,學習 UNIX變得更容易,編寫可移植的Shell腳本也成為可能。
值得注意的是:POSIX并非UNIX標准化的唯一成果,POSIX之外仍有其他標准。例 如,歐洲計算機制造商協會自行發起了一套名為X/Open的標准。其中最受歡迎的是1988 年首度出現的XPG4(X/Open Portability Guide, Fourth Edition).另外還有XPG5,其 更廣為人知的名稱為UNIX98標准,或Single UNIX Specification.XPG5很大程度上 把POSIX納入為一個子集,同樣深具影響力。
XPG標准在措詞上可能不後嚴謹,但其內容卻較為廣泛。其目標是將現存于UNIX系統 上實際用到的各種功能正式生成文檔。(POSIX的目的在于建立一套正式的標准,讓從 頭開始的實踐者有指導方針可以套用--即便是在非UNIX的平台上。因此,許多 UNIX系統上常見的功能,一開始就排除在POSIX標准之外)。2001 POSIX標准由于納 入了X/Open System Interface Extension(XSI)而有了雙重身份,也叫做XPG6,這 是它首度正式擴張POSIX版圖。此文檔的特色在于:讓系統不只兼容POSIX,也兼容 于XSI。所以,當你在編寫工具或應用程序時,必須參考的正式文件只有一份(就叫做 Single UNIX Standard)。

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载