天天看點

聊聊作業系統設計

我關注作業系統已經好長時間了,其實這個領域有很多新鮮事,并不像人們認為的那樣沒有做應用有趣,我甚至認為設計作業系統是一種藝術,别看就那幾項功能,它的設計難度要遠高于一般的應用。

我認為設計作業系統要将作業系統作為一個主體看待而不是将它看做被設計的對象,設計者要認為自己設計的東西是活的。最終是作業系統來管理一切事物而不是設計作業系統的人,是以不要把作業系統當做客體,一定把它作為主體。前面的兩篇文章談到了linux多任務和多使用者的一些要點,其實是作業系統的設計者設計出這一切了嗎?不是,而是在作業系統被定位後必然的結果,比如unix/linux最開始就不是讓普通使用者用的,當然linux可能是,但是當時除了unix又有誰可以模仿呢?既然不是為普通使用者設計的,那麼就可以按照簡潔,統一的原則來設計了,因為隻要不是設計使用者接口都是可以找到很藝術的方案的,畢竟使用者是善變的,是難纏的。幾個大的原則可以讓unix哲學曆經幾十年依然閃亮,可見當時設計者的才華。在一款作業系統被設計出來後,一定要站在此作業系統的立場上看一下程序,記憶體,檔案等等作業系統管理的對象,将靈魂注入作品,這個作品就活了,unix就包含着設計者的靈魂。

另一個要點就是尋找一個最簡單的基本原則,比如狹義相對論的基本原則也就是那幾點。在工程學上也是如此,往往設計得好的基本原則可以帶來很多的好處,你可以看到unix/linux的fork模型多麼簡單,但是它們的分時排程性能和程序管理性能是多麼得好,第一,越簡單越好;其次,越直覺越好,直覺是給人看的,但是人做的事不一定就是對的,簡單才是這個世界的本質。

 本文轉自 dog250 51CTO部落格,原文連結:http://blog.51cto.com/dog250/1274153

繼續閱讀