系統設計黃金法則 簡單之美

2021-06-20 11:24:57 字數 1768 閱讀 2532

【注:本文已發表在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設計的工 作頻率是不固定的,而是和設計本身的延遲緊密相連 在實際設計中,使用最小的面積設計出最高的速度是每...