《OS X與iOS核心編程》基本資料原書名:OS X and iOS kernel programming作者: (澳)哈爾沃森(Halvorsen,O.H.) (澳)克拉克(Clarke,D.)譯者: 賈偉叢書名: 圖靈程式設計叢書出版社:人民郵電出版社ISBN:9787115318244上架時間:2013-5-16出版日期:2013 年6月開本:16開頁碼:1版次:1-1所屬分類:電腦更多關於 》》》《OS X與iOS核心編程》內容簡介電腦書籍 《os x與ios核心編程》面向mac os x 和ios 作業系統,介紹了作業系統和核心架構等基礎知識,以及記憶體管理、線程同步、i/o kit 架構等基本概念。通過最貼近實戰的方法協助讀者編寫高效的核心級代碼。本書兩位作者具備豐富的電腦硬軟體以及裝置驅動程式開發經驗,在他們的指引下,讀者定能為usb 和thunderbolt 等裝置開發裝置驅動程式。 如果你對ios 和mac os x 作業系統感興趣,關注核心開發實踐,或者你是驅動程式開發人員,那麼本書適合你閱讀。 與傳統的使用者應用程式開發不同,核心環境更加複雜多變,任何問題都會嚴重影響系統的穩定性、安全性和效能,所以一定要確保核心代碼中沒有任何錯誤。本書介紹了非常實用的核心開發方法,是xnu核心開發人員必備的“九陰真經”。 《os x與ios核心編程》兩位作者都活躍在電腦軟硬體以及驅動程式開發一線,具有豐富的實戰經驗。ole henry halvorsen是最早一批為usb 3.0和thunderbolt建立視頻硬體裝置的開發人員。douglas clarke具有15年以上的麥金塔電腦專業軟硬體開發經驗。本書彙集了兩位作者多年的實戰經驗與智慧感悟,展現了一幅xnu核心編程與裝置驅動程式開發的斑斕畫卷。相信在作者循循善誘、通俗易懂的講解下,讀者定能為書中的精彩內容深深吸引,漸入化境,在不知不覺中煉就核心開發的絕世武功。 如果你對ios和mac os x作業系統感興趣,關注核心開發,或者你本身就是驅動程式開發人員,那麼如此精彩的一本好書絕對不容錯過。目錄《os x與ios核心編程》第1章 作業系統原理 11.1 作業系統的作用 31.2 進程管理 31.3 進程地址空間 41.4 作業系統服務 51.5 虛擬記憶體 61.6 調度 81.7 硬體和驅動程式 91.8 小結 11第2章 mac os x和ios 122.1 xnu核心 172.1.1 核心擴充(kext) 182.1.2 mach 182.1.3 bsd層 272.1.4 i/o kit 292.2 小結 31第3章 xcode和核心開發環境 323.1 語言的選擇:c++ 323.2 xcode 33.3.3 “hello world”核心擴充 343.4 載入和卸載核心擴充 373.5 使用控制台查看輸出 393.6 小結 40第4章 i/o kit架構 414.1 i/o kit 模型 414.2 對象關係 434.3 info.plist檔案 434.3.1 驅動程式類 464.3.2 ioregistryexplorer 504.4 核心庫:libkern 524.4.1 osobject 524.4.2 容器類 544.5 小結 56第5章 應用程式與驅動程式的互動 575.1 i/o kit架構 585.2 尋找驅動程式 585.3 觀察裝置移除 635.4 修改裝置驅動程式屬性 655.5 基於狀態的互動 685.6 驅動程式的通知 795.7 小結 83第6章 記憶體管理 846.1 記憶體類型 846.1.1 cpu物理地址 856.1.2 匯流排物理地址 856.1.3 使用者和核心虛擬位址 856.1.4 記憶體順序:大端序和小端序 866.1.5 32位和64位記憶體定址 876.2 記憶體配置 886.2.1 底層分配機制 896.2.2 mach記憶體域分配器 896.2.3 kalloc家族 896.2.4 bsd中的記憶體配置 906.2.5 i/o kit記憶體配置 916.2.6 使用c++的new操作符分配記憶體 926.3 記憶體描述符 926.3.1 iobuffermemorydescriptor 946.3.2 其他的記憶體描述符 956.4 映射記憶體 956.4.1 使用者空間任務到核心空間的記憶體映射 956.4.2 iomemorymap類 976.4.3 核心到使用者空間任務的記憶體映射 986.4.4 將記憶體映射到指定的使用者空間任務 996.4.5 物理地址映射 1006.5 小結 101第7章 同步和線程 1027.1 同步原語 1027.2 原子操作 1047.3 鎖 1077.3.1 自旋鎖 1077.3.2 互斥 1097.3.3 條件變數 1107.3.4 讀/寫互斥 1127.4 同步非同步事件:工作環 1137.4.1 iocommandgate 1157.4.2 定時器 1167.4.3 釋放工作環 1177.5 核心線程 1187.6 小結 119第8章 usb 1208.1 usb體繫結構 1208.1.1 usb傳輸速度 1228.1.2 主機控制器 1238.1.3 usb協議 1248.1.4 端點 1268.1.5 usb描述符 1268.1.6 usb裝置類 1278.2 i/o kit usb支援 1288.2.1 usb裝置和驅動程式處理 1298.2.2 載入usb驅動程式 1308.2.3 usb prober 1328.2.4 驅動程式樣本:usb大量存放區裝置驅動程式 1338.2.5 驅動程式啟動 1388.2.6 處理裝置移除 1388.2.7 枚舉介面 1398.2.8 枚舉端點 1408.2.9 執行裝置請求 1418.2.10 執行批量端點和中斷端點的i/o 1448.3 小結 147第9章 pci express和thunderbolt 1489.1 i/o kit中的pci 1509.1.1 匹配和載入驅動程式 1519.1.2 驅動程式樣本:一個簡單的pci驅動程式 1549.1.3 訪問配置空間寄存器 1569.1.4 pci i/o記憶體區 1589.1.5 處理裝置移除 1619.2 中斷 1629.2.1 i/o kit中斷機制 1639.2.2 註冊接收中斷 1649.2.3 啟用msi 1669.2.4 處理主中斷 1669.2.5 處理二級中斷 1689.3 直接記憶體存取 1689.3.1 將物理地址轉換為匯流排地址 1709.3.2 為dma準備記憶體 1719.3.3 建立分散/聚集列表 1729.3.4 iodmacommand類 1739.4 小結 175第10章 電源管理 17710.1 響應電源狀態改變 17910.2 請求電源狀態改變 18410.3 處理裝置空閑 18510.4 觀察裝置電源狀態改變 18610.5 匯總 18710.6 小結 191第11章 序列埠驅動程式 19211.1 mac os x序列埠體繫結構概覽 19211.2 序列埠驅動程式 19411.3 實現ioserialdriversync類 19711.4 序列埠狀態 20011.5 序列埠事件 20411.6 串列資料轉送 20711.7 從使用者空間訪問序列埠 21111.8 小結 214第12章 音頻驅動程式 21512.1 數字音頻和音訊裝置簡介 21512.2 core audio 21712.3 i/o kit音頻支援 21812.4 實現一個音頻驅動程式 21912.4.1 驅動程式和硬體初始化 22112.4.2 註冊音頻控制 22312.4.3 實現音頻引擎 22512.4.4 i/o引擎初始化 22612.4.5 其他的音頻引擎功能 23512.5 小結 236第13章 網路 23813.1 網路核心擴充 24213.1.1 核心控制kpi 24213.1.2 通訊端過濾器 24213.1.3 網際網路協議過濾器 25013.1.4 介面過濾器 25513.2 調試和測試網路擴充 25813.3 i/o kit中的網路 25913.3.1 構建簡單乙太網路控制器驅動程式 26113.3.2 myethernetdriver設計 26213.3.3 驅動程式初始化和啟動 26413.3.4 介質和狀態選擇 26613.3.5 配置裝置硬體地址 26813.3.6 啟用和禁用裝置 26813.3.7 傳輸網路分組 27013.3.8 接收分組 27113.3.9 對myethernetdriver進行測試 27413.4 小結 276第14章 儲存系統 27714.1 傳輸層驅動程式 27814.2 ioblockstoragedevice介面 27914.3 構建ram磁碟裝置 28214.4 分區規則 29214.4.1 實現一個樣本分區規則 29314.4.2 媒介內容線索屬性 30014.5 媒