注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)其他操作系統(tǒng)自己動(dòng)手寫操作系統(tǒng)

自己動(dòng)手寫操作系統(tǒng)

自己動(dòng)手寫操作系統(tǒng)

定 價(jià):¥48.00

作 者: 于淵編著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

ISBN: 9787121015779 出版時(shí)間: 2005-08-01 包裝: 平裝
開本: 24cm+1光盤 頁數(shù): 374 字?jǐn)?shù):  

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

  優(yōu)秀國內(nèi)原創(chuàng)圖書!本書用豐富的實(shí)例代碼,一步一步地指導(dǎo)讀者用C語言和匯編語言編寫出一個(gè)具備操作系統(tǒng)基本功能的操作系統(tǒng)框架,不同于其他的理論型書籍,本書提供給讀者一個(gè)動(dòng)手實(shí)踐的路線圖。用理論指導(dǎo)動(dòng)手實(shí)踐,用實(shí)踐深化理解理論! 這是一本編程愛好者編寫的別具一格、頗有特色的操作系統(tǒng)原理與實(shí)現(xiàn)的書。該書作者對(duì)操作系統(tǒng)具有特殊愛好,在大量實(shí)踐和反復(fù)鉆研下積累了豐富而可貴的經(jīng)驗(yàn),為了與廣大讀者分享這些經(jīng)驗(yàn)寫成了此書。本書對(duì)一般的操作系統(tǒng)原理教材不很重視的部分,例如,系統(tǒng)初啟、保護(hù)模式、控制權(quán)如何轉(zhuǎn)入OS Kernal等都寫得具體詳細(xì),對(duì)操作系統(tǒng)的愛好者以及涉足于操作系統(tǒng)設(shè)計(jì)、實(shí)現(xiàn)和應(yīng)用的讀者有很好的參考價(jià)值。本書的文字生動(dòng)活潑,富有個(gè)性,可望提高青年學(xué)子的閱讀興趣?!”緯谠敿?xì)分析操作系統(tǒng)原理的基礎(chǔ)上,用豐富的實(shí)例代碼,一步一步地指導(dǎo)讀者用C語言和匯編語言編寫出一個(gè)具備操作系統(tǒng)基本功能的操作系統(tǒng)框架。本書不同于其他的理論型書籍,而是提供給讀者一個(gè)動(dòng)手實(shí)踐的路線圖。書中講解了大量在開發(fā)操作系統(tǒng)中需注意的細(xì)節(jié)問題,這些細(xì)節(jié)不僅能使讀者更深刻地認(rèn)識(shí)操作系統(tǒng)的核心原理,而且使整個(gè)開發(fā)過程少走彎路。全書共分7章。本書適合各類程序員、程序開發(fā)愛好者閱讀,也可作為高等院校操作系統(tǒng)課程的實(shí)踐參考書。

作者簡(jiǎn)介

  于淵(1895- 1949)四川射洪人。又名光藻,號(hào)邦齊。1914年后入瀘州講武堂第一期學(xué)習(xí)。1925年任萬縣城防兼憲兵司令,1926年率部抗擊企圖武力搶奪被扣英輪的英國軍艦。同年加入中國共產(chǎn)黨。1927年后,任川軍第二十一軍劉湘部二師六旅旅長、教導(dǎo)師二旅旅長、少將參議。曾幫助紅軍通過川軍的防線??谷諔?zhàn)爭(zhēng)爆發(fā)后出川抗日,任新十六師副師長兼第七戰(zhàn)區(qū)游擊司令。1938年劉湘病死后棄職回川從事統(tǒng)戰(zhàn)工作。1944年當(dāng)選為民盟四川支部執(zhí)行委員。1947年6月被捕。1949年12月在成都外西十二橋就義。

圖書目錄

第1章  馬上動(dòng)手寫一個(gè)最小的“操作系統(tǒng)” 1
1.1  準(zhǔn)備工作 1
1.2  10分鐘完成的操作系統(tǒng) 1
1.3  Boot Sector 3
1.4  代碼解釋 3
1.5  水面下的冰山 5
1.6  回顧 6
第2章  搭建你的工作環(huán)境 7
2.1  虛擬計(jì)算機(jī)(Virtual PC) 7
2.1.1  Virtual PC初體驗(yàn) 8
2.1.2  創(chuàng)建你的第一個(gè)Virtual PC 9
2.1.3  虛擬軟盤研究 12
2.1.4  虛擬軟盤實(shí)戰(zhàn) 14
2.2  編譯器(NASM & GCC) 18
2.3  安裝虛擬Linux 19
2.4  在虛擬Linux上訪問Windows文件夾 26
2.5  安裝虛擬PCDOS 26
2.6  其他要素 29
2.7  Bochs 29
2.7.1  Bochs vs. Virtual PC vs. VMware 30
2.7.2  Bochs的使用方法 31
2.7.3  用Bochs進(jìn)行調(diào)試 33
2.7.4  在Linux上開發(fā) 34
2.8  總結(jié)與回顧 36
第3章  保護(hù)模式(Protect Mode) 37
3.1  認(rèn)識(shí)保護(hù)模式 37
3.1.1  GDT(Global Descriptor Table)  42
3.1.2  實(shí)模式到保護(hù)模式,不一般的jmp 45
3.1.3  描述符屬性 47
3.2  保護(hù)模式進(jìn)階 50
3.2.1  海闊憑魚躍 50
3.2.2  LDT(Local Descriptor Table) 58
3.2.3  特權(quán)級(jí) 62
3.3  頁式存儲(chǔ) 82
3.3.1  分頁機(jī)制概述 83
3.3.2  編寫代碼啟動(dòng)分頁機(jī)制 84
3.3.3  PDE和PTE 85
3.3.4  cr3 88
3.3.5  回頭看代碼 88
3.3.6  克勤克儉用內(nèi)存 90
3.3.7  進(jìn)一步體會(huì)分頁機(jī)制 100
3.4  中斷和異常 107
3.4.1  中斷和異常機(jī)制 109
3.4.2  外部中斷 111
3.4.3  編程操作8259A 113
3.4.4  建立IDT 116
3.4.5  實(shí)現(xiàn)一個(gè)中斷 117
3.4.6  時(shí)鐘中斷試驗(yàn) 119
3.4.7  幾點(diǎn)額外說明 121
3.5  保護(hù)模式下的I/O 122
3.5.1  IOPL 122
3.5.2  I/O許可位圖(I/O Permission Bitmap) 123
3.6  保護(hù)模式小結(jié) 123
第4章  讓操作系統(tǒng)走進(jìn)保護(hù)模式 125
4.1  突破512字節(jié)的限制 125
4.1.1  FAT12 126
4.1.2  DOS可以識(shí)別的引導(dǎo)盤 131
4.1.3  一個(gè)最簡(jiǎn)單的Loader 132
4.1.4  加載Loader入內(nèi)存 133
4.1.5  向Loader交出控制權(quán) 142
4.1.6  整理boot.asm 142
4.2  保護(hù)模式下的“操作系統(tǒng)”  144
第5章  內(nèi)核雛形 146
5.1  用NASM在Linux下寫Hello World 146
5.2  再進(jìn)一步,匯編和C同步使用 148
5.3  ELF(Executable and Linkable Format) 150
5.4  從Loader到內(nèi)核 155
5.4.1  用Loader加載ELF 155
5.4.2  跳入保護(hù)模式 161
5.4.3  重新放置內(nèi)核 170
5.4.4  向內(nèi)核交出控制權(quán) 175
5.4.5  操作系統(tǒng)的調(diào)試方法 176
5.5  擴(kuò)充內(nèi)核 184
5.5.1  切換堆棧和GDT 184
5.5.2  整理我們的文件夾 191
5.5.3  Makefile 191
5.5.4  添加中斷處理 200
5.5.5  兩點(diǎn)說明 218
5.6  小結(jié) 219
第6章  進(jìn)程 221
6.1  遲到的進(jìn)程 221
6.2  概述 222
6.2.1  進(jìn)程介紹 222
6.2.2  未雨綢繆——形成進(jìn)程的必要考慮 222
6.2.3  參考的代碼 224
6.3  最簡(jiǎn)單的進(jìn)程 224
6.3.1  簡(jiǎn)單進(jìn)程的關(guān)鍵技術(shù)預(yù)測(cè) 225
6.3.2  第一步——ring0→ring1 227
6.3.3  第二步——豐富中斷處理程序 243
6.3.4  進(jìn)程體設(shè)計(jì)技巧 254
6.4  多進(jìn)程 256
6.4.1  添加一個(gè)進(jìn)程體 256
6.4.2  相關(guān)的變量和宏 257
6.4.3  進(jìn)程表初始化代碼擴(kuò)充 258
6.4.4  LDT 260
6.4.5  修改中斷處理程序 261
6.4.6  添加一個(gè)任務(wù)的步驟總結(jié) 263
6.4.7  號(hào)外:Minix的中斷處理 265
6.4.8  代碼回顧與整理 269
6.5  系統(tǒng)調(diào)用 280
6.5.1  實(shí)現(xiàn)一個(gè)簡(jiǎn)單的系統(tǒng)調(diào)用 280
6.5.2  get_ticks的應(yīng)用 286
6.6  進(jìn)程調(diào)度 292
6.6.1  避免對(duì)稱——進(jìn)程的節(jié)奏感 292
6.6.2  優(yōu)先級(jí)調(diào)度總結(jié) 300
第7章  輸入/輸出系統(tǒng) 302
7.1  鍵盤 302
7.1.1  從中斷開始——鍵盤初體驗(yàn) 302
7.1.2  AT、PS/2鍵盤 304
7.1.3  鍵盤敲擊的過程 304
7.1.4  解析掃描碼 309
7.2  顯示器 325
7.2.1  初識(shí)TTY 325
7.2.2  基本概念 326
7.2.3  寄存器 328
7.3  TTY任務(wù) 332
7.3.1  TTY任務(wù)框架的搭建 334
7.3.2  多控制臺(tái) 340
7.3.3  完善鍵盤處理 346
7.3.4  TTY任務(wù)總結(jié) 354
7.4  區(qū)分任務(wù)和用戶進(jìn)程 354
7.5  printf 357
7.5.1  為進(jìn)程指定TTY 357
7.5.2  printf()的實(shí)現(xiàn) 358
7.5.3  系統(tǒng)調(diào)用write() 361
7.5.4  使用printf() 363
后記 366
參考文獻(xiàn) 369
附錄  書中的章節(jié)和代碼對(duì)照表 370

本目錄推薦

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