【注:本文已發表在2023年第5期《中國計算機學會通訊》。】
最近多次看到系統設計與實現的文章與討論,再加上以前讀過的其他資料以及自己的一些實踐教訓,讓我覺得應該把這些資料彙總整理一下。如果
要從討論不同系統的眾多資料中總結一條**法則的話,那只有乙個詞——「簡單」;如果用乙個英語單詞來表達的話,那就是——kiss (keep it ******, stupid!)。
麻省理工方法與紐澤西方法【1】【2】
這個觀點來自一篇很經典的文章,
richard gabriel
在1989
年寫的文章中的一節「
the rise of 'worse is better'
」。說來慚愧,我是直到
2023年5
月在ibm t.j. watson
實驗室聽報告才第一次聽說,當時便印象深刻。後來上普林斯頓的高階系統設計課程,發現這篇文章也在
reading list
中,要求所有學生閱讀然後在課上討論。 「
the rise of 'worse is better
」對比了以
lisp
系統為代表的麻省理工方法和以
unix/c
為代表的紐澤西(貝爾實驗室)方法。
gabriel
發現相比於
lisp/clos
系統完美的設計,
unix/c
只是一味追求實現簡單,但事實卻證明
unix/c
像終極計算機病毒那樣快速蔓延,奠定了今天計算機系統的基礎。
讓我們來看看這兩種不同的設計哲學。 1
)2)
如果覺得這種哲學描述太抽象的話,原文中有乙個關於
unix
中斷處理的例子,非常生動。一位
mit的教授一直困惱於
syscall
處理時間過長出現中斷時如何保護使用者程序某些狀態,從而讓使用者程序能繼續執行。他問紐澤西人,
unix
是怎麼處理這個問題。紐澤西人說,
unix
只支援大多數
syscall
處理時間較短的情況,如果時間太長出現中斷
syscall
不能完成,那就會返回乙個錯誤碼,讓使用者重新呼叫
syscall
。但mit
人不喜歡這個解決方案,因為這不是「正確的做法」。
unix/c
開發於1970
年前後,那時離2023年剛推出的
ibm system/360
沒幾年,軟體剛擺脫硬體束縛,能移植到不同的機器上,從而變成了一種可單獨**的產品。就是這樣的乙個軟體產業的萌芽期,
來自網際網路巨頭們的教訓【3】
這是最近看到的一篇文章,作者從
high scalability blog
上總結了幾大網際網路在設計後台資料中心所遇到的教訓(這篇文章總結的非常好,強烈推薦大家讀一下)。文章開頭就總結了
七個網際網路公司(
google, youtube, twitter, amazon, ebay, facebook and instagram
)都提到的6點教訓:
系統設計黃金法則 簡單之美
注 本文已發表在2012年第5期 中國計算機學會通訊 最近多次看到系統設計與實現的文章與討論,再加上以前讀過的其他資料以及自己的一些實踐教訓,讓我覺得應該把這些資料彙總整理一下。如果 要從討論不同系統的眾多資料中總結一條 法則的話,那只有乙個詞 簡單 如果用乙個英語單詞來表達的話,那就是 kiss ...
系統設計黃金法則 簡單之美
注 本文已發表在2012年第5期 中國計算機學會通訊 要從討論不同系統的眾多資料中總結一條 法則的話,那只有乙個詞 簡單 如果用乙個英語單詞來表達的話,那就是 kiss keep it stupid 麻省理工方法與紐澤西方法 1 2 這個觀點來自一篇很經典的文章,richard gabriel 在1...
FPGA系統設計三大黃金法則
fpga系統設計三大 法則 一.面積與速度的平衡互換原則 這裡的面積指的是fpga的晶元資源,包括邏輯資源和i o資源等 這裡的速度指的是fpga工作的最高頻率 和dsp或者arm不同,fpga設計的工 作頻率是不固定的,而是和設計本身的延遲緊密相連 在實際設計中,使用最小的面積設計出最高的速度是每...