注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術(shù)計算機/網(wǎng)絡軟件與程序設計程序設計綜合OS X與iOS內(nèi)核編程

OS X與iOS內(nèi)核編程

OS X與iOS內(nèi)核編程

定 價:¥89.00

作 者: (澳)Ole Henry Halvorsen (澳)Douglas Clarke 譯者:賈偉
出版社: 人民郵電出版社
叢編項:
標 簽: 操作系統(tǒng)/系統(tǒng)開發(fā) 計算機/網(wǎng)絡

ISBN: 9787115318244 出版時間: 2013-06-02 包裝: 平裝
開本: 16 頁數(shù): 400 字數(shù):  

內(nèi)容簡介

  與傳統(tǒng)的用戶應用程序開發(fā)不同,內(nèi)核環(huán)境更加復雜多變,任何問題都會嚴重影響系統(tǒng)的穩(wěn)定性、安全性和性能,所以一定要確保內(nèi)核代碼中沒有任何錯誤?!禣S X與iOS內(nèi)核編程》介紹了非常實用的內(nèi)核開發(fā)方法,是XNU內(nèi)核開發(fā)者必備的“九陰真經(jīng)”?!禣S X與iOS內(nèi)核編程》兩位作者都活躍在計算機軟硬件以及驅(qū)動程序開發(fā)一線,具有豐富的實戰(zhàn)經(jīng)驗。Ole Henry Halvorsen是最早一批為USB 3.0和Thunderbolt創(chuàng)建視頻硬件設備的開發(fā)人員。Douglas Clarke具有15年以上的麥金塔計算機專業(yè)軟硬件開發(fā)經(jīng)驗。本書匯集了兩位作者多年的實戰(zhàn)經(jīng)驗與智慧感悟,展現(xiàn)了一幅XNU內(nèi)核編程與設備驅(qū)動程序開發(fā)的斑斕畫卷。相信在作者循循善誘、通俗易懂的講解下,讀者定能為書中的精彩內(nèi)容深深吸引,漸入化境,在不知不覺中煉就內(nèi)核開發(fā)的絕世武功。如果你對iOS和Mac OS X操作系統(tǒng)感興趣,關(guān)注內(nèi)核開發(fā),或者你本身就是驅(qū)動程序開發(fā)人員,那么如此精彩的一本好書絕對不容錯過。

作者簡介

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

圖書目錄

第1章 操作系統(tǒng)原理  1
1.1  操作系統(tǒng)的作用  3
1.2  進程管理  3
1.3  進程地址空間  4
1.4  操作系統(tǒng)服務  5
1.5  虛擬內(nèi)存  6
1.6  調(diào)度  8
1.7  硬件和驅(qū)動程序  9
1.8  小結(jié)  11
第2章 Mac OS X和iOS  12
2.1  XNU內(nèi)核  17
2.1.1  內(nèi)核擴展(KEXT)  18
2.1.2  Mach  18
2.1.3  BSD層  27
2.1.4  I/O Kit  29
2.2  小結(jié)  31
第3章 Xcode和內(nèi)核開發(fā)環(huán)境  32
3.1  語言的選擇:C++  32
3.2  Xcode  33
3.3  “Hello World”內(nèi)核擴展  34
3.4  加載和卸載內(nèi)核擴展  37
3.5  使用控制臺查看輸出  39
3.6  小結(jié)  40
第4章 I/O Kit框架  41
4.1  I/O Kit 模型  41
4.2  對象關(guān)系  43
4.3  Info.plist文件  43
4.3.1  驅(qū)動程序類  46
4.3.2  IORegistryExplorer  50
4.4  內(nèi)核庫:libkern  52
4.4.1  OSObject  52
4.4.2  容器類  54
4.5  小結(jié)  56
第5章 應用程序與驅(qū)動程序的交互  57
5.1  I/O Kit框架  58
5.2  查找驅(qū)動程序  58
5.3  觀察設備移除  63
5.4  修改設備驅(qū)動程序?qū)傩浴 ?5
5.5  基于狀態(tài)的交互  68
5.6  驅(qū)動程序的通知  79
5.7  小結(jié)  83
第6章 內(nèi)存管理  84
6.1  內(nèi)存類型  84
6.1.1  CPU物理地址  85
6.1.2  總線物理地址  85
6.1.3  用戶和內(nèi)核虛擬地址  85
6.1.4  內(nèi)存順序:大端序和小端序  86
6.1.5  32位和64位內(nèi)存尋址  87
6.2  內(nèi)存分配  88
6.2.1  底層分配機制  89
6.2.2  Mach內(nèi)存域分配器  89
6.2.3  kalloc家族  89
6.2.4  BSD中的內(nèi)存分配  90
6.2.5  I/O Kit內(nèi)存分配  91
6.2.6  使用C++的new操作符分配內(nèi)存  92
6.3  內(nèi)存描述符  92
6.3.1  IOBufferMemoryDescriptor  94
6.3.2  其他的內(nèi)存描述符  95
6.4  映射內(nèi)存  95
6.4.1  用戶空間任務到內(nèi)核空間的內(nèi)存映射  95
6.4.2  IOMemoryMap類  97
6.4.3  內(nèi)核到用戶空間任務的內(nèi)存映射  98
6.4.4  將內(nèi)存映射到指定的用戶空間任務  99
6.4.5  物理地址映射  100
6.5  小結(jié)  101
第7章 同步和線程  102
7.1  同步原語  102
7.2  原子操作  104
7.3  鎖  107
7.3.1  自旋鎖  107
7.3.2  互斥  109
7.3.3  條件變量  110
7.3.4  讀/寫互斥  112
7.4  同步異步事件:工作環(huán)  113
7.4.1  IOCommandGate  115
7.4.2  定時器  116
7.4.3  釋放工作環(huán)  117
7.5  內(nèi)核線程  118
7.6  小結(jié)  119
第8章 USB  120
8.1  USB體系結(jié)構(gòu)  120
8.1.1  USB傳輸速度  122
8.1.2  主機控制器  123
8.1.3  USB協(xié)議  124
8.1.4  端點  126
8.1.5  USB描述符  126
8.1.6  USB設備類  127
8.2  I/O Kit USB支持  128
8.2.1  USB設備和驅(qū)動程序處理  129
8.2.2  加載USB驅(qū)動程序  130
8.2.3  USB Prober  132
8.2.4  驅(qū)動程序示例:USB大容量存儲器設備驅(qū)動程序  133
8.2.5  驅(qū)動程序啟動  138
8.2.6  處理設備移除  138
8.2.7  枚舉接口  139
8.2.8  枚舉端點  140
8.2.9  執(zhí)行設備請求  141
8.2.10  執(zhí)行批量端點和中斷端點的I/O  144
8.3  小結(jié)  147
第9章 PCI Express和Thunderbolt  148
9.1  I/O Kit中的PCI  150
9.1.1  匹配和加載驅(qū)動程序  151
9.1.2  驅(qū)動程序示例:一個簡單的PCI驅(qū)動程序  154
9.1.3  訪問配置空間寄存器  156
9.1.4  PCI I/O內(nèi)存區(qū)  158
9.1.5  處理設備移除  161
9.2  中斷  162
9.2.1  I/O Kit中斷機制  163
9.2.2  注冊接收中斷  164
9.2.3  啟用MSI  166
9.2.4  處理主中斷  166
9.2.5  處理二級中斷  168
9.3  直接內(nèi)存訪問  168
9.3.1  將物理地址轉(zhuǎn)換為總線地址  170
9.3.2  為DMA準備內(nèi)存  171
9.3.3  建立分散/聚集列表  172
9.3.4  IODMACommand類  173
9.4  小結(jié)  175
第10章 電源管理  177
10.1  響應電源狀態(tài)改變  179
10.2  請求電源狀態(tài)改變  184
10.3  處理設備空閑  185
10.4  觀察設備電源狀態(tài)改變  186
10.5  匯總  187
10.6  小結(jié)  191
第11章 串行端口驅(qū)動程序  192
11.1  Mac OS X串行端口體系結(jié)構(gòu)概覽  192
11.2  串行端口驅(qū)動程序  194
11.3  實現(xiàn)IOSerialDriverSync類  197
11.4  串行端口狀態(tài)  200
11.5  串行端口事件  204
11.6  串行數(shù)據(jù)傳輸  207
11.7  從用戶空間訪問串行端口  211
11.8  小結(jié)  214
第12章 音頻驅(qū)動程序  215
12.1  數(shù)字音頻和音頻設備簡介  215
12.2  Core Audio  217
12.3  I/O Kit音頻支持  218
12.4  實現(xiàn)一個音頻驅(qū)動程序  219
12.4.1  驅(qū)動程序和硬件初始化  221
12.4.2  注冊音頻控制  223
12.4.3  實現(xiàn)音頻引擎  225
12.4.4   I/O引擎初始化  226
12.4.5  其他的音頻引擎功能  235
12.5  小結(jié)  236
第13章 網(wǎng)絡  238
13.1  網(wǎng)絡內(nèi)核擴展  242
13.1.1  內(nèi)核控制KPI  242
13.1.2  套接字過濾器  242
13.1.3  因特網(wǎng)協(xié)議過濾器  250
13.1.4  接口過濾器  255
13.2  調(diào)試和測試網(wǎng)絡擴展  258
13.3  I/O Kit中的網(wǎng)絡  259
13.3.1  構(gòu)建簡單以太網(wǎng)控制器驅(qū)動程序  261
13.3.2  MyEthernetDriver設計  262
13.3.3  驅(qū)動程序初始化和啟動  264
13.3.4  介質(zhì)和狀態(tài)選擇  266
13.3.5  配置設備硬件地址  268
13.3.6  啟用和禁用設備  268
13.3.7  傳輸網(wǎng)絡分組  270
13.3.8  接收分組  271
13.3.9  對MyEthernetDriver進行測試  274
13.4  小結(jié)  276
第14章 存儲系統(tǒng)  277
14.1  傳輸層驅(qū)動程序  278
14.2  IOBlockStorageDevice接口  279
14.3  構(gòu)建RAM磁盤設備  282
14.4  分區(qū)規(guī)則  292
14.4.1  實現(xiàn)一個示例分區(qū)規(guī)則  293
14.4.2  媒介內(nèi)容線索屬性  300
14.5  媒介過濾器驅(qū)動程序  300
14.5.1  加密過濾器規(guī)則示例  302
14.5.2  創(chuàng)建一個自定義GUID分區(qū)表  306
14.6  小結(jié)  308
第15章 用戶空間USB驅(qū)動程序  310
15.1  背景  310
15.2  IOUSBLib框架  311
15.3  處理異步操作  315
15.4  IOUSBDeviceInterface類  316
15.5  IOUSBInterfaceInterface類  320
15.5.1  屬性方法  321
15.5.2  端點數(shù)據(jù)傳輸方法  322
15.5.3  低延遲同步傳輸  328
15.6  小結(jié)  330
第16章 調(diào)試  331
16.1  常見的問題類型  331
16.2  內(nèi)核恐慌  332
16.3  調(diào)試機制  333
16.3.1  啟動時修復崩潰  335
16.3.2  采用IOLog()追蹤  335
16.3.3  輸出棧跟蹤  336
16.3.4  通過FireWire遠程跟蹤  337
16.3.5  遠程內(nèi)核核心轉(zhuǎn)儲  339
16.3.6  KDB  340
16.3.7  通過以太網(wǎng)或FireWire使用GDB遠程調(diào)試  340
16.3.8  實時調(diào)試運行的內(nèi)核  344
16.3.9  使用虛擬機調(diào)試  344
16.3.10  在內(nèi)核中使用GDB調(diào)試  344
16.3.11  使用Activity Monitor診斷掛起進程  354
16.3.12  查找內(nèi)存和資源泄漏  355
16.4  小結(jié)  356
第17章 高級內(nèi)核編程  357
17.1  內(nèi)核中的SSE和浮點  357
17.2  多功能驅(qū)動程序  358
17.3  編寫I/O Kit族  358
17.4  內(nèi)核控制KPI  359
17.4.1  內(nèi)核控制注冊  361
17.4.2  客戶端連接  362
17.4.3  獲取和設置選項  363
17.4.4  從用戶空間訪問內(nèi)核控制  364
17.5  內(nèi)核中的進程處理  365
17.6  加載資源  366
17.7  KEXT資源之外的內(nèi)容  367
17.8  內(nèi)核驅(qū)動程序通知  368
17.9  小結(jié)  371
第18章 部署  372
18.1  安裝和加載內(nèi)核擴展  372
18.2  加載首選項和設置  374
18.3  內(nèi)核擴展的版本管理  375
18.4  測試和品質(zhì)保證  375
18.5  打包KEXT和軟件  376
18.5.1  構(gòu)建Hello World內(nèi)核擴展安裝包  378
18.5.2  將內(nèi)容添加至安裝包  378
18.5.3  配置安裝包  379
18.5.4  構(gòu)建安裝包  382
18.5.5  卸載安裝包  383
18.6  小結(jié)  383
索引  385
 






本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) www.autoforsalebyowners.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號