2017年3月22日 星期三

書評: Linux 嵌入式實時應用開發實戰

本著 Jobs 的名言「Stay hungry. Stay foolish.」,只要是 Embedded Linux 的新書我都會拿起來翻翻。


想說這本書都出到第三版了,應該不算太雷,膠膜都沒拆就付錢了。

但是這本翻來翻去就是搔不到癢處,簡單來說,這本書比較像是給老闆看的,讓老闆知道 Embedded Linux 人材需要具備哪些技能,知道怎樣出考題比較好...

最主要的問題在哪?在一本暢銷書「萬萬沒想到」裡有一章「練習一萬小時成天才?」提到了學習的四個要訣:
  1. 只在"學習區"練習
  2. 把要訓練的內容分成有針對性的小塊,對每一小塊進行重複練習
  3. 在整個練習過程中,隨時能獲得有效的反饋
  4. 練習時注意力必須高度集中
各位很快就看出來問題出在「3. 在整個練習過程中,隨時能獲得有效的反饋」,在一般的程式設計書籍當中,要獲得快速有效的反饋很容易,安裝完開發環境就可以開始做範例,寫習題。

Embedded Linux 就不容易,筆者歸納出幾點原因:
  • 硬體的選擇(Raspberry Pi?BeagleBone Black?...)
  • 要安裝完 toolchain、學會編譯 kernel、bootloader 才能寫第一隻程式嗎?
所以 RPi 與 BBB 為何一個直接提供 SD OS image、一個直接在 eMMC 上預載 debian 與 gcc,就是要讓學習者取得快速反饋,所以前面介紹的那本書在第二章就教你如何點亮 LED,反而把安裝 toolchain 等知識放到後面的章節。

這就解釋了為何很多人覺得 Embedded Linux 很難入門了,因為很多相關書籍提供的「反饋」少之又少,尤其是一些講 Kernel 的書,看完除了讓讀者覺得高大上外什麼也沒留下。就連那本號稱聖經的 Embedded Linux Primer,筆者也是一直到拿起公司的 Kernel 照著追蹤後才比較有感覺。

這本書的問題也是一樣,提供的反饋少,明明是講 mini2440,中間又插花蜻蜓點水講了一下 x86 保護模式,簡直莫名其妙。筆者查了一下 mini2440 比 BBB, RPi 貴上至少 30-40% 以上,想要入手的人考慮一下自己的荷包吧。

本書最雷的地方是標題寫著大大的「REAL-TIME APPLICATION」,結果書中完全沒提到如何把 kernel 打上 real-time patch,也沒提到要如何把 Linux App 寫的比較 real-time。

這本書能出到第三版,唯一的合理解釋是 mini2440 的用戶把本書買回去當 quick guide 來用。如果你剛好碰上公司使用三爽 ARM SoC 又使用 2.6 kernel,可以買回去研究研究,記得再買塊 mini2440。

2 則留言:

  1. mini2440感覺是很老的東西了…

    回覆刪除
    回覆
    1. 這就是學費...不過很多公司內的2.6 kernel產品還是要繼續維護,多少有些剩餘價值

      刪除