幫助中心 | 我的帳號 | 關於我們

嵌入式Linux基礎教程(第2版)

  • 作者:(美)哈利南|責編:傅道坤|譯者:周鵬
  • 出版社:人民郵電
  • ISBN:9787115402509
  • 出版日期:2016/04/01
  • 裝幀:平裝
  • 頁數:454
人民幣:RMB 119.8 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書是嵌入式Linux教程,介紹了引導載入程序、系統初始化、文件系統、快閃記憶體和內核、應用程序調試技巧等,還講述了構建Linux系統的工作原理,用於驅動不同架構的配置,Linux內核源碼樹的特性,如何根據需求配製內核運行時的行為,如何擴展系統功能,用於構建完整嵌入式Linux發行版的常用構建系統,USB子系統和系統配置工具udev等內容。更重要的是,本書闡述了如何修改系統使之滿足讀者自身的需求,確保讀者能夠從中學習一些嵌入式工程中非常有用的提示和技巧。
    本書適合Linux程序員閱讀,也可作為高等院校相關專業師生的參考讀物。

作者介紹
(美)哈利南|責編:傅道坤|譯者:周鵬
    Christopher Hallinan(哈利南),著名嵌入式Linux技術專家。現任Mentor Graphics公司技術市場工程師,曾任Monta Vista軟體公司現場應用工程師,3Com公司工程總監,Crosscomm公司工程總監。他有25年以上網路和通信產品的軟硬體開發經驗。曾擔任Linux咨詢師,提供定製Linux主板介面、設備驅動程序和引導載入程序等方面的解決方案。

目錄
第1章  入門
  1.1  為什麼選擇Linux
  1.2  嵌入式Linux現狀
  1.3  開源和GPL
  1.4  標準及相關組織
    1.4.1  Linux標準基礎
    1.4.2  Linux基金會
    1.4.3  電信級Linux
    1.4.4  移動Linux計劃:Moblin
    1.4.5  服務可用性論壇
  1.5  小結
第2章  綜述
  2.1  嵌入與非嵌入
  2.2  剖析嵌入式系統
    2.2.1  典型的嵌入式Linux開發環境
    2.2.2  啟動目標板
    2.2.3  引導內核
    2.2.4  內核初始化:概述
    2.2.5  第一個用戶空間進程:init
  2.3  存儲
    2.3.1  快閃記憶體
    2.3.2  NAND型快閃記憶體
    2.3.3  快閃記憶體的用途
    2.3.4  快閃記憶體文件系統
    2.3.5  內存空間
    2.3.6  執行上下文
    2.3.7  進程虛擬內存
    2.3.8  交叉開發環境
  2.4  嵌入式Linux發行版
    2.4.1  商業Linux發行版
    2.4.2  打造自己的Linux發行版
  2.5  小結
第3章  處理器基礎
  3.1  獨立處理器
    3.1.1  IBM 970FX
    3.1.2  英特爾奔騰M
    3.1.3  英特爾凌動TM
    3.1.4  飛思卡爾MPC
    3.1.5  配套晶元組
  3.2  集成處理器:片上系統
    3.2.1  Power架構
    3.2.2  飛思卡爾Power架構
    3.2.3  飛思卡爾PowerQUICC I
    3.2.4  飛思卡爾PowerQUICC II
    3.2.5  PowerQUICC II Pro
    3.2.6  飛思卡爾PowerQUICC III
    3.2.7  飛思卡爾QorIQTM
    3.2.8  AMCC Power架構
    3.2.9  MIPS
    3.2.10  Broadcom MIPS

    3.2.11  其他MIPS
    3.2.12  ARM
    3.2.13  德州儀器ARM
    3.2.14  飛思卡爾ARM
    3.2.15  其他ARM處理器
  3.3  其他架構
  3.4  硬體平台
    3.4.1  CompactPCI
    3.4.2  ATCA
  3.5  小結
第4章  Linux內核:不同的視角
  4.1  背景知識
    4.1.1  內核版本
    4.1.2  內核源碼庫
    4.1.3  使用git下載內核代碼
  4.2  Linux內核的構造
    4.2.1  頂層源碼目錄
    4.2.2  編譯內核
    4.2.3  內核主體:vmlinux
    4.2.4  內核鏡像的組成部分
    4.2.5  子目錄的布局
  4.3  內核構建系統
    4.3.1  .config文件
    4.3.2  配置編輯器
    4.3.3  Makefile目標
  4.4  內核配置
    4.4.1  定製配置選項
    4.4.2  內核Makefile
  4.5  內核文檔
  4.6  獲得定製的Linux內核
  4.7  小結
第5章  內核初始化
  5.1  合成內核鏡像:Piggy及其他
    5.1.1  Image對象
    5.1.2  與具體架構相關的對象
    5.1.3  啟動載入程序
    5.1.4  引導消息
  5.2  初始化時的控制流
    5.2.1  內核入口:head.o
    5.2.2  內核啟動:main.c
    5.2.3  架構設置
  5.3  內核命令行的處理
  5.4  子系統初始化
  5.5  init線程
    5.5.1  通過initcalls進行初始化
    5.5.2  initcall_debug
    5.5.3  最後的引導步驟
  5.6  小結
第6章  用戶空間初始化
  6.1  根文件系統

    6.1.1  FHS:文件系統層次結構標準
    6.1.2  文件系統布局
    6.1.3  最小化的文件系統
    6.1.4  嵌入式根文件系統帶來的挑戰
    6.1.5  試錯法
    6.1.6  自動化文件系統構建工具
  6.2  內核的最後一些引導步驟
    6.2.1  第一個用戶空間程序
    6.2.2  解決依賴關係
    6.2.3  定製的初始進程
  6.3  init進程
    6.3.1  inittab
    6.3.2  Web伺服器啟動腳本示例
  6.4  初始RAM磁碟
    6.4.1  使用initrd進行引導
    6.4.2  引導載入程序對initrd的支持
    6.4.3  initrd的奧秘所在:linuxrc
    6.4.4  initrd探究
    6.4.5  構造initrd鏡像
  6.5  使用initramfs
  6.6  關機
  6.7  小結
第7章  引導載入程序
  7.1  引導載入程序的作用
  7.2  引導載入程序帶來的挑戰
    7.2.1  DRAM控制器
    7.2.2  快閃記憶體與RAM
    7.2.3  鏡像的複雜性
    7.2.4  執行環境
  7.3  通用引導載入程序:Das U-Boot
    7.3.1  獲取U-Boot
    7.3.2  配置U-Boot
    7.3.3  U-Boot的監控命令
    7.3.4  網路操作
    7.3.5  存儲子系統
    7.3.6  從磁碟引導
  7.4  移植U-Boot
    7.4.1  EP405的U-Boot移植
    7.4.2  U-Boot Makefile中的配置目標
    7.4.3  EP405的第一次構建
    7.4.4  EP405處理器初始化
    7.4.5  與具體板卡相關的初始化
    7.4.6  移植總結
    7.4.7  U-Boot鏡像格式
  7.5  設備樹對象(扁平設備樹)
    7.5.1  設備樹源碼
    7.5.2  設備樹編譯器
    7.5.3  使用DTB的其他內核鏡像
  7.6  其他引導載入程序
    7.6.1  Lilo

    7.6.2  GRUB
    7.6.3  其他更多的引導載入程序
  7.7  小結
第8章  設備驅動程序基礎
  8.1  設備驅動程序的概念
    8.1.1  可載入模塊
    8.1.2  設備驅動程序架構
    8.1.3  最小設備驅動程序示例
    8.1.4  模塊構建的基礎設施
    8.1.5  安裝設備驅動程序
    8.1.6  載入模塊
    8.1.7  模塊參數
  8.2  模塊工具
    8.2.1  insmod
    8.2.2  lsmod
    8.2.3  modprobe
    8.2.4  depmod
    8.2.5  rmmod
    8.2.6  modinfo
  8.3  驅動程序方法
    8.3.1  驅動程序中的文件系統操作
    8.3.2  設備號的分配
    8.3.3  設備節點和mknod
  8.4  綜合應用
  8.5  在內核源碼樹外構建驅動
  8.6  設備驅動程序和GPL
  8.7  小結
第9章  文件系統
  9.1  Linux文件系統概念
  9.2  ext
    9.2.1  掛載文件系統
    9.2.2  檢查文件系統的完整性
  9.3  ext
  9.4  ext
  9.5  ReiserFS
  9.6  JFFS
  9.7  cramfs
  9.8  網路文件系統
  9.9  偽文件系統
    9.9.1  proc文件系統
    9.9.2  sysfs
  9.10  其他文件系統
  9.11  創建簡單的文件系統
  9.12  小結
第10章  MTD子系統
  10.1  MTD概述
    10.1.1  開啟MTD服務
    10.1.2  MTD基礎
    10.1.3  在目標板上配置MTD
  10.2  MTD分區

    10.2.1  使用Redboot分區表進行分區
    10.2.2  使用內核命令行傳遞分區信息
    10.2.3  映射驅動
    10.2.4  快閃記憶體晶元驅動
    10.2.5  與具體板卡相關的初始化
  10.3  MTD工具
  10.4  UBI文件系統
    10.4.1  配置UBIFS
    10.4.2  構建UBIFS鏡像
    10.4.3  使用UBIFS作為根文件系統
  10.5  小結
第11章  BusyBox
  11.1  BusyBox簡介
  11.2  BusyBox的配置
  11.3  BusyBox的操作
    11.3.1  BusyBox的init
    11.3.2  rcS初始化腳本示例
    11.3.3  BusyBox在目標板上的安裝
    11.3.4  BusyBox小應用
  11.4  小結
第12章  嵌入式開發環境
  12.1  交叉開發環境
  12.2  對主機系統的要求
  12.3  為目標板提供服務
    12.3.1  TFTP伺服器
    12.3.2  BOOTP DHCP伺服器
    12.3.3  NFS伺服器
    12.3.4  目標板使用NFS掛載根文件系統
    12.3.5  U-Boot中使用NFS掛載根文件系統的例子
  12.4  小結
第13章  開發工具
  13.1  GNU調試器(GDB)
    13.1.1  調試核心轉儲
    13.1.2  執行GDB
    13.1.3  GDB中的調試會話
  13.2  數據顯示調試器
  13.3  cbrowser cscope
  13.4  追蹤和性能評測工具
    13.4.1  strace
    13.4.2  strace命令行選項
    13.4.3  ltrace
    13.4.4  ps
    13.4.5  top
    13.4.6  mtrace
    13.4.7  dmalloc
    13.4.8  內核oops
  13.5  二進位工具
    13.5.1  readelf
    13.5.2  使用readelf查看調試信息
    13.5.3  objdump

    13.5.4  objcopy
  13.6  其他二進位實用程序
    13.6.1  strip
    13.6.2  addr2line
    13.6.3  strings
    13.6.4  ldd
    13.6.5  nm
    13.6.6  prelink
  13.7  小結
第14章  內核調試技術
  14.1  內核調試帶來的挑戰
  14.2  使用KGDB進行內核調試
    14.2.1  KGDB的內核配置
    14.2.2  在開啟KGDB時引導目標板
    14.2.3  一些有用的內核斷點
    14.2.4  KGDB與控制台共享一個串列埠
    14.2.5  調試非常早期的內核代碼
    14.2.6  主線內核對KGDB的支持
  14.3  內核調試技術
    14.3.1  gdb遠程串列協議
    14.3.2  調試優化的內核代碼
    14.3.3  GDB的用戶自定義命令
    14.3.4  有用的內核GDB宏
    14.3.5  調試可載入模塊
    14.3.6  printk調試
    14.3.7  Magic SysReq key
  14.4  硬體輔助調試
    14.4.1  使用JTAG探測器對快閃記憶體進行編程
    14.4.2  使用JTAG探測器進行調試
  14.5  不能啟動的情況
    14.5.1  早期的串列埠調試輸出
    14.5.2  轉儲printk的日誌緩衝區
    14.5.3  使用KGDB調試內核異常
  14.6  小結
第15章  調試嵌入式Linux應用程序
  15.1  目標調試
  15.2  遠程(交叉)調試
  15.3  調試共享程序庫
  15.4  調試多個任務
    15.4.1  調試多個進程
    15.4.2  調試多線程應用程序
    15.4.3  調試引導載入程序/快閃記憶體代碼
  15.5  其他遠程調試選項
    15.5.1  使用串列埠進行調試
    15.5.2  附著到運行的進程上
  15.6  小結
第16章  開源構建系統
  16.1  為什麼使用構建系統
  16.2  Scratchbox
    16.2.1  安裝Scratchbox

    16.2.2  創建一個交叉編譯目標
  16.3  Buildroot
    16.3.1  安裝Buildroot
    16.3.2  配置Buildroot
    16.3.3  構建Buildroot
  16.4  OpenEmbedded
    16.4.1  OpenEmbedded的組成
    16.4.2  BitBake元數據
    16.4.3  配方基礎
    16.4.4  任務
    16.4.5  類
    16.4.6  配置元數據
    16.4.7  構建鏡像
  16.5  小結
第17章  實時Linux
  17.1  什麼是實時
    17.1.1  軟實時
    17.1.2  硬實時
    17.1.3  Linux調度
    17.1.4  延時
  17.2  內核搶佔
    17.2.1  搶佔的障礙
    17.2.2  搶佔模式
    17.2.3  SMP內核
    17.2.4  搶佔延時的根源
  17.3  實時內核補丁
    17.3.1  實時補丁的特性
    17.3.2  O(1)調度器
    17.3.3  創建實時進程
  17.4  實時內核的性能分析
    17.4.1  使用Ftrace追蹤內核行為
    17.4.2  檢測搶佔被關閉的延時
    17.4.3  檢測喚醒延時
    17.4.4  檢測中斷被關閉的延時
    17.4.5  檢測Soft Lockup
  17.5  小結
第18章  通用串列匯流排
  18.1  USB概述
    18.1.1  USB的物理拓撲結構
    18.1.2  USB的邏輯拓撲結構
    18.1.3  USB版本
    18.1.4  USB連接器
    18.1.5  USB線纜
    18.1.6  USB模式
  18.2  配置USB
  18.3  sysfs和USB設備命名
  18.4  實用的USB工具
    18.4.1  USB文件系統
    18.4.2  使用usbview
    18.4.3  USB 實用程序(lsusb)

  18.5  通用USB子系統
    18.5.1  USB大容量存儲類
    18.5.2  USB HID類
    18.5.3  USB CDC類驅動
    18.5.4  USB網路支持
  18.6  USB調試
    18.6.1  usbmon
    18.6.2  實用USB雜記
  18.7  小結
第19章  udev
  19.1  什麼是udev
  19.2  設備發現
  19.3  udev的默認行為
  19.4  理解udev規則
    19.4.1  Modalias
    19.4.2  典型的udev規則配置
    19.4.3  udev的初始系統設置
  19.5  載入平台設備驅動程序
  19.6  定製udev的行為
  19.7  持久的設備命名
  19.8  udev和busybox配合使用
    19.8.1  busybox mdev
    19.8.2  配置mdev
  19.9  小結
附錄A  可配置的U-Boot命令
附錄B  BusyBox命令
附錄C  SDRAM介面注意事項
附錄D  開源資源
附錄E  簡單的BDI-2000配置文件

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032