近閑暇之余翻出大學(xué)時(shí)期操作系統(tǒng)課本,以系統(tǒng)架構(gòu)的角度重新學(xué)習(xí)操作系統(tǒng)。

  當(dāng)不再把操作系統(tǒng)當(dāng)作技術(shù)和知識(shí)點(diǎn)來(lái)學(xué)習(xí)的時(shí)候,完全有了另外一種認(rèn)識(shí),以前感覺(jué)操作系統(tǒng)是個(gè)集各種高端技術(shù)的領(lǐng)域,是那些技術(shù)大牛搞的領(lǐng)域,現(xiàn)在的感覺(jué)是操作系統(tǒng)實(shí)際上是個(gè)管理制度的集合,像一個(gè)公司甚至是社會(huì),為了讓這個(gè)公司運(yùn)行正常,管理者想出各種辦法制定了各種政策,很多政策的制定并不是天才們的憑空發(fā)明,而是在被各種問(wèn)題給“逼”出來(lái)的。操作系統(tǒng)的發(fā)展史說(shuō)明了這一點(diǎn),操作系統(tǒng)的發(fā)展是在硬件不斷發(fā)展和人的需求不斷升級(jí)給逼出來(lái)的。

  學(xué)習(xí)操作系統(tǒng)先好不要陷入到技術(shù)細(xì)節(jié)里,而是站在設(shè)計(jì)者的角度,想想為什么要做出如此設(shè)計(jì),是遇到了什么問(wèn)題。比如關(guān)于鎖的設(shè)計(jì),實(shí)際上是當(dāng)時(shí)需要一個(gè)玩意來(lái)保證一組操作能不受其他操作的打擾,而要設(shè)計(jì)鎖需要有原子性操作的底層保證和對(duì)鎖的合理使用,這些東西當(dāng)然基于各種“高端”技術(shù),但透過(guò)技術(shù)細(xì)節(jié),發(fā)現(xiàn)只是為了實(shí)現(xiàn)一個(gè)約定的制度。再比如各種進(jìn)程調(diào)度算法,實(shí)際上是需要一個(gè)規(guī)則來(lái)公平地有效地把CPU分配給各個(gè)需要資源的進(jìn)程,這其實(shí)是個(gè)各行各業(yè)都會(huì)面臨的共性問(wèn)題,而各種調(diào)度算法也在其他領(lǐng)域能找到原型,基于的是一些共性的原理,只是實(shí)現(xiàn)方式不同罷了。

  因此,操作系統(tǒng)的精髓在于制定的各種制度和原則,學(xué)習(xí)操作系統(tǒng)也應(yīng)該重點(diǎn)學(xué)習(xí)這些東西。對(duì)于架構(gòu)師而言,操作系統(tǒng)也折射出一個(gè)道理,的系統(tǒng)不是高端技術(shù)的堆砌,而是對(duì)特定問(wèn)題采取有效合適的制度和實(shí)現(xiàn)。