ISBN: 9786263335110
出版日期: 2023-07-17
作者: Frank Vasquez,Chris Simmonds
譯者: 錢亞宏
裝訂: 平裝.單色印刷.552頁.23.
精通嵌入式Linux程式設計(第三版)(上)
Mastering Embedded Linux Programming - Third Edition
首版熱銷數千本,佳評如潮!
理解嵌入式Linux的必備之書!
《Mastering Embedded Linux Programming》的最新加強版
我們日常生活中的許多電子裝置,都可以看見嵌入式Linux系統的蹤影:智慧型電視、Wi-Fi路由器、工業控制器及各種測試設備,所有這些裝置的核心都是Linux。Linux作業系統可以說是當今物聯網(IoT)的關鍵基礎技術之一。
本書將帶領你遍覽開發週期的每個環節,並深入環節中的每個階段,說明階段中的元件以及可利用的工具。從工具鏈、啟動載入器、Linux內核等基礎知識入手,逐步探索如何建立一個根目錄檔案系統,並學習使用Buildroot與Yocto Project這兩款在開發社群中最常見的組建系統,加速並自動化你的開發流程。
在此基礎之上,我們將一同探討如何妥善運用NAND/NOR以及管理型eMMC的快閃記憶體特性,以便延長裝置的使用壽命與建立可靠的線上更新機制。我們也會探討嵌入式Linux程式設計的種種議題,像是如何從應用程式存取硬體、如何開發多執行緒的程式、如何有效率地管理記憶體空間等。最後,我們將示範如何針對應用程式與內核進行除錯。我們將一起學習perf、Ftrace、LTTng、BPF等工具的使用方式,了解針對應用程式與內核進行剖析和追蹤的方法,迅速找到系統的效能瓶頸。
讀完本書,我們將能夠駕馭Linux系統,隨心所欲創造出靈活又穩健的嵌入式裝置。
本書特色
・利用Yocto Project與Buildroot建立嵌入式Linux系統
・處理組建過程中BitBake的異常問題,了解Yocto的組成與工作流程
・使用Mender或balena建立既安全又可靠的IoT裝置更新機制
・讀懂電路圖、修改硬體結構樹、熟悉針腳擴充板(breakout board)的焊錫作業,以此連接週邊裝置,並利用邏輯分析儀探查問題原因,快速打造出產品原型
・不用編寫內核驅動程式也可以和硬體互動
・利用BusyBox runit啟動系統常駐服務並進行監控
・透過GDB對裝置進行遠端除錯,利用perf、Ftrace、eBPF、Callgrind等工具量測系統效能
・上冊包含本書前15章,下冊包含第16章到第21章
作者簡介
Frank Vasquez,Chris Simmonds
作者簡介
Frank Vasquez
Frank Vasquez是一名專精於消費性電子產品的獨立軟體顧問。尤其在嵌入式Linux系統的設計與開發上,有著超過10多年的經驗。這些經驗中包括了機架式的DSP音訊伺服器、水下手持聲納攝影機,以及消費性IoT熱點裝置等無數裝置。而在成為一名嵌入式Linux工程師之前,Frank曾經是IBM公司的一名DB2資料庫內核開發人員。他如今生活在美國矽谷。
Chris Simmonds
Chris Simmonds出身於英格蘭南部。他是一名軟體顧問與指導者,擁有20多年的「嵌入式系統開源軟體」的設計與開發經驗。同時,他也是2net Ltd.公司的創辦人與主要顧問,在嵌入式Linux、Linux裝置驅動程式以及Android平台開發上,提供專業的訓練與顧問服務。他為許多「嵌入式領域」知名的大型公司訓練過無數軟體工程師,這些公司包括ARM、Qualcomm、Intel、Ericsson以及General Dynamics。他也是各種開源軟體社群與嵌入式技術大會的常客,其中包括

Zone | Order Total (RM) | Delivery Fee (RM) |
---|---|---|
West Malaysia | Flat Rate | 6.00 |
Zone | Items/Weight | Delivery Fee (RM) |
---|---|---|
East Malaysia | First 1.00 kg | 13.00 |
Extra 1.00 kg | 5.00 | |
Singapore | First 1.00 kg | 25.00 |
Extra 1.00 kg | 5.00 | |
Australia, New Zealand | First 1.00 kg | 159.77 |
Extra 0.50 kg | 52.65 | |
Austria, Denmark, Finland, Ireland, Switzerland, Russia | First 1.00 kg | 157.78 |
Extra 0.50 kg | 34.31 | |
Brunei, Cambodia, Laos, Mongolia | First 1.00 kg | 175.10 |
Extra 0.50 kg | 87.14 | |
Belgium,France, Germany, Netherlands, Spain, U.K | First 1.00 kg | 150.94 |
Extra 0.50 kg | 30.46 | |
China | First 1.00 kg | 96.44 |
Extra 0.50 kg | 25.35 | |
Bangladesh, Brazil, Iraq, Pakistan, Qatar, S.Arabia, UAE, Sri Lanka | First 1.00 kg | 118.52 |
Extra 0.50 kg | 24.96 | |
South Africa | First 1.00 kg | 118.52 |
Extra 0.50 kg | 24.96 | |
Philippines | First 1.00 kg | 91.42 |
Extra 0.50 kg | 15.29 | |
Canada, United States, Mexico | First 1.00 kg | 162.58 |
Extra 0.50 kg | 35.90 | |
Hong Kong | First 1.00 kg | 80.63 |
Extra 0.50 kg | 29.06 | |
India | First 1.00 kg | 113.30 |
Extra 0.50 kg | 22.28 | |
Indonesia | First 1.00 kg | 107.35 |
Extra 0.50 kg | 24.87 | |
Japan | First 1.00 kg | 112.97 |
Extra 0.50 kg | 35.03 | |
Macau | First 1.00 kg | 92.93 |
Extra 0.50 kg | 13.82 | |
Singapore | First 1.00 kg | 74.75 |
Extra 0.50 kg | 21.49 | |
Taiwan | First 1.00 kg | 94.42 |
Extra 0.50 kg | 34.76 | |
Thailand | First 1.00 kg | 94.10 |
Extra 0.50 kg | 28.25 | |
Vietnam | First 1.00 kg | 98.94 |
Extra 0.50 kg | 14.34 |