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

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

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

定 價(jià):¥89.00

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

ISBN: 9787115318244 出版時(shí)間: 2013-06-02 包裝: 平裝
開本: 16 頁(yè)數(shù): 400 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書目錄

第1章 操作系統(tǒng)原理  1
1.1  操作系統(tǒng)的作用  3
1.2  進(jìn)程管理  3
1.3  進(jìn)程地址空間  4
1.4  操作系統(tǒng)服務(wù)  5
1.5  虛擬內(nèi)存  6
1.6  調(diào)度  8
1.7  硬件和驅(qū)動(dòng)程序  9
1.8  小結(jié)  11
第2章 Mac OS X和iOS  12
2.1  XNU內(nèi)核  17
2.1.1  內(nèi)核擴(kuò)展(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  語(yǔ)言的選擇:C++  32
3.2  Xcode  33
3.3  “Hello World”內(nèi)核擴(kuò)展  34
3.4  加載和卸載內(nèi)核擴(kuò)展  37
3.5  使用控制臺(tái)查看輸出  39
3.6  小結(jié)  40
第4章 I/O Kit框架  41
4.1  I/O Kit 模型  41
4.2  對(duì)象關(guān)系  43
4.3  Info.plist文件  43
4.3.1  驅(qū)動(dòng)程序類  46
4.3.2  IORegistryExplorer  50
4.4  內(nèi)核庫(kù):libkern  52
4.4.1  OSObject  52
4.4.2  容器類  54
4.5  小結(jié)  56
第5章 應(yīng)用程序與驅(qū)動(dòng)程序的交互  57
5.1  I/O Kit框架  58
5.2  查找驅(qū)動(dòng)程序  58
5.3  觀察設(shè)備移除  63
5.4  修改設(shè)備驅(qū)動(dòng)程序?qū)傩浴 ?5
5.5  基于狀態(tài)的交互  68
5.6  驅(qū)動(dòng)程序的通知  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  底層分配機(jī)制  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  用戶空間任務(wù)到內(nèi)核空間的內(nèi)存映射  95
6.4.2  IOMemoryMap類  97
6.4.3  內(nèi)核到用戶空間任務(wù)的內(nèi)存映射  98
6.4.4  將內(nèi)存映射到指定的用戶空間任務(wù)  99
6.4.5  物理地址映射  100
6.5  小結(jié)  101
第7章 同步和線程  102
7.1  同步原語(yǔ)  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  定時(shí)器  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  主機(jī)控制器  123
8.1.3  USB協(xié)議  124
8.1.4  端點(diǎn)  126
8.1.5  USB描述符  126
8.1.6  USB設(shè)備類  127
8.2  I/O Kit USB支持  128
8.2.1  USB設(shè)備和驅(qū)動(dòng)程序處理  129
8.2.2  加載USB驅(qū)動(dòng)程序  130
8.2.3  USB Prober  132
8.2.4  驅(qū)動(dòng)程序示例:USB大容量存儲(chǔ)器設(shè)備驅(qū)動(dòng)程序  133
8.2.5  驅(qū)動(dòng)程序啟動(dòng)  138
8.2.6  處理設(shè)備移除  138
8.2.7  枚舉接口  139
8.2.8  枚舉端點(diǎn)  140
8.2.9  執(zhí)行設(shè)備請(qǐng)求  141
8.2.10  執(zhí)行批量端點(diǎn)和中斷端點(diǎn)的I/O  144
8.3  小結(jié)  147
第9章 PCI Express和Thunderbolt  148
9.1  I/O Kit中的PCI  150
9.1.1  匹配和加載驅(qū)動(dòng)程序  151
9.1.2  驅(qū)動(dòng)程序示例:一個(gè)簡(jiǎn)單的PCI驅(qū)動(dòng)程序  154
9.1.3  訪問配置空間寄存器  156
9.1.4  PCI I/O內(nèi)存區(qū)  158
9.1.5  處理設(shè)備移除  161
9.2  中斷  162
9.2.1  I/O Kit中斷機(jī)制  163
9.2.2  注冊(cè)接收中斷  164
9.2.3  啟用MSI  166
9.2.4  處理主中斷  166
9.2.5  處理二級(jí)中斷  168
9.3  直接內(nèi)存訪問  168
9.3.1  將物理地址轉(zhuǎn)換為總線地址  170
9.3.2  為DMA準(zhǔn)備內(nèi)存  171
9.3.3  建立分散/聚集列表  172
9.3.4  IODMACommand類  173
9.4  小結(jié)  175
第10章 電源管理  177
10.1  響應(yīng)電源狀態(tài)改變  179
10.2  請(qǐng)求電源狀態(tài)改變  184
10.3  處理設(shè)備空閑  185
10.4  觀察設(shè)備電源狀態(tài)改變  186
10.5  匯總  187
10.6  小結(jié)  191
第11章 串行端口驅(qū)動(dòng)程序  192
11.1  Mac OS X串行端口體系結(jié)構(gòu)概覽  192
11.2  串行端口驅(qū)動(dòng)程序  194
11.3  實(shí)現(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ū)動(dòng)程序  215
12.1  數(shù)字音頻和音頻設(shè)備簡(jiǎn)介  215
12.2  Core Audio  217
12.3  I/O Kit音頻支持  218
12.4  實(shí)現(xiàn)一個(gè)音頻驅(qū)動(dòng)程序  219
12.4.1  驅(qū)動(dòng)程序和硬件初始化  221
12.4.2  注冊(cè)音頻控制  223
12.4.3  實(shí)現(xiàn)音頻引擎  225
12.4.4   I/O引擎初始化  226
12.4.5  其他的音頻引擎功能  235
12.5  小結(jié)  236
第13章 網(wǎng)絡(luò)  238
13.1  網(wǎng)絡(luò)內(nèi)核擴(kuò)展  242
13.1.1  內(nèi)核控制KPI  242
13.1.2  套接字過(guò)濾器  242
13.1.3  因特網(wǎng)協(xié)議過(guò)濾器  250
13.1.4  接口過(guò)濾器  255
13.2  調(diào)試和測(cè)試網(wǎng)絡(luò)擴(kuò)展  258
13.3  I/O Kit中的網(wǎng)絡(luò)  259
13.3.1  構(gòu)建簡(jiǎn)單以太網(wǎng)控制器驅(qū)動(dòng)程序  261
13.3.2  MyEthernetDriver設(shè)計(jì)  262
13.3.3  驅(qū)動(dòng)程序初始化和啟動(dòng)  264
13.3.4  介質(zhì)和狀態(tài)選擇  266
13.3.5  配置設(shè)備硬件地址  268
13.3.6  啟用和禁用設(shè)備  268
13.3.7  傳輸網(wǎng)絡(luò)分組  270
13.3.8  接收分組  271
13.3.9  對(duì)MyEthernetDriver進(jìn)行測(cè)試  274
13.4  小結(jié)  276
第14章 存儲(chǔ)系統(tǒng)  277
14.1  傳輸層驅(qū)動(dòng)程序  278
14.2  IOBlockStorageDevice接口  279
14.3  構(gòu)建RAM磁盤設(shè)備  282
14.4  分區(qū)規(guī)則  292
14.4.1  實(shí)現(xiàn)一個(gè)示例分區(qū)規(guī)則  293
14.4.2  媒介內(nèi)容線索屬性  300
14.5  媒介過(guò)濾器驅(qū)動(dòng)程序  300
14.5.1  加密過(guò)濾器規(guī)則示例  302
14.5.2  創(chuàng)建一個(gè)自定義GUID分區(qū)表  306
14.6  小結(jié)  308
第15章 用戶空間USB驅(qū)動(dòng)程序  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  端點(diǎn)數(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)試機(jī)制  333
16.3.1  啟動(dòng)時(shí)修復(fù)崩潰  335
16.3.2  采用IOLog()追蹤  335
16.3.3  輸出棧跟蹤  336
16.3.4  通過(guò)FireWire遠(yuǎn)程跟蹤  337
16.3.5  遠(yuǎn)程內(nèi)核核心轉(zhuǎn)儲(chǔ)  339
16.3.6  KDB  340
16.3.7  通過(guò)以太網(wǎng)或FireWire使用GDB遠(yuǎn)程調(diào)試  340
16.3.8  實(shí)時(shí)調(diào)試運(yùn)行的內(nèi)核  344
16.3.9  使用虛擬機(jī)調(diào)試  344
16.3.10  在內(nèi)核中使用GDB調(diào)試  344
16.3.11  使用Activity Monitor診斷掛起進(jìn)程  354
16.3.12  查找內(nèi)存和資源泄漏  355
16.4  小結(jié)  356
第17章 高級(jí)內(nèi)核編程  357
17.1  內(nèi)核中的SSE和浮點(diǎn)  357
17.2  多功能驅(qū)動(dòng)程序  358
17.3  編寫I/O Kit族  358
17.4  內(nèi)核控制KPI  359
17.4.1  內(nèi)核控制注冊(cè)  361
17.4.2  客戶端連接  362
17.4.3  獲取和設(shè)置選項(xiàng)  363
17.4.4  從用戶空間訪問內(nèi)核控制  364
17.5  內(nèi)核中的進(jìn)程處理  365
17.6  加載資源  366
17.7  KEXT資源之外的內(nèi)容  367
17.8  內(nèi)核驅(qū)動(dòng)程序通知  368
17.9  小結(jié)  371
第18章 部署  372
18.1  安裝和加載內(nèi)核擴(kuò)展  372
18.2  加載首選項(xiàng)和設(shè)置  374
18.3  內(nèi)核擴(kuò)展的版本管理  375
18.4  測(cè)試和品質(zhì)保證  375
18.5  打包KEXT和軟件  376
18.5.1  構(gòu)建Hello World內(nèi)核擴(kuò)展安裝包  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) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)