看板 Soft_Job 關於我們 聯絡資訊
@書名: The Art of Unix Programming(Unix編程藝術) @書本類型: 簡、英 @購買時間: 一個禮拜前 @購買地點:台北光華大享書局 @連結: http://www.tenlong.com.tw/items/0131429019?item_id=19757 @入手方式: 購買 @為什麼會買這本書? 便宜又據說是經典 @讀完有任何感想? 技術細節小弟我就不獻醜了,板上玩*nix玩很深的高手很多; 所以我就只說一些比較「屁」一點的東西。 "Those who don't know UNIX are condemned to reinvent it, poorly." (不懂Unix的人註定要重新製作一個,而且是跛腳版本的。) Henry Spencer ,1987 Nov. on Usenet 開卷第一章的第一句話就是這玩意,不用說馬上惹毛了一海票人。 "Joel on Software"的那位Joel大叔就曾經在不少文章裡面開砲過, 覺得Unix的很多擁護者所秉持的根本只是另一種沙文思想。 其中打的最大力的,莫過於這本書的7.3.3節裡面所提及、視線程(Thread)為原罪的思想、 作者也附上了叫做"Why threads are bad idea"(為什麼線程是餿主意)這本書作為引證。 相較於Windows NT跟其他完全支援 進程/線程模型 的核心; *nix雖然在POSIX裡建立起了線程模型(即著名的Pthread), 但是很多老一派的*nix coder,其實還是偏好透過IPC來進行操作。 而Linux更是一種極端,以輕量化進程(Lightweighted Process)來實作線程。 但是就實際意義上來說,兩著的目的其實是一樣的; 就好像語言戰爭一樣,「宗教意義」遠大於技術問題。 而Joel開砲歸開砲,他也承認很多Unix的設計哲學是值得借鏡的。 譬如說KISS - - Keep It Simple & Stupid. 在這裡作者提到*nix很注重兩點- -「緊湊性」與「正交性」。 「緊湊性」這點其實就是指工具程式本身需簡單、易懂、好用; 作者在這裡也提供了一個他認為很實在的檢驗方式- - 「能不能只背七個參數,就發揮這個工具的99%功能。」 Gcc就是個很直接的例子。 我剛開始在Linux上寫C時, 只會下gcc -o output input.c, 而且就這樣活得好好的搞了一年多, 才因為要研究elf結構跟nasm,而去man它(看它提供的幫助文件)。 top這個拿來看些進程資訊的工具也非常簡單易用。 看到某個程序當掉了,直接按k就可以送出SIGKIL去終結它。 還有make這個工具,就相當於windows底下的InstallShield。 *nix的Coder在寫好程式的同時,如果想發佈給別人,就必須把makefile寫好, 使用者基本上只需要下./configure 再make,make install便萬事搞定。 「正交性」這點,則是指程式盡量作功能的分立最大化,而不會互相干擾。 舉例而言,如果使用了*nix的open() sys call, 我們打開檔案後就可以理所當然的進行寫入, 使用者不用進行額外的鎖定。 其他特性的話,包括萬物皆文件(*)這個特點,如: /proc/cpuinfo 這個「檔案」包含了cpu幾乎所有的相關資訊 /proc/meminfo 是記憶體的狀況 /proc/mount 是目前掛載上的檔案系統有哪些 而他們都可以用萬能的標準輸出工具- -cat來將這些東西輸出成文字檔,供人查看。 很多*nix下好用的系統管理工具,也都是這些「文件」結合一些工具的再包裝, 而這點正也是*nix很重要的「最大程度重複利用」的哲學。 (*其實有例外,bind,accept......這些來自BSD Socket的比較特殊) 言而總之,*nix很多的地方是值得學習、加以利用的, 即便不是*nix使用者,其實也可以試著讀讀看,並將它用在其他的地方。 就像Windows在後來也提供了基於Windows自身System Call的Interix。 而這本《The Art of Unix Programming》則是系統化整理的集大成者, 有興趣的真的可以買回去翻一翻(拜託天瓏別倒啊QAQ) @覺得買得有價值嗎? Yes/No yes (It depends.) @如果給一到五顆星,你給幾顆? (*****) **** + * * (1/2) (註:如果要批評請就事論事,請勿出現人身攻擊。) 我剛剛對著上一行按dd(掩面) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 119.14.184.91 ※ 編輯: snaketsai 來自: 119.14.184.91 (09/09 00:40) ※ 編輯: snaketsai 來自: 119.14.184.91 (09/09 00:50)
dreamroyc:幸好你不是一直打,然後最後打gg=G 09/09 01:06
snaketsai:Orz...晚點來縮排一下 09/09 02:47
saxontai:天瓏生意不錯,不用擔心 09/09 08:35
joyfulpizza:應該擔心天瓏獨霸市場吧... 09/10 20:59
snaketsai:益大我之前有去逛~新竹書耕我也很常去((儒林書店...嘆 09/10 22:17
iman00b:大推你用心講解,我當年KISS觀念也是看這本書學到的,好書 09/12 03:29