嵌入式 Linux 系統開發:基於 Yocto Project 嵌入式Linux系统开发:基于Yocto Project

魯道夫 J. 斯特雷夫 (Rudolf J. Streif)

  • 出版商: 機械工業出版社
  • 出版日期: 2018-07-31
  • 定價: $594
  • 售價: $594
  • 貴賓價: 9.5$564
  • 語言: 簡體中文
  • 頁數: 351
  • 裝訂: 平裝
  • ISBN: 7111603826
  • ISBN-13: 9787111603825
  • 相關分類: Linux

下單後立即進貨 (4週~6週)

買這商品的人也買了...

商品描述

通過本書,你將會學習OpenEmbedded構建系統如何工作、如何編寫菜譜來構建你自己的軟件組件、如何使用和創建Yocto項目板支持包來支持不同的硬件平臺以及如何調試構建失敗。你將學習如何為應用開發構建軟件開發包以及如何為無縫的往返做開發並將它們和流行的Eclipse集成開發環境(IntegratedDevelopmentEnvironment,IDE)集成起來。

作者簡介

作者:(美)魯道夫·J.斯特雷夫
譯者:胥峰

胥峰
資深運維專家,有10年運維經驗,在業界頗具威望和影響力。
2011年加入盛大遊戲,工作至今,曾參與盛大遊戲多款大型端遊和手游的運維,
主導運維自動化平台的功能設計和實施。
通過公眾號“運維技術實踐”發布“網絡分析技術實踐”系列主題技術文章,引發萬人閱讀轉發。
擁有工信部認證高級信息系統項目管理師資格。

魯道夫·J.斯特雷夫(Rudolf J.Streif)
作為開發者和領導大型跨職能工程團隊的經理,有超過20年的軟件工程經驗,
目前是專門從事開源軟件技術和系統架構的獨立諮詢師。
他曾擔任Linux基金會的嵌入式解決方案主管,協調基金會在將Linux用於嵌入式系統方面的工作。
他開發了Linux基金會關於Yocto項目的培訓l課程,並且在企業和Linux基金會活動上以速成教程的方式講授了多次。
在2014年,魯道夫被《PC World》列為技術領域的50位最令人關注的人物之一

目錄大綱

譯者序

前言

致謝

第1章用於嵌入式系統的Linux 1 
1.1為什麼為嵌入式系統選擇Linux 1 
1.2嵌入式Linux形勢3 
1.2.1嵌入式Linux發行版3 
1.2.2嵌入式Linux開發工具4 
1.3定制Linux發行版—為什麼困難6 
1.4關於開源許可的幾句話8 
1.5組織、相關實體和標準9 
1.5.1 Linux基金會9 
1.5.2 Apache軟件基金會9 
1.5.3 Eclipse基金會9 
1.5.4 Linux標準基10 
1.5.5消費電子產品工作組10 
1.6總結11 
1.7參考文獻11 

第2章Yocto項目12 
2.1啟動第一個Yocto項目構建12 
2.1.1先決條件13 
2.1.2獲取Yocto項目工具14 
2.1.3設置構建主機15 
2.1.4配置構建環境16 
2.1.5啟動構建18 
2.1.6驗證構建結果19
2.1.7 Yocto項目構建器具19 
2.2 Yocto項目系列20 
2.3歷史概覽22 
2.3.1 OpenEmbedded 22 
2.3.2 BitBake 22 
2.3.3 Poky Linux 23 
2.3.4 Yocto項目23 
2.3.5 OpenEmbedded和Yocto項目的關係23 
2.4 Yocto項目術語24 
2.5總結25 
2.6參考文獻26 

第3章OpenEmbedded構建系統27 
3.1構建開源軟件包27 
3.1.1獲取28 
3.1.2解壓28 
3.1.3打補丁28 
3.1.4配置29 
3.1.5構建29 
3.1.6安裝29 
3.1.7打包30 
3.2 OpenEmbedded工作流30 
3.2.1元數據文件31 
3.2.2工作流過程步驟33 
3.3 OpenEmbedded構建系統架構35 
3.3.1構建系統結構36 
3.3.2構建環境結構39 
3.3.3元數據層結構41 
3.4總結44 
3.5參考文獻44

第4章BitBake構建引擎45 
4.1獲取和安裝BitBake 45 
4.1.1使用發布快照46 
4.1.2克隆BitBake開發倉庫46 
4.1.3構建和安裝BitBake 46 
4.2運行BitBake 46 
4.2.1 BitBake執行環境47 
4.2.2 BitBake命令行48 
4.3 BitBake元數據54 
4.4元數據語法55 
4.4.1註釋55 
4.4.2變量55 
4.4.3包含59 
4.4.4繼承60 
4.4.5可執行元數據61 
4.4.6元數據屬性66 
4.4 .7元數據名(鍵)擴展66 
4.5源下載66 
4.5.1使用Fetch類67 
4.5.2獲取器實現68 
4.5.3鏡像72 
4.6 HelloWorld—BitBake方式74 
4.7依賴處理77 
4.7.1配置77 
4.7. 2聲明依賴78 
4.7.3多個提供器79 
4.8版本選擇79 
4.9變體80 
4.10默認元數據80
4.10.1變量81 
4.10.2任務84 
4.11總結84 
4.12參考文獻85
 
第5章故障排除86 
5.1記日誌86 
5.1.1日誌文件87 
5.1.2使用記日誌語句90 
5.2任務執行92 
5.2.1執行特定任務93 
5.2.2任務腳本文件94 
5.3分析元數據94 
5.4開發shell 95 
5.5依賴性關係圖95 
5.6調試層97 
5.7總結98 

第6章Linux系統架構100 
6.1 Linux或者GNU/Linux?100 
6.2 Linux系統的剖析101 
6.3引導加載程序102 
6.3.1引導加載程序的角色102 
6.3.2 Linux引導加載程序103 
6.4內核106 
6.4.1主要Linux內核子系統107 
6.4.2 Linux內核啟動111 
6.5用戶空間112 
6.6總結113 
6.7參考文獻113 

第7章構建定制Linux發行版114 
7.1核心鏡像—?Linux發行版藍圖114
7.1.1通過本地配置來擴展核心鏡像117 
7.1.2用QEMU測試鏡像118 
7.1.3使用構建歷史驗證和比較鏡像119 
7.1.4用菜譜擴展核心鏡像120 
7.1.5鏡像特性120 
7.1.6包組122 
7.2從頭構建鏡像126 
7.3鏡像選項128 
7.3.1語言和區域128 
7.3.2包管理128 
7.3.3鏡像大小129 
7.3.4根文件系統類型130 
7.3.5用戶、組和密碼131 
7.3.6調整根文件系統132 
7.4發行版配置134 
7.4.1標準發行版策略134 
7.4.2 Poky發行版策略135 
7.4.3發行版特性140 
7.4.4系統管理器142 
7.4.5默認發行版設置143 
7.5外部層144 
7.6 Hob 145 
7.7總結147 

第8章軟件包菜譜148 
8.1菜譜佈局和慣例148 
8.1.1菜譜文件名149 
8.1.2菜譜佈局149 
8.1.3格式指導方針156 
8.2寫新菜譜157
8.2.1建立菜譜159 
8.2.2獲取源代碼159 
8.2.3解壓源代碼160 
8.2.4為源代碼打補丁161 
8.2.5增加許可信息161 
8.2.6配置源代碼162 
8.2.7編譯163 
8.2. 8安裝構建輸出164 
8.2.9設置系統服務165 
8.2.10打包構建輸出166 
8.2.11定制安裝腳本168 
8.2.12變體169 
8.3菜譜例子170 
8.3.1 C文件軟件包170 
8.3.2基於makefile的軟件包171 
8.3.3基於CMake的軟件包173 
8.3.4基於GNU Autotools的軟件包174 
8.3.5外部構建軟件包175 
8.4 devtool 175 
8.4.1使用devtool的往返開發176 
8.4.2用於現有菜譜的工作流179 
8.5總結180 
8.6參考文獻180 

第9章內核菜譜181 
9.1內核配置182 
9.1.1菜單配置182 
9.1.2配置片段184
9.2 內核