星期一, 8月 20, 2007

Virtual address和virtual memory

學os這門學問真的要從最底層開始了解起,包括硬體和軟體。以前看恐龍本在看到memory management跟virtual memory這兩章之後,突然會覺得學了很多東西突然不踏實起來,而且有時候不僅是不踏實,甚至會覺得很混淆。
特別是cache、write buffer、TLB、mmu、physical memoyy、logical memory…等名詞突然放在一起的時候。所以以前大學的時候碰到考試就是把圖背起來,然後把一些經典考題練習的滾瓜爛熟,去考試都還算ok。
直到開始工作後,玩了一些架構(mips跟arm)後,這些觀念才比較清楚。
簡言之,最單純的系統就是cpu只看的到physical address的系統,缺點就是每一個process在memory的address都要算的很精準,彼此不會overlap,不然系統可能會crash。為了避免這種缺點,有人認為可以在physical address之外另外建立一個虛擬的address,然後程式在cpu執行的時候只認這個address,可以把這個address叫作logical address或是virtual address。這樣一來,就需要有一個角色來轉換這兩種address,把virtual address轉換成physical address或是把physical address轉換成virtual address。這個角色通常是一個硬體(我還沒看過軟體的)的relocation register。這樣一來,我們還是可以像之前所提的那個最單純的系統一樣,在physical address放了不同process彼此不會互相影響,但是cpu在執行這三個process時,他們可能都有相同的virtual address(但是每個process都有不同的physical address,比如說是:0x604000、0x804000、0xA04000),比如說是0x004000。這一來就會有一個好處,在執行一個process時,cpu跟本就不知道其他process是在physical address space的哪個位置。這樣對其他未被執行,但存在在physical memory裡面的process反而是一種保護。因為你不去查relocation register的值,跟本就不知道其他process實際的physical address是什麼。
這就是virtual address的由來,因為多了一個virtual address space對process的管理有一些額外的好處。
至於virtual memory,則是一種技術,讓你的process可以超過你所擁有的的實際記憶體大小。

需要file system嗎?

一個file system對user來說是除了gui外,最接近整個系統的地方。但是,對一個embedded system來說,通常只會有一個user(可能就是RD本身),或跟本就沒有user。因此,對embedded system來說,可能跟本就不需要一個file system來管理「多個」檔案,來「隨時建立」建立檔案,來設定不同檔案的權限…等等。它可能僅需要預先規畫好數個固定用途的檔案,而且寫死在程式裡面。這些固定用途的檔案可能是一些系統參數、系統憑證…等資訊。
這樣看來,一個embedded system,可能只需要一個簡單的file system,甚至不需要file system。
如果從這個角度來看,似乎許多unix-like的系統,都不太適合拿來當embedded system的os。
因為很多從multi-user的角度來設計的地方,用在embedded system上,似乎都顯得多餘了。

星期五, 8月 17, 2007

驚奇的演出

這算是第三次正式上台的表演吧。有了上次公演的經驗,這次第一首歌(單純的信託)因為已經表演過了,而且主要也不是我唱,所以我自認為表現的很好,也比較沒有害怕的感覺。反正就是專心把和弦彈出來就是了。
至於第二首歌(起初的愛),還是免不了有一點生澀,因為練習的還不夠。比較特別的是跟施孝榮大哥的合作。他是快到節目開始的時候才來,而且在正式演出前,我們還沒有一起合過。所以也不知道兩個人要怎麼一起來唱這首歌。
到我們要開始上台表演前,我們大概只有不到半小時的時間一起討論,前前後後也就是合過兩次左右就上台去了。
這不合還好,一合之後我就嚇到了,這個時候才知道專業跟業餘的差別,我們大概才把和弦講完,開始合奏的時候,他已經可以配上伴奏了。真是~太強了啦~~
我覺得我還在驚訝於施大哥專業的實力時,就已經上台了。
Anyway,這真的是一次驚奇的演出!
能夠跟施弟兄一起唱馬弟兄的歌曲,Praise Lord!
看來我這種難登大雅之堂的歌聲和技術,還有的練習咧!

星期四, 8月 09, 2007

青職問題一籮筐-家電篇(修正版)

買房子不僅僅是買房子。還要買房子裡面的東西。
現在租別人的房子沒什麼感覺,因為會用到的家具大概房東都有預備了。
最近在想買了房子以後還有什麼東西要買,這不想還好,這一想就覺得怎麼這麼多東西要花錢…
如果分成食衣住行來看,我們需要什麼家電,大概是這樣看:
食:
都是一些廚房用品,包括炊具跟碗盤。瓦斯爐:一萬。烘碗機:五千(也許不需要)。洗碗機:五萬(是我想太多了…)。調理機(馬力強的果汁機,已經有了)。 烤箱(已經有人送了~感謝主)。麵包機(已有)。抽油煙機:一萬(這個很重要!)。碗盤(已經有人送了~感謝主)。鍋具(不齊,可能還要買快鍋、炒鍋、大 湯鍋…):算個二萬好了。還有冰箱:用480升來算大概是五萬。
衣:
要買個洗衣機,想買好一點的,買個滾筒式的,日韓系的大概二~三萬,歐美系的好像要四~五萬,我原本還以為不到一萬就解決了,沒想到…是我太天真了。
其他的應該是一些雜項吧~像是衣架、曬衣架…之類的。
住:(主要是空調)
以冷氣為例~大多是用分離式冷氣,因為窗型的實在滿吵的。至於要裝哪一種的,還要考慮到房子的格局,跟大小。以3 房兩廳為例,每一間房間加客廳都要裝冷氣如果買兩台一對二的,這樣十萬就沒了。
吸塵器+電扇:3萬。熱水器:一萬五。
沙發、桌子之類的就歸在家具類了。
行:
行的話應該不在家裡面,不予計算…
整個算一下大概是34萬,可以全部買齊,而且是最高級。如果扣掉一些可能不需要的東西,大概是23.5萬,所以整個購屋成本裡面,家電可能將近佔十分之一的比例,不能小看啊!
少算了這一塊可能買了房子之後有一年要睡地版吧…

星期三, 8月 08, 2007

MINIX與我

基本上,我是LINUX開始紅了之後,才認識MINIX的。因為在讀LINUX發跡的過程中,一定會提到LINUX最早是在MINIX上開發的。是到了某一個時間之後,LINUX才自己獨立。而不用寄宿於MINIX上。
基於MINIX的設計精神-「Simplicity is beautiful」,在摒除效能至上,程式碼精簡這些有礙學習的因素外,MINIX的出現的確對CS的莘莘學子來說是一大福音。畢竟,在學校上的os多半只是理論跟原則,沒有自己親自設計、撰寫一個系統,老實說,還真的搞不太清楚,老師講的這些東西到底要怎麼用。
離開學校數年後,有些機會跟一些學弟妹聊聊,發現現在的狀況好像還是差不多,不知道是不是因為這樣教學環境的關系,台灣cs畢業的學生,對os一知半解的情況下,也很難寫出幾個有名的os。
過了數年後的今天,由於對OS的熱誠依然不減的情況下,選擇MINIX來當作一個入門的地方實在是一件令人興奮的事。畢竟,Linus也是走過相同的一段路呢!

星期二, 8月 07, 2007

The MINIX book

Tanenbaum這個作者,是我在準備考研究所時,在補習班上課的時候聽老師提到的。那個時候才知道原來os不只有恐龍書之外,還有一本不錯的書叫作「Modern Operating Systems」,作者就是Tanenbaum。後來我才知道,他寫的書大多是美國大學院校排行榜上有名的教科書。後來,陸續的的買了「Computer Networks,4th」(上電腦網路這門課常用的教科書)跟「Structured Computer Organization, 5th」(計組常用的教科書,其競爭對手就是台灣常用的白算盤本了)。
剛開始的時候,我實在是搞不清楚,為什麼在美國教科書排行榜上常常是屬一屬二的教科書,怎麼在台灣卻有點名不見經傳的感覺。
後來在我開始讀他的書的時候,我大概就有點了解了。
(為什麼這樣講,其實買書前我是大概看了看,覺得內容還滿不錯的就買了。就好像Knuth的書一樣,先不用管看不看的懂,先買一套回家在說。)
我發現我的英文單字量是一個很大的問題!!
因為,他的英文語句的變化滿大的,用的詞彙又很豐富,對美國人來說,大概會認為這個教授用詞活潑,很貼近他們,但我們這些外國佬就看的滿吃力了。其實,讀原文書也好幾年了,也有好些書是不太需要查字典了。沒想到碰上Tanenbaum之後,我就投降了…
以我最近開始讀的The MINIX book為例,才讀第一章的導論而已,就有將近四成的時間在查字典跟揣摩語意。這大大降低閱讀的速度。我在想,如果大學的時候用這種書來當教科書,那可能會有一票人放棄os…
Anyway,我不認為這個「缺點」會影響這本書的價值。
畢竟,以os的「實作」來寫書的書在市場上實在是太少了。

閱讀

前一陣子,遠見雜誌作了一份調察,調察的結果大概是這樣:
四個成人裡面,有一個人是不看書的。
一個成人,一週閱讀的時間大概是3個多小時,看電視的時間接近17小時,上網是7個多小時。
對此,我不敢作任何評論,但是我很感謝主,從小就讓我培養了很好的閱讀習慣。
即使現在上班了,每天都還是有一到二小時的閱讀時間。

青職問題一籮筐-房事篇

結婚前也沒什麼特別歸畫要買什麼房子,心裡總有一個想法覺得那是很久遠的事,在加上剛入職場時,看了一些文章講到財產的配置,對買房子這種要花掉幾十年賺的錢的事,實在是興趣缺缺。
而且,剛成家時,手邊能用的錢實在是不多,不過還好我們租了一層公寓有自己的廚房,不常外食,而且加上分租給其他弟兄的關系,食、住的花費就沒這麼大了。
但隨著週圍的弟兄們一個接著一個的成家,跟我們住的單身弟兄也將在近日成家,還有三不五時,閃過「太晚懷孕將導致胎兒xx」的新聞,將購屋的念頭成功地往上拉了好幾個順位。
因為很多人都不想在懷孕的時候搬家。而且,對於我們現在住的公寓實在有些許的不滿,包括格局的配置,東西的擺設…等等。但是畢竟不是自己的房子,有些地方亂,也只能讓它亂了,因為不是自己的房子,所以也沒辦法作整體的歸畫,想新購一些家具,又怕日後搬家,又要在搞一次,勞民傷財,實在是划不來。
但是開始找房子後,考慮的東西就又更多了。
首先是價格,當然最重要的也是價格。
我不想說太多,總之,我們想買的房子,買不起!我們有的錢,只能買到我們不想買的房子。
在來,是格局、樓層、地點、週邊環境…等等。總之,考慮的東西很多啦~
無論如何,還是擺在禱告中。看主怎麼開路。