TOP
0
0
即日起~6/30,暑期閱讀書展,好書7折起
OS X與iOS內核編程(簡體書)
滿額折

OS X與iOS內核編程(簡體書)

商品資訊

人民幣定價:89 元
定價
:NT$ 534 元
優惠價
87465
絕版無法訂購
相關商品
商品簡介
作者簡介
目次

商品簡介

與傳統的用戶應用程序開發不同,內核環境更加複雜多變,任何問題都會嚴重影響系統的穩定性、安全性和性能,所以一定要確保內核代碼中沒有任何錯誤。《OSX與iOS內核編程》介紹了非常實用的內核開發方法,是XNU內核開發者必備的“九陰真經”。《OSX與iOS內核編程》兩位作者都活躍在計算機軟硬件以及驅動程序開發一線,具有豐富的實戰經驗。OleHenryHalvorsen是最早一批為USB3.0和Thunderbolt創建視頻硬件設備的開發人員。DouglasClarke具有15年以上的麥金塔計算機專業軟硬件開發經驗。本書彙集了兩位作者多年的實戰經驗與智慧感悟,展現了一幅XNU內核編程與設備驅動程序開發的斑斕畫卷。相信在作者循循善誘、通俗易懂的講解下,讀者定能為書中的精彩內容深深吸引,漸入化境,在不知不覺中煉就內核開發的絕世武功。如果你對iOS和MacOSX操作系統感興趣,關注內核開發,或者你本身就是驅動程序開發人員,那麼如此精彩的一本好書絕對不容錯過。

作者簡介

Ole Henry Halvorsen,目前在一家生產專業視頻設備的公司擔任高級軟件工程師,負責面向Mac、Linux和PC的高端高清視頻硬件驅動程序和軟件開發。他是最早一批為USB 3.0和Thunderbolt創建視頻硬件設備的開發者,曾是美國SGI公司的研發工程師,致力於研究NAS和SAN存儲技術,以及為超級計算和高性能計算提供解決方案。Halvorsen擁有澳大利亞莫納什大學網絡計算學士學位以及信息技術碩士學位。Douglas Clarke,有15年以上的麥金塔計算機專業開發經驗。他職業生涯的大部分時間都致力於硬件和設備驅動程序開發,曾為Mac OS 9、Mac OS X和Windows編寫驅動程序。早在Mac OS X第1版面市一年以前,他就開始接觸I/O Kit,從那以後一直在使用它。目前Clarke正在為實時視頻應用開發驅動程序,他擁有澳大利亞莫納什大學計算機科學學士學位。

目次

第1章 操作系統原理 1.1 操作系統的作用 1.2 進程管理 1.3 進程地址空間 1.4 操作系統服務 1.5 虛擬內存 1.6 調度 1.7 硬件和驅動程序 1.8 小結 第2章 Mac OS X和iOS 2.1 XNU內核 2.1.1 內核擴展(KEXT) 2.1.2 Mach 2.1.3 BSD層 2.1.4 I/O Kit 2.2 小結 第3章 Xcode和內核開發環境 3.1 語言的選擇:C++ 3.2 Xcode 3.3 “Hello World”內核擴展 3.4 加載和卸載內核擴展 3.5 使用控制台查看輸出 3.6 小結 第4章 I/O Kit框架 4.1 I/O Kit 模型 4.2 對象關係 4.3 Info.plist文件 4.3.1 驅動程序類 4.3.2 IORegistryExplorer 4.4 內核庫:libkern 4.4.1 OSObject 4.4.2 容器類 4.5 小結 第5章 應用程序與驅動程序的交互 5.1 I/O Kit框架 5.2 查找驅動程序 5.3 觀察設備移除 5.4 修改設備驅動程序屬性 5.5 基於狀態的交互 5.6 驅動程序的通知 5.7 小結 第6章 內存管理 6.1 內存類型 6.1.1 CPU物理地址 6.1.2 總線物理地址 6.1.3 用戶和內核虛擬地址 6.1.4 內存順序:大端序和小端序 6.1.5 32位和64位內存尋址 6.2 內存分配 6.2.1 底層分配機制 6.2.2 Mach內存域分配器 6.2.3 kalloc家族 6.2.4 BSD中的內存分配 6.2.5 I/O Kit內存分配 6.2.6 使用C++的new操作符分配內存 6.3 內存描述符 6.3.1 IOBufferMemoryDescriptor 6.3.2 其他的內存描述符 6.4 映射內存 6.4.1 用戶空間任務到內核空間的內存映射 6.4.2 IOMemoryMap類 6.4.3 內核到用戶空間任務的內存映射 6.4.4 將內存映射到指定的用戶空間任務 6.4.5 物理地址映射 6.5 小結 第7章 同步和線程 7.1 同步原語 7.2 原子操作 7.3 鎖 7.3.1 自旋鎖 7.3.2 互斥 7.3.3 條件變量 7.3.4 讀/寫互斥 7.4 同步異步事件:工作環 7.4.1 IOCommandGate 7.4.2 定時器 7.4.3 釋放工作環 7.5 內核線程 7.6 小結 第8章 USB 8.1 USB體系結構 8.1.1 USB傳輸速度 8.1.2 主機控制器 8.1.3 USB協議 8.1.4 端點 8.1.5 USB描述符 8.1.6 USB設備類 8.2 I/O Kit USB支持 8.2.1 USB設備和驅動程序處理 8.2.2 加載USB驅動程序 8.2.3 USB Prober 8.2.4 驅動程序示例:USB大容量存儲器設備驅動程序 8.2.5 驅動程序啟動 8.2.6 處理設備移除 8.2.7 枚舉接口 8.2.8 枚舉端點 8.2.9 執行設備請求 8.2.10 執行批量端點和中斷端點的I/O 8.3 小結 第9章 PCI Express和Thunderbolt 9.1 I/O Kit中的PCI 9.1.1 匹配和加載驅動程序 9.1.2 驅動程序示例:一個簡單的PCI驅動程序 9.1.3 訪問配置空間寄存器 9.1.4 PCI I/O內存區 9.1.5 處理設備移除 9.2 中斷 9.2.1 I/O Kit中斷機制 9.2.2 註冊接收中斷 9.2.3 啟用MSI 9.2.4 處理主中斷 9.2.5 處理二級中斷 9.3 直接內存訪問 9.3.1 將物理地址轉換為總線地址 9.3.2 為DMA準備內存 9.3.3 建立分散/聚集列表 9.3.4 IODMACommand類 9.4 小結 第10章 電源管理 10.1 響應電源狀態改變 10.2 請求電源狀態改變 10.3 處理設備空閒 10.4 觀察設備電源狀態改變 10.5 匯總 10.6 小結 第11章 串行端口驅動程序 11.1 Mac OS X串行端口體系結構概覽 11.2 串行端口驅動程序 11.3 實現IOSerialDriverSync類 11.4 串行端口狀態 11.5 串行端口事件 11.6 串行數據傳輸 11.7 從用戶空間訪問串行端口 11.8 小結 第12章 音頻驅動程序 12.1 數字音頻和音頻設備簡介 12.2 Core Audio 12.3 I/O Kit音頻支持 12.4 實現一個音頻驅動程序 12.4.1 驅動程序和硬件初始化 12.4.2 註冊音頻控制 12.4.3 實現音頻引擎 12.4.4 I/O引擎初始化 12.4.5 其他的音頻引擎功能 12.5 小結 第13章 網絡 13.1 網絡內核擴展 13.1.1 內核控制KPI 13.1.2 套接字過濾器 13.1.3 因特網協議過濾器 13.1.4 接口過濾器 13.2 調試和測試網絡擴展 13.3 I/O Kit中的網絡 13.3.1 構建簡單以太網控制器驅動程序 13.3.2 MyEthernetDriver設計 13.3.3 驅動程序初始化和啟動 13.3.4 介質和狀態選擇 13.3.5 配置設備硬件地址 13.3.6 啟用和禁用設備 13.3.7 傳輸網絡分組 13.3.8 接收分組 13.3.9 對MyEthernetDriver進行測試 13.4 小結 第14章 存儲系統 14.1 傳輸層驅動程序 14.2 IOBlockStorageDevice接口 14.3 構建RAM磁盤設備 14.4 分區規則 14.4.1 實現一個示例分區規則 14.4.2 媒介內容線索屬性 14.5 媒介過濾器驅動程序 14.5.1 加密過濾器規則示例 14.5.2 創建一個自定義GUID分區表 14.6 小結 第15章 用戶空間USB驅動程序 15.1 背景 15.2 IOUSBLib框架 15.3 處理異步操作 15.4 IOUSBDeviceInterface類 15.5 IOUSBInterfaceInterface類 15.5.1 屬性方法 15.5.2 端點數據傳輸方法 15.5.3 低延遲同步傳輸 15.6 小結 第16章 調試 16.1 常見的問題類型 16.2 內核恐慌 16.3 調試機制 16.3.1 啟動時修復崩潰 16.3.2 採用IOLog()追蹤 16.3.3 輸出棧跟蹤 16.3.4 通過FireWire遠程跟蹤 16.3.5 遠程內核核心轉儲 16.3.6 KDB 16.3.7 通過以太網或FireWire使用GDB遠程調試 16.3.8 實時調試運行的內核 16.3.9 使用虛擬機調試 16.3.10 在內核中使用GDB調試 16.3.11 使用Activity Monitor診斷掛起進程 16.3.12 查找內存和資源洩漏 16.4 小結 第17章 高級內核編程 17.1 內核中的SSE和浮點 17.2 多功能驅動程序 17.3 編寫I/O Kit族 17.4 內核控制KPI 17.4.1 內核控制註冊 17.4.2 客戶端連接 17.4.3 獲取和設置選項 17.4.4 從用戶空間訪問內核控制 17.5 內核中的進程處理 17.6 加載資源 17.7 KEXT資源之外的內容 17.8 內核驅動程序通知 17.9 小結 第18章 部署 18.1 安裝和加載內核擴展 18.2 加載首選項和設置 18.3 內核擴展的版本管理 18.4 測試和品質保證 18.5 打包KEXT和軟件 18.5.1 構建Hello World內核擴展安裝包 18.5.2 將內容添加至安裝包 18.5.3 配置安裝包 18.5.4 構建安裝包 18.5.5 卸載安裝包 18.6 小結 索引

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 465
絕版無法訂購

暢銷榜

客服中心

收藏

會員專區