注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(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)開(kāi)發(fā)

購(gòu)買(mǎi)這本書(shū)可以去


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

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

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

作者簡(jiǎn)介

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

圖書(shū)目錄

上篇
第1章 馬上動(dòng)手寫(xiě)一個(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下的開(kāi)發(fā)環(huán)境
2.5 Windows下的開(kāi)發(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 海闊憑魚(yú)躍
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 頁(yè)式存儲(chǔ)
3.3.1 分頁(yè)機(jī)制概述
3.3.2 編寫(xiě)代碼啟動(dòng)分頁(yè)機(jī)制
3.3.3 PDE和PTE
3.3.4 cr3
3.3.5 回頭看代碼
3.3.6 克勤克儉用內(nèi)存
3.3.7 進(jìn)一步體會(huì)分頁(yè)機(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)額外說(shuō)明
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)盤(pán)
4.1.3 一個(gè)最簡(jiǎn)單的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下用匯編寫(xiě)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)說(shuō)明
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 最簡(jiǎn)單的進(jìn)程
6.3.1 簡(jiǎn)單進(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è)簡(jiǎn)單的系統(tǒng)調(diào)用
6.5.2 get_ticks的應(yīng)用
6.6 進(jìn)程調(diào)度
6.6.1 避免對(duì)稱(chēng)——進(jìn)程的節(jié)奏感
6.6.2 優(yōu)先級(jí)調(diào)度總結(jié)
第7章 輸入/輸出系統(tǒng)
7.1 鍵盤(pán)
7.1.1 從中斷開(kāi)始——鍵盤(pán)初體驗(yàn)
7.1.2 AT、PS/2鍵盤(pán)
7.1.3 鍵盤(pán)敲擊的過(guò)程
7.1.4 用數(shù)組表示掃描碼
7.1.5 鍵盤(pán)輸入緩沖區(qū)
7.1.6 用新加的任務(wù)處理鍵盤(pán)操作
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 完善鍵盤(pán)處理
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來(lái)替換系統(tǒng)調(diào)用get_ticks
8.5 總結(jié)
第9章 文件系統(tǒng)
9.1 硬盤(pán)簡(jiǎn)介
9.2 硬盤(pán)操作的I/O 端口
9.3 硬盤(pán)驅(qū)動(dòng)程序
9.4 文件系統(tǒng)
9.5 硬盤(pán)分區(qū)表
9.6 設(shè)備號(hào)
9.7 用代碼遍歷所有分區(qū)
9.8 完善硬盤(pán)驅(qū)動(dòng)程序
9.9 在硬盤(pán)上制作一個(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 打開(kāi)文件
9.15 讀寫(xiě)文件
9.16 測(cè)試文件讀寫(xiě)
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()庫(kù)函數(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)編寫(xiě)應(yīng)用程序
10.3.3 “安裝”應(yīng)用程序
10.3.4 實(shí)現(xiàn)exec
10.4 簡(jiǎn)單的shell
10.5 總結(jié)
第11章 尾聲
11.1 讓mkfs()只執(zhí)行一次
11.2 從硬盤(pán)引導(dǎo)
11.2.1 編寫(xiě)硬盤(pán)引導(dǎo)扇區(qū)和硬盤(pán)版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 開(kāi)始安裝
11.4 總結(jié)
參考文獻(xiàn)

本目錄推薦

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