xxxx欧美丰满大屁股/性欧美极品xxxx欧美一区二区/男插女的下面免费视频夜色/美女视频在线一区二区三区

歡迎光臨本店     登錄 注冊   加入收藏
  •   
歡迎光臨清華大學出版社第三事業部!

此頁面上的內容需要較新版本的 Adobe Flash Player。

獲取 Adobe Flash Player

當前位置: 首頁 > 科技 > 計算機與網絡 > 嵌入式Linux軟件開發從入門到精通

瀏覽歷史

嵌入式Linux軟件開發從入門到精通

嵌入式Linux軟件開發從入門到精通

prev next

  • 商品貨號:20140827013
  • 所屬系列:Linux操作系統—程序設計
    商品重量:0克
    作者:呂雪峰,彭文波
    出版社:清華大學出版社
    圖書書號/ISBN:9787302370833
    出版日期:2014年9月
    開本:16
    圖書頁數:404
    圖書裝訂:平裝
    圖書規格:185mm×240mm
    版次:1-1
    印張:25.25
    字數:613千字
  • 上架時間:2014-08-27
    商品點擊數:1263
  • 定價:¥49.00元
    本店售價:¥49.00元
    注冊用戶:¥49.00元
    vip:¥46.55元
    黃金等級:¥44.10元
    用戶評價: comment rank 5
  • 商品總價:
  • 購買數量:

內容簡介:

商品附加資源

內容簡介 本書結合作者10多年的培訓和實踐經驗,通過簡明扼要的語言,以及實用的案例與方法,對嵌入式Linux應用開發中的關鍵技術點進行了深入淺出的講解。全書分為基礎篇、應用進階篇和實戰提高篇。 本書內容從最簡單的案例開始,始終保持實用、易懂的風格,每個章節都設置了實踐操作案例,能夠幫助讀者快速掌握嵌入式Linux應用軟件的開發技能。 本書主要面向對嵌入式Linux應用軟件開發感興趣的初學者,或需要進一步提升技能的開發者,也可作為高等院校計算機類、電子電氣類、控制類專業學生學習嵌入式Linux應用開發的教材。 前 言 1. 寫本書的緣由  目前,隨著信息化、智能化、網絡化的發展,嵌入式系統技術也獲得了越來越廣闊的發展空間,與嵌入式Linux相關的需求層出不窮。由于3G行業持續升溫,各大企業對嵌入式專業人才的爭奪也日益激烈。在學習嵌入式Linux軟件開發的過程中,很多人有陷入錯綜復雜困境中的痛苦,也有解決問題后豁然開朗的快樂,但更多的,可能還是辛勤的耕耘。  近來常見一些同仁在各論壇求問各種技術問題,有簡單的、復雜的,有獲得答案的,有多次求問仍不得其解的;同時看見身邊諸多初入行業的人員,走了很多彎路,經受了許多磨難,卻還是不得要領。  其實,嵌入式Linux軟件開發只不過是一種應用技術,所以精通這門技術是相對容易的。它遵循“熟能生巧”的學習規律,至少在很多時候,并不需要諸如悟性之類的東西。簡單地說,嵌入式Linux軟件開發并不是一個無處下口的鐵饅頭。  說到這里,不由得想起北宋歐陽修《賣油翁》的故事。  陳康肅公堯咨善射,當世無雙,公亦以此自矜。嘗射于家圃,有賣油翁釋擔而立,睨之,久而不去。見其發矢十中八九,但微頷之。康肅問曰:“汝亦知射乎?吾射不亦精乎?”翁曰:“無他,但手熟爾。”康肅忿然曰:“爾安敢輕吾射!”翁曰:“以我酌油知之。”乃取一葫蘆置于地,以錢覆其口,徐以杓酌油瀝之,自錢孔入,而錢不濕。因曰:“我亦無他,惟手熟爾。”康肅笑而遣之。  “無他,但手熟爾。”這句話概括了學習應用技術的特點,不用故作深沉。  話雖如此,但應用技術都有一個特點,“奇技淫巧”一詞可概之,里面花巧繁多,不可勝數。就比如學習嵌入式Linux軟件開發這門技術,還是需要找到合適的門徑才可登堂入室。本書提供了一個由淺入深的途徑,使讀者能夠由茫然無知到了解,由了解到熟悉,由熟悉到精通,最后可開創自己的一片天地,能自由馳騁和飛翔。 2. 這本書適合誰  本書適合即將進入嵌入式Linux軟件開發行業,或已進入嵌入式Linux軟件開發行業的初、中級軟件開發人員閱讀。  本書除了給讀者提供嵌入式Linux軟件開發的一般技術外,還涉及一些高級主題,為讀者進一步學習提供參考,也可以為讀者解決實際問題提供直接的思路,甚至解決方案。  本書重視實踐性,讓讀者能夠饒有興趣地跟著本書的內容嘗試著實踐,并將所學運用到實際工作中。 3. 需要的技術基礎  為了更好地學習本書的內容,要求讀者: * 熟悉C語言。雖然不要求能編寫很棒的C代碼,但是對C語言的熟悉會很有幫助。 * 有一些操作系統的基本知識。不要求熟悉操作系統的各方面,但是對內存、線程等術語有一定的感性認識會是很有幫助的。 * 熟悉Linux基本的操作,這是學習嵌入式Linux開發的基礎。 4. 本書使用的軟硬件環境  本書的寫作盡量不依賴于任何具體的硬件平臺,但因嵌入式的特殊性,有時候問題卻實在無法避免。所以讀者如果在其他平臺上遇到了各種各樣的問題,可借鑒本書中解決問題的思路和方法去解決這些問題,如果能夠處理好,那這本書的寫作目的就已經實現。  寫作本書所使用的宿主機軟硬件配置和開發板軟硬件配置如表1~3所示。 5. 本書的組織結構  為了更好地使用本書,建議讀者從第1章開始按順序閱讀本書。當然,如果對某些主題感興趣,也可直接跳到相關的章節進行閱讀。  為了防止大段大段的理論使讀者望而卻步,書中盡量從示例的演示開始講解,只在必要的時候才插入必需的理論說明,以幫助讀者理解。  本書代碼下載地址為http://www.cnblogs.com/cbook/p/3404673.html。 6. 本書的約定  本書寫作中所遵循的約定如下。  (1) 宿主機是指運行Linux開發環境的計算機,安裝有交叉開發工具;主要執行程序的編制、編譯等工作。  (2) 目標機是指運行嵌入式Linux的開發板或嵌入式設備。  (3) 本書暫不講解驅動編程。因為驅動程序的編程比較復雜,同時與硬件密切相關。而且,在嵌入式產業鏈中,開發板廠家你方唱罷我登場的速度也很快,如果拘泥于哪個特定的開發板來演示驅動編程的實現,將會在內容的通用性方面大打折扣。 7. 其他  本書由呂雪峰、彭文波編著,參與編寫工作的還有劉耀宗、萬建邦、鄧世健、趙曉芳。  嵌入式Linux軟件開發其實包含了很廣泛的內容,希望本書能起到拋磚引玉的作用。  由于篇幅有限,同時因為需要采用一個便于理解的主線來描述,以期降低理解的難度,再加上作者的知識與經驗有限,因此書中難免會有疏漏或者不妥之處,歡迎通過郵件進行交流,我們將盡量為讀者提供最滿意的解答。本書專用QQ群為297228619,服務郵箱是winpcap@126.com。          目 錄 第1章 體驗嵌入式系統的魅力 1 1.1 嵌入式系統的定義 2 1.2 嵌入式系統的歷史與現狀 2 1.2.1 無操作系統階段 2 1.2.2 簡單操作系統階段 3 1.2.3 實時操作系統階段 3 1.2.4 面向Internet階段 3 1.3 嵌入式與非嵌入式的區別 4 1.4 從事嵌入式軟件開發的前景 4 1.4.1 優勢 4 1.4.2 從事嵌入式軟件開發的缺點 5 1.4.3 技術基本要求 6 1.5 嵌入式系統的體系結構 6 1.5.1 嵌入式處理器 6 1.5.2 嵌入式外圍設備 7 1.5.3 嵌入式操作系統 8 1.5.4 嵌入式應用軟件 9 1.6 ARM 9 1.7 延伸閱讀:嵌入式系統面臨的關鍵問題 10 1.8 小結 11 第2章 嵌入式Linux的前世今生 13 2.1 嵌入式Linux簡介 14 2.1.1 嵌入式Linux的優勢 14 2.1.2 嵌入式Linux面臨的挑戰 15 2.1.3 發展前景 16 2.1.4 Android 17 2.2 嵌入式Linux系統的軟件組成 17 2.2.1 引導加載程序 17 2.2.2 Linux內核 18 2.2.3 文件系統 19 2.2.4 用戶應用程序 21 2.3 嵌入式系統軟件研發的關鍵技術 21 2.3.1 開發流程 21 2.3.2 交叉編譯和鏈接 22 2.3.3 交叉調試 23 2.3.4 系統測試 25 2.4 系統啟動過程 26 2.5 延伸閱讀:開源、GPL與POSIX簡介 28 2.5.1 開源 28 2.5.2 GPL 29 2.5.3 POSIX 30 2.6 小結 32 第3章 零基礎安裝虛擬機與Linux操作系統 33 3.1 VMware Workstation的安裝 34 3.2 配置VMware Workstation并便捷安裝Fedora 16 36 3.3 配置VMware Workstation手動安裝Fedora 16 43 3.4 安裝Fedora 16 47 3.5 VMware Tools的安裝 52 3.6 使用已安裝好操作系統的虛擬機 56 3.7 延伸閱讀:打開Fedora 16的root賬號 58 3.8 小結 58 第4章 快速構建嵌入式Linux開發環境 59 4.1 安裝交叉編譯器 60 4.1.1 安裝交叉編譯器 60 4.1.2 建立鏈接 62 4.1.3 查看交叉工具是否安裝正確 63 4.2 構建開發板運行所需的環境 63 4.2.1 編譯一級啟動文件x-loader 63 4.2.2 編譯二級啟動文件U-Boot 65 4.2.3 編譯內核 67 4.2.4 制作文件系統鏡像 68 4.3 更新系統文件 69 4.3.1 更新文件從SD卡啟動 69 4.3.2 更新文件從NAND Flash啟動 70 4.4 小結 77 第5章 配置串口通信工具 79 5.1 配置Windows XP的超級終端 80 5.2 串口信息的捕獲 82 5.3 在Linux中配置Minicom 84 5.4 小結 88 第6章 配置NFS文件系統服務 89 6.1 查看宿主機上的安裝包 90 6.2 配置網絡文件系統NFS 91 6.3 啟動NFS服務 91 6.3.1 在Fedora 16下面運行service nfs start命令失敗 91 6.3.2 在Fedora 16下面運行service nfs-server start失敗 92 6.4 本機測試NFS 94 6.5 在開發板上測試NFS 94 6.5.1 常見的測試過程 94 6.5.2 NFS無法掛載的問題分析 95 6.6 小結 96 第7章 開始編寫第一個程序 97 7.1 在宿主機上編寫第一個程序 98 7.2 編寫開發板上的上第一個程序 99 7.3 小結 102 第8章 Linux開發入門必備私房菜 103 8.1 程序安裝目錄 104 8.2 頭文件 104 8.3 庫文件 104 8.4 gcc簡介 106 8.5 make簡介 107 8.6 小結 109 第9章 Shell:用戶與Linux溝通的橋梁 111 9.1 Shell是如何工作的 112 9.2 Shell的“兄弟姐妹” 113 9.3 必須熟悉的Shell命令 114 9.3.1 命令行 114 9.3.2 選項和參數 115 9.3.3 命令行特征 116 9.4 理解Shell中的特殊字符 116 9.4.1 通配符 116 9.4.2 引號 118 9.4.3 注釋符 119 9.5 暢通交流:標準輸入/輸出和重定向 120 9.5.1 標準輸入與輸出 120 9.5.2 輸入重定向 121 9.5.3 輸出重定向 122 9.5.4 管道 124 9.6 命令替換 124 9.7 實戰體驗:在Bash中的操作 125 9.7.1 命令和文件名擴展特性 125 9.7.2 命令行編輯 126 9.7.3 命令歷史 126 9.7.4 命令別名 128 9.8 定制Bash 129 9.9 小結 129 第10章 文本編輯利器Vi 131 10.1 Vi簡介 132 10.1.1 命令行模式 132 10.1.2 文本輸入模式 132 10.1.3 末行模式 132 10.1.4 模式之間的切換 133 10.2 Vi的進入與退出 133 10.2.1 Vi的進入 133 10.2.2 退出Vi 134 10.3 Vi中的行號 135 10.4 光標移動操作 136 10.5 按字移動光標 138 10.5.1 w和W命令 138 10.5.2 e和E命令 139 10.5.3 b和B命令 139 10.6 屏幕滾動 139 10.6.1 滾屏命令 139 10.6.2 分頁命令 139 10.6.3 狀態命令 140 10.7 屏幕調零命令 140 10.8 文本插入操作 140 10.8.1 插入(Insert)命令 140 10.8.2 打開(open)命令 141 10.9 文本修改 142 10.9.1 文本刪除 142 10.9.2 取消上一命令(Undo) 143 10.9.3 重復命令(Redo) 144 10.10 實現替換功能 145 10.11 小結 145 第11章 應知應會的基本函數 147 11.1 文件操作函數 148 11.1.1 文件的創建與打開操作 148 11.1.2 對文件進行讀寫 149 11.1.3 文件的關閉操作 150 11.1.4 改變文件讀寫偏移位置: lseek() 150 11.1.5 實例:文件的打開關閉、讀寫 與設置文件讀寫指針 151 11.1.6 文件描述符和流 152 11.1.7 文件控制操作函數fcntl() 154 11.1.8 控制設備文件參數的函數 ioctl() 154 11.1.9 文件的權限修改 154 11.1.10 文件的屬主與組群修改 156 11.1.11 獲得文件的狀態 157 11.1.12 文件的其他操作 160 11.2 目錄操作 161 11.2.1 創建和刪除目錄的函數 161 11.2.2 打開目錄 161 11.2.3 讀取目錄 162 11.2.4 關閉目錄 163 11.2.5 改變工作目錄的函數 163 11.2.6 取得當前的工作目錄 163 11.2.7 實例:文件列表程序 164 11.3 建立臨時文件 165 11.4 獲取進程號 170 11.5 獲取節點信息 170 11.6 小結 173 第12章 時間問題的處理 175 12.1 時鐘類型 176 12.1.1 硬件時鐘 176 12.1.2 系統時鐘 176 12.1.3 系統時鐘與硬件時鐘的關系 176 12.2 UTC、CST與GMT 176 12.3 Linux下常用的時間類型 177 12.3.1 time_t時間類型 177 12.3.2 struct tm時間類型 177 12.3.3 struct timeval時間類型 178 12.3.4 struct timespec時間類型 178 12.3.5 struct timezone 179 12.3.6 獲得自Epoch以來的秒數 179 12.4 獲得與修改系統時間 180 12.5 時間格式轉換 182 12.5.1 asctime函數 182 12.5.2 ctime函數 183 12.5.3 gmtime函數 184 12.5.4 localtime函數 185 12.5.5 mktime函數 186 12.6 使線程睡眠的時間函數 186 12.6.1 sleep函數 186 12.6.2 usleep函數 188 12.6.3 nanosleep函數 189 12.6.4 示例:為nanosleep()函數指定秒數和納秒數 190 12.6.5 alarm函數 192 12.7 延伸閱讀:其他函數 193 12.8 小結 194 第13章 簡單的網絡編程實戰 195 13.1 基礎知識 196 13.1.1 C/S與B/S結構 196 13.1.2 UDP/TCP協議 197 13.1.3 什么是Socket 198 13.2 UDP套接字編程實例 198 13.2.1 服務端 198 13.2.2 客戶端 200 13.2.3 編譯 202 13.2.4 運行結果 203 13.2.5 使用Wireshark捕獲數據包 203 13.2.6 UDP套接字網絡編程涉及的系統調用過程 204 13.2.7 建立Socket 206 13.2.8 配置Socket 206 13.2.9 數據傳輸 208 13.2.10 延伸閱讀:關閉Socket 209 13.3 TCP套接字編程實例 209 13.3.1 服務端 209 13.3.2 客戶端 212 13.3.3 編譯 214 13.3.4 運行結果 214 13.3.5 使用Wireshark捕獲數據包 215 13.3.6 TCP套接字網絡編程所涉及的系統函數 216 13.3.7 建立連接 217 13.3.8 數據傳輸 219 13.4 小結 220 第14章 簡單的線程操作實戰 221 14.1 為何嵌入式系統中進程不再是重點 222 14.1.1 進程與線程 222 14.1.2 線程的優勢 222 14.1.3 我們的問題 223 14.1.4 進程通信的統一方式:Socket通信 224 14.1.5 簡單的線程操作 224 14.2 創建線程 227 14.3 獲得本線程的標識符 228 14.4 結束線程 228 14.5 延伸閱讀:操作線程共享變量 229 14.6 小結 232 第15章 重點剖析:線程同步實例 233 15.1 互斥鎖 234 15.1.1 再談線程共享變量的操作 235 15.1.2 互斥鎖的創建 237 15.1.3 互斥鎖的銷毀 238 15.1.4 互斥鎖的操作 238 15.2 讀寫鎖 239 15.2.1 讀寫鎖實例 239 15.2.2 讀寫鎖的創建 241 15.2.3 獲取讀寫鎖中的讀鎖 242 15.2.4 獲取讀寫鎖中的寫鎖 243 15.2.5 解除鎖定的讀寫鎖 243 15.2.6 銷毀讀寫鎖 244 15.3 條件變量 245 15.3.1 忙等待 245 15.3.2 條件變量 247 15.3.3 條件變量的創建 249 15.3.4 條件變量的銷毀 249 15.3.5 條件變量的等待和激發 249 15.3.6 互斥鎖和條件變量的結合使用 250 15.4 線程死鎖 253 15.5 延伸閱讀:解決死鎖的方法 255 15.5.1 解決方法一 255 15.5.2 解決方法二 256 15.6 小結 258 第16章 進階私房菜:再談線程 259 16.1 線程參數的傳遞 260 16.1.1 單個參數傳遞 260 16.1.2 多個參數傳遞 261 16.2 線程私有數據 263 16.2.1 創建key 266 16.2.2 刪除key 267 16.2.3 讀寫key 267 16.3 修改線程屬性 267 16.3.1 可以修改的線程屬性 268 16.3.2 修改線程參數示例 271 16.4 延伸閱讀:線程池 275 16.4.1 為什么需要線程池 275 16.4.2 構建線程池框架 276 16.4.3 簡單的線程池示例 276 16.5 小結 285 第17章 進階私房菜:再談網絡編程 287 17.1 對SIGPIPE信號的處理 288 17.1.1 示例1:SIGPIPE信號的默認處理 288 17.1.2 示例2:重定義SIGPIPE信號的默認動作 293 17.1.3 示例3:忽略SIGPIPE信號 295 17.1.4 示例4:直接使用MSG_NOSIGNAL標識 296 17.2 修改Socket緩沖區的大小 297 17.2.1 setsockopt函數與getsockopt函數 297 17.2.2 示例:修改Socket緩沖區的大小 299 17.3 檢測服務器與客戶端的連接是否有效 302 17.4 服務器的多線程處理 304 17.4.1 客戶端 305 17.4.2 服務器 309 17.5 延伸閱讀:重新bind 312 17.5.1 TIME_WAIT的兩個作用 312 17.5.2 如何結束TIME_WAIT狀態 313 17.5.3 實現可立即重啟的服務器 314 17.6 小結 315 第18章 重點突破:網絡編程的字節流處理 317 18.1 面向字節流的分包問題 318 18.1.1 數據包的常見結構 318 18.1.2 線程間數據的交互——環形緩沖區的實現 319 18.1.3 環形緩沖區 319 18.1.4 封包與解包 328 18.1.5 網絡整合使用實例 329 18.1.6 錯誤數據包的測試 335 18.2 再談生產者與消費者的示例 346 18.3 小結 352 第19章 嵌入式B/S架構開發要點 353 19.1 幾種嵌入式Web服務器的比較 354 19.1.1 Boa 354 19.1.2 thttpd 354 19.1.3 Mini_httpd 355 19.1.4 Mongoose 355 19.1.5 Lighttpd 356 19.1.6 AppWeb 356 19.1.7 Apache 357 19.2 Boa簡介 357 19.3 移植與測試Boa的環境配置 358 19.4 Boa的移植 358 19.4.1 下載源代碼 358 19.4.2 編譯 358 19.4.3 安裝到開發板的Linux文件系統 360 19.4.4 配置 361 19.4.5 測試 361 19.5 使用CGI 363 19.5.1 簡介 363 19.5.2 配置目標板文件系統 363 19.5.3 編寫HelloCGI.c程序 364 19.5.4 交叉編譯 364 19.5.5 測試 364 19.6 復雜網頁測試 367 19.6.1 設置目標板文件系統/var/www的目錄結構 367 19.6.2 編制index.html 368 19.6.3 測試 369 19.7 小結 371 第20章 SQLite數據庫移植與實戰 373 20.1 SQLite的特性 374 20.2 SQLite的移植過程 374 20.2.1 移植的環境 374 20.2.2 移植步驟 375 20.3 如何使用Linux C操作SQLite 376 20.4 數據庫的并發訪問 379 20.5 小結 384 附錄A 網絡分析工具Wireshark的使用 385     

商品標簽

購買記錄(近期成交數量0)

還沒有人購買過此商品
總計 0 個記錄,共 1 頁。 第一頁 上一頁 下一頁 最末頁

用戶評論(共0條評論)

  • 暫時還沒有任何用戶評論
總計 0 個記錄,共 1 頁。 第一頁 上一頁 下一頁 最末頁
用戶名: 匿名用戶
E-mail:
評價等級:
評論內容:
驗證碼: captcha