注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)操作系統(tǒng)其他操作系統(tǒng)Orange S:一個(gè)操作系統(tǒng)的實(shí)現(xiàn)

Orange S:一個(gè)操作系統(tǒng)的實(shí)現(xiàn)

Orange S:一個(gè)操作系統(tǒng)的實(shí)現(xiàn)

定 價(jià):¥69.00

作 者: 于淵 著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: 操作系統(tǒng)/系統(tǒng)開發(fā)

ISBN: 9787121084423 出版時(shí)間: 2009-06-01 包裝: 平裝
開本: 16開 頁數(shù): 469 字?jǐn)?shù):  

內(nèi)容簡介

  《Orange S:一個(gè)操作系統(tǒng)的實(shí)現(xiàn)》從只有二十行的引導(dǎo)扇區(qū)代碼出發(fā),一步一步地向讀者呈現(xiàn)一個(gè)操作系統(tǒng)框架的完成過程。書中不僅關(guān)注代碼本身,同時(shí)關(guān)注完成這些代碼的思路和過程。本書不同于其他的理論型書籍,而是提供給讀者一個(gè)動(dòng)手實(shí)踐的路線圖。讀者可以根據(jù)路線圖逐步完成各部分的功能,從而避免了一開始就面對(duì)整個(gè)操作系統(tǒng)數(shù)萬行代碼時(shí)的迷茫和挫敗感。書中講解了大量在開發(fā)操作系統(tǒng)中需注意的細(xì)節(jié)問題,這些細(xì)節(jié)不僅能使讀者更深刻地認(rèn)識(shí)操作系統(tǒng)的核心原理,而且使整個(gè)開發(fā)過程少走彎路。本書分上下兩篇,共11章。其中每一章都以前一章的工作成果為基礎(chǔ),實(shí)現(xiàn)一項(xiàng)新的功能。而在章的內(nèi)部,一項(xiàng)大的功能被分解成許多小的步驟,通過完成每個(gè)小的步驟,讀者可以不斷獲得階段性的成果,從而讓整個(gè)開發(fā)過程變得輕松并且有趣。本書適合各類程序員、程序開發(fā)愛好者閱讀,也可作為高等院校操作系統(tǒng)課程的實(shí)踐參考書。

作者簡介

  于淵自述——性懶,好靜,涉獵甚廣,然所精者少。遇所好之事,譬如程序,必沉迷其中,恍恍然如癲如癡。讀書非多,然每讀必思,偶有心得,自得其樂。遇知其所云者,欣然以為知音,必邀之共飲,所飲不必多,喜聞觥籌鏗鏘之聲,與談笑交錯(cuò),快意淋漓。本性固執(zhí),喜鉆研,求本質(zhì),不滿于浮光掠影,故凡可能之事,必躬親而后快。以求甚解之心,究操作系統(tǒng)之原委,并親為之,耗時(shí)數(shù)月,咸雛形?;仡櫞藲v程,自有一番甘苦,乃以此記錄,與同道分享。雖有貽笑方家之慮,然凡此種種,皆切身之感受,所感所想,點(diǎn)滴皆為領(lǐng)悟,故心下坦然。若恰能為后來者借鑒一二,心當(dāng)甚慰。

圖書目錄

上篇
第1章 馬上動(dòng)手寫一個(gè)最小的“操作系統(tǒng)”
1.1 準(zhǔn)備工作
1.2 十分鐘完成的操作系統(tǒng)
1.3 引導(dǎo)扇區(qū)
1.4 代碼解釋
1.5 水面下的冰山
1.6 回顧
第2章 搭建你的工作環(huán)境
2.1 虛擬計(jì)算機(jī)Bochs
2.1.1 Bochs初體驗(yàn)
2.1.2 Bochs的安裝
2.1.3 Bochs的使用
2.1.4 用Bochs調(diào)試操作系統(tǒng)
2.2 QEMU
2.3 平臺(tái)之爭(zhēng):Windows還是*nix
2.4 GNU/Linux下的開發(fā)環(huán)境
2.5 Windows下的開發(fā)環(huán)境
2.6 總結(jié)
第3章 保護(hù)模式(Protect Mode)
3.1 認(rèn)識(shí)保護(hù)模式
3.1.1 保護(hù)模式的運(yùn)行環(huán)境
3.1.2 GDT(Global Descriptor Table)
3.1.3 實(shí)模式到保護(hù)模式,不一般的jmp
3.1.4 描述符屬性
3.2 保護(hù)模式進(jìn)階
3.2.1 海闊憑魚躍
3.2.2 LDT(Local Descriptor Table)
3.2.3 特權(quán)級(jí)概述
3.2.4 特權(quán)級(jí)轉(zhuǎn)移
3.2.5 關(guān)于“保護(hù)”二字的一點(diǎn)思考
3.3 頁式存儲(chǔ)
3.3.1 分頁機(jī)制概述
3.3.2 編寫代碼啟動(dòng)分頁機(jī)制
3.3.3 PDE和PTE
3.3.4 cr3
3.3.5 回頭看代碼
3.3.6 克勤克儉用內(nèi)存
3.3.7 進(jìn)一步體會(huì)分頁機(jī)制
3.4 中斷和異常
3.4.1 中斷和異常機(jī)制
3.4.2 外部中斷
3.4.3 編程操作8259A
3.4.4 建立IDT
3.4.5 實(shí)現(xiàn)一個(gè)中斷
3.4.6 時(shí)鐘中斷試驗(yàn)
3.4.7 幾點(diǎn)額外說明
3.5 保護(hù)模式下的I/O
3.5.1 IOPL
3.5.2 I/O許可位圖(I/O Permission Bitmap)
3.6 保護(hù)模式小結(jié)
第4章 讓操作系統(tǒng)走進(jìn)保護(hù)模式
4.1 突破512字節(jié)的限制
4.1.1 FAT12
4.1.2 DOS可以識(shí)別的引導(dǎo)盤
4.1.3 一個(gè)最簡單的Loader
4.1.4 加載Loader入內(nèi)存
4.1.5 向Loader交出控制權(quán)
4.1.6 整理boot.asm
4.2 保護(hù)模式下的“操作系統(tǒng)”
第5章 內(nèi)核雛形
5.1 在Linux下用匯編寫Hello World
5.2 再進(jìn)一步,匯編和C同步使用
5.3 ELF(Executable and Linkable Format)
5.4 從Loader到內(nèi)核
5.4.1 用Loader加載ELF
5.4.2 跳入保護(hù)模式
5.4.3 重新放置內(nèi)核
5.4.4 向內(nèi)核交出控制權(quán)
5.5 擴(kuò)充內(nèi)核
5.5.1 切換堆棧和GDT
5.5.2 整理我們的文件夾
5.5.3 Makefile
5.5.4 添加中斷處理
5.5.5 兩點(diǎn)說明
5.6 小結(jié)
第6章 進(jìn)程
6.1 遲到的進(jìn)程
6.2 概述
6.2.1 進(jìn)程介紹
6.2.2 未雨綢繆——形成進(jìn)程的必要考慮
6.2.3 參考的代碼
6.3 最簡單的進(jìn)程
6.3.1 簡單進(jìn)程的關(guān)鍵技術(shù)預(yù)測(cè)
6.3.2 第一步——ring0→ring1
6.3.3 第二步——豐富中斷處理程序
6.4 多進(jìn)程
6.4.1 添加一個(gè)進(jìn)程體
6.4.2 相關(guān)的變量和宏
6.4.3 進(jìn)程表初始化代碼擴(kuò)充
6.4.4 LDT
6.4.5 修改中斷處理程序
6.4.6 添加一個(gè)任務(wù)的步驟總結(jié)
6.4.7 號(hào)外:Minix的中斷處理
6.4.8 代碼回顧與整理
6.5 系統(tǒng)調(diào)用
6.5.1 實(shí)現(xiàn)一個(gè)簡單的系統(tǒng)調(diào)用
6.5.2 get_ticks的應(yīng)用
6.6 進(jìn)程調(diào)度
6.6.1 避免對(duì)稱——進(jìn)程的節(jié)奏感
6.6.2 優(yōu)先級(jí)調(diào)度總結(jié)
第7章 輸入/輸出系統(tǒng)
7.1 鍵盤
7.1.1 從中斷開始——鍵盤初體驗(yàn)
7.1.2 AT、PS/2鍵盤
7.1.3 鍵盤敲擊的過程
7.1.4 用數(shù)組表示掃描碼
7.1.5 鍵盤輸入緩沖區(qū)
7.1.6 用新加的任務(wù)處理鍵盤操作
7.1.7 解析掃描碼
7.2 顯示器
7.2.1 初識(shí)TTY
7.2.2 基本概念
7.2.3 寄存器
7.3 TTY任務(wù)
7.3.1 TTY任務(wù)框架的搭建
7.3.2 多控制臺(tái)
7.3.3 完善鍵盤處理
7.3.4 TTY任務(wù)總結(jié)
7.4 區(qū)分任務(wù)和用戶進(jìn)程
7.5 printf
7.5.1 為進(jìn)程指定TTY
7.5.2 printf()的實(shí)現(xiàn)
7.5.3 系統(tǒng)調(diào)用write()
7.5.4 使用printf()
下篇
第8章 進(jìn)程間通信
8.1 微內(nèi)核還是宏內(nèi)核
8.1.1 Linux的系統(tǒng)調(diào)用
8.1.2 Minix的系統(tǒng)調(diào)用
8.1.3 我們的選擇
8.2 IPC
8.3 實(shí)現(xiàn)IPC
8.3.1 assert()和panic()
8.3.2 msg_send()和msg_receive()
8.3.3 增加消息機(jī)制之后的進(jìn)程調(diào)度
8.4 使用IPC來替換系統(tǒng)調(diào)用get_ticks
8.5 總結(jié)
第9章 文件系統(tǒng)
9.1 硬盤簡介
9.2 硬盤操作的I/O 端口
9.3 硬盤驅(qū)動(dòng)程序
9.4 文件系統(tǒng)
9.5 硬盤分區(qū)表
9.6 設(shè)備號(hào)
9.7 用代碼遍歷所有分區(qū)
9.8 完善硬盤驅(qū)動(dòng)程序
9.9 在硬盤上制作一個(gè)文件系統(tǒng)
9.9.1 文件系統(tǒng)涉及的數(shù)據(jù)結(jié)構(gòu)
9.9.2 編碼建立文件系統(tǒng)
9.10 創(chuàng)建文件
9.10.1 Linux下的文件操作
9.10.2 文件描述符(file descriptor)
9.10.3 open()
9.11 創(chuàng)建文件所涉及的其他函數(shù)
9.11.1 strip_path()
9.11.2 search_file()
9.11.3 get_inode()和sync_inode()
9.11.4 init_fs()
9.11.5 read_super_block()和get_super_block()
9.12 關(guān)閉文件
9.13 查看已創(chuàng)建的文件
9.14 打開文件
9.15 讀寫文件
9.16 測(cè)試文件讀寫
9.17 文件系統(tǒng)調(diào)試
9.18 刪除文件
9.19 插曲:奇怪的異常
9.20 為文件系統(tǒng)添加系統(tǒng)調(diào)用的步驟
9.21 將TTY納入文件系統(tǒng)
9.22 改造printf
9.23 總結(jié)
第10章 內(nèi)存管理
10.1 fork
10.1.1 認(rèn)識(shí)fork
10.1.2 fork前要做的工作(為fork所做的準(zhǔn)備)
10.1.3 fork()庫函數(shù)
10.1.4 MM
10.1.5 運(yùn)行
10.2 exit和wait
10.3 exec
10.3.1 認(rèn)識(shí)exec
10.3.2 為自己的操作系統(tǒng)編寫應(yīng)用程序
10.3.3 “安裝”應(yīng)用程序
10.3.4 實(shí)現(xiàn)exec
10.4 簡單的shell
10.5 總結(jié)
第11章 尾聲
11.1 讓mkfs()只執(zhí)行一次
11.2 從硬盤引導(dǎo)
11.2.1 編寫硬盤引導(dǎo)扇區(qū)和硬盤版loader
11.2.2 “安裝”hdboot.bin和hdldr.bin
11.2.3 grub
11.2.4 小結(jié)
11.3 將OS安裝到真實(shí)的計(jì)算機(jī)
11.3.1 準(zhǔn)備工作
11.3.2 安裝Linux
11.3.3 編譯源代碼
11.3.4 開始安裝
11.4 總結(jié)
參考文獻(xiàn)

本目錄推薦

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