提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, / 11

Similar documents
untitled

投影片 1

1 CPU

A. 城 市 化 是 我 国 发 展 的 必 由 之 路 B. 单 纯 发 展 大 城 市 不 利 于 城 市 化 的 推 进 C: 要 实 现 城 市 化, 就 必 须 让 城 市 充 分 吸 纳 农 村 人 口 D: 大 城 市 对 外 地 农 村 人 口 的 吸 引 力 明 显 低 于 中 小


浙江大学本科论文模板

EC51/52 GSM /GPRS MODEN

Abstract arm linux tool-chain root NET-Start! 2

bnb.PDF

/ / (FC 3)...


提纲 1 2 OS Examples for 3

01

CC213

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt

逢 甲 大 學

<4D F736F F D20B5DAC8FDCBC4D5C2D7F7D2B5B4F0B0B82E646F63>

Chapter #

礼仪玉和葬玉

< A4BDA769A657B3E62E786C7378>

,750CC ( ) T101 98T102 98T202CVCS 98T

QR Code 技術之探討

里 再 说 吓 唬 了 孩 子, 肯 定 方 宁 不 忍 所 以 她 不 死 便 罢, 倘 若 死, 只 有 到 办 公 室 沈 若 鱼 冷 静 得 好 像 在 评 点 某 一 电 视 剧 中 的 女 主 角 你 说 她 是 怎 么 死 的? 先 生 又 感 惊 骇 吃 安 眠 药 沈 若 鱼 成

我眼中的好老师

(譯本)

上 海 农 商 银 行 理 财 产 品 风 险 揭 示 书 理 财 资 金, 则 客 户 面 临 产 品 期 限 延 期 调 整 等 风 险 8. 信 息 传 递 风 险 : 上 海 农 商 银 行 将 按 照 本 说 明 书 有 关 信 息 公 告 的 约 定, 进 行 产 品 信 息 披 露 客

1406.indd

上图专刊2006-3AAA.doc

衡山靈學創始人 超越時代的靈學明師 許衡山 老師 許衡山老師 出生於西元 1942 年 於 1980 年代啟發先天眼竅 自證其道 了悟真理 許 老師首先發現 人人皆可開發出第三眼能力與靈性能量 並藉由系統化的研究 將種種 生命現象與宇宙真理做深入淺出的剖析 並為生命的最終意義指出一條明路 現代文明昌

슬로시티번역,더빙 등 보고서(중문)_두현.hwp


?



EP.pdf

第53期内页.cdr

untitled

1 CPU interrupt INT trap CPU exception

06721 main() lock pick proc() restart() [2][4] MINIX minix2.0 GDT, IDT irq table[] CPU CPU CPU CPU (IDTR) idt[] CPU _hwint00:! Interrupt

一 根据所给图表,回答下列问题。

<4D F736F F D20C7B6C8EBCABDCFB5CDB3C9E8BCC6CAA6B0B8C0FDB5BCD1A75FD1F9D5C22E646F63>

PowerPoint Presentation

《宽带上网手册》

Microsoft Word - 澎湖田調報告-宏達組9804.doc

平 凡 足 迹 李 本 川 作 者 为 中 国 科 学 院 海 洋 研 究 所 研 究 员,1935 年 生, 山 东 荣 成 人 我 今 年 63 岁 了 大 前 年 丈 夫 和 儿 子 在 一 个 月 内 先 后 离 开 了 人 世, 女 儿 又 已 出 嫁, 现 在 是 孑 然 一 身 我 是

今天 年春季号 总 92 期

*

( ) / / / / / / /

(Microsoft Word - 8\244T\244\362\277\337\272]\244W\265L\246W.doc)

Microsoft Word - 專家本色 doc


但, 你 应 该 听 过 我 们 走 在 大 路 上 这 首 歌, 或 许 还 知 道 革 命 人 永 远 是 年 轻 那 支 歌 ; 并 且, 几 乎 可 以 肯 定, 你 在 戴 红 领 巾 的 那 阵, 必 然 唱 过 牛 儿 还 在 山 坡 吃 草, 放 牛 的 却 不 知 道 哪 儿 去

2 临 终 助 念 答 问 序 临 终 关 怀, 由 佛 门 净 宗 古 来 祖 师 大 德 提 倡 助 念 往 生, 现 今 已 渐 为 社 会 大 众 所 重 视, 在 台 湾, 台 大 长 庚 等 各 大 医 院, 也 都 设 有 助 念 室 ; 大 陆 上 许 多 道 场, 也 有 专 为

校园之星

<4D F736F F F696E74202D FA8BEA861B8EAB7BDBEE3A658BB50C0B3A5CE28B773A6CBA5AB29>


之 原 則 及 國 防 部 訂 頒 國 軍 列 管 國 有 不 動 產 提 供 非 軍 方 單 位 使 用 處 理 原 則 規 定 不 符, 仍 應 以 出 租 方 式 辦 理 惟 可 就 偏 遠 地 區 提 供 官 兵 金 融 水 電 服 務 使 用 部 分, 研 議 降 低 租 金 標 準, 報

chineseall

釋禪波羅蜜次第法門

证券代码: 证券简称:锦江股份 公告编号:【】

1700 装 卸 搬 运 7645 装 卸 搬 运 服 务 2100 建 筑 7410 工 程 服 务 11% 装 卸 搬 运 服 务, 是 指 使 用 装 卸 搬 运 工 具 或 者 人 力 畜 力 将 货 物 在 运 输 工 具 之 间 装 卸 现 场 之 间 或 者 运 输 工 具 与 装 卸

前 言 教 育 无 小 事, 它 成 就 着 学 生 的 未 来 作 为 教 师, 他 们 无 时 无 刻 不 在 关 注 着 学 生 的 成 长 学 生 的 未 来 学 生 就 像 一 朵 含 苞 待 放 的 花 朵, 需 要 老 师 们 的 细 心 呵 护, 给 学 生 需 要 的 东 西, 而

《盗墓笔记》 南派三叔/著

<CFFBB7D1D5DFD0D0CEAAD1A72E6D7073>

独立学院建设与发展


Microsoft Word - Introduction to Big Real Mode _CHT_.doc

目录 1 概述 IA-32 体系结构内存地址映射 CPU 相关寄存器 系统寄存器 内存管理寄存器 保护模式的内存管理 位时页面机制地址映射 逻辑地址到线性地址的映射...9

Microsoft Word - 選擇_無解答2_.doc

(Load Project) (Save Project) (OffLine Mode) (Help) Intel Hex Motor

4 25,887,432 24,017,720 (22,276,482) (20,881,677) 3,610,950 3,136, ,415,375 2,280, , ,517 (4,973,881) (4,558,202) (646,824) (560,1

2011国家司法考试试题(试卷一)

一.NETGEAR VPN防火墙产品介绍

Microsoft PowerPoint - C15_LECTURE_NOTE_05.ppt

第一次段考 二年級社會領域試題 郭玉華 (A)(B) (C)(D)

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 一 一 般 公 共 服 务 支 出 二

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

(E). (A) (B) (C) (D) (E). (A) (B) (C) (D) (E) (A) (B) (C) (D) (E) (A) (B) (C) (D). ( ) ( ) ( ) ( ) ( ) ( ) (A) (B) (C) (D) (E). (A) (B) (C) (D) (E). (

Microsoft PowerPoint - os_4.ppt

Microsoft PowerPoint - C15_LECTURE_NOTE_04.ppt

untitled

Bus Hound 5

ebook 132-6

一月七日

09

A Preliminary Implementation of Linux Kernel Virus and Process Hiding

Table of Contents Design Concept 03 Copyrights & TradeMark 04 Special Notice 05 Notice to concerned 05 Installation and Registration Introduction 07 s

untitled

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP

<4D F736F F D F F315FAAFEA5F333AAF9B645C2E5C0F8AA41B0C8C249BCC6B24DB3E6B443C5E9A5D3B3F8AEE6A6A12E646F63>

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

Microsoft Word 宜蘭2日_藥師公會_[1].doc

Microsoft Word - 災潛資料更新網站系統操作手冊 _V1.2.doc

一、注意事项

目 錄 校 徽 圖 解 1 校 訓 釋 義 2 中 華 人 民 共 和 國 國 歌 3 順 德 聯 誼 總 會 屬 校 校 歌 4 辦 學 宗 旨 及 目 標 5 校 規 8 獎 懲 制 度 14 其 他 規 定 23 注 意 事 項 29 附 錄 33

Microsoft Word - 新建 Microsoft Word 文档.doc

ebook 158-1

37 立 豐 車 業 林 口 區 新 北 市 林 口 區 工 六 路 26 號 (02) CR 錡 銳 車 業 林 口 區 新 北 市 林 口 區 粉 寮 路 一 段 19 號 (02) 尚 捷 車 業 八 里 區 新 北 市 八 里 區 商 港 路

Transcription:

.. 软件综合实验之操作系统 进入保护模式 陈香兰 中国科学技术大学计算机学院 July 1, 2016 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 1 / 11

提纲. 1 实验准备. 2 从实模式进入保护模式. 3 小结 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 2 / 11

实验准备 实验环境准备 编译工具链 :gcc ld 模拟环境 :qemu-system-i386 基础知识和技能准备 BIOS 中断和键盘输入 i386 保护模式使用 hexdump 查看 bin 文件和 img 文件中的内容 ( 对照 : 尝试查看你磁盘的 MBR 的内容 ) 使用 objdump 反汇编目标文件 xxx.o 和 elf 文件 ( 对照 : 尝试反汇编 xxx.bin 文件 ) 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 3 / 11

BIOS 中断和键盘输入 BIOS 中断参考 : https://en.wikipedia.org/wiki/bios_interrupt_call#interrupt_table.1 显示相关 :int 0x10 作业 1: 请将示意代码中的字符输出改成使用 BIOS 中断的方式.2 键盘相关 :int 0x16 AH 00h Description Read Character 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 4 / 11

i386 的分段机制 I386 体系结构采用分段机制 逻辑地址 = 段 : 段内偏移 使用 16 位段寄存器来指明当前所使用的段 有六个 :cs, ss, ds, es, fs 和 gs CPU 规定了 3 个寄存器的专门的用途 cs 代码段寄存器, 指向存放程序指令的段 ss 堆栈段寄存器, 指向存放当前堆栈的段 ds 数据段寄存器, 指向存放数据的段 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 5 / 11

I386 的地址转换模式 : 实模式和保护模式 实模式 (20 位 ) 16 位段寄存器只记录段基址的高 16 位, 因此段基址必须 4 位对齐 ( 末 4 位为 0) 不采用虚拟地址空间, 直接采用物理地址空间物理地址 = 段寄存器值 *16+ 段内偏移 保护模式 (32 位 ) 16 位段寄存器无法直接记录段的信息, 因此需要与全局描述符表 GDT 配合使用 GDT 中记录了每个段的信息 ( 段描述符 ), 段寄存器只需记录段在 GDT 中的序号 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 6 / 11

GDT 表 One 8-bytes segment descriptor for each segment GDT is stored in memory Registers GDTR stores the base address of a GDT The GDTR is 48 bits long The lower 16 bits tell the size of the GDT, and the upper 32 bits tell the location of the GDT in memory. instruction: lgdt src 47 16 15 0 LIMIT BASE ADDRESS GDT Regitster 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 7 / 11

GDT 表 Segment selector ( 段选择子 ): The value in segment register, 16-bits 15 2 1 0 index Segment selector TI RPL 1. Index: 13 bits, the index of corresponding segment descriptor in GDT 2. Table Indicator, TI-bit: 1 bit, GDT? LDT? 3. Request privilege level, RPL-bits: 2 bits 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 7 / 11

GDT 表 Linear address = segment base + offset GDT or LDT Linear address Descriptor + + GDTR or LDTR 8 15 Segment selector2 1 0 index TI RPL : offset Logical address 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 7 / 11

GDT 表 Types of segment descriptors: 1. Data Segment Descriptor ( 数据段描述符 ): for data/stack segments 2. Code Segment Descriptor ( 代码段描述符 ): for code segments 3. Task State Segment Descriptor ( 任务状态段描述符 ) 4. LDT Descriptor (LDT 描述符 ) 5. System Segment Descriptor ( 系统段描述符 ) 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 7 / 11

GDT 表 Contents of segment descriptors: Base (32-bits): Segment start address in physical memory Limit (20-bits): for segment length G-bit (1-bit): the unit of segment length (0: 1= 1B; 1: 1=4KB) S-bit (1-bit): system segment (0) or not (1) Type (4-bits): for code/data/tss/ldt/etc BIOS 中断和键盘输入 DPL-bits (2-bits): descriptor privilege level of the segment (00b~11b) Segment present flag (1-bit): present (1) or not (0)... 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 7 / 11

GDT 表 Contents of segment descriptors: DataBase Segment (32-bits): Descriptor Segment start address in physical memory 63 62 61 59 58 57 56 55 54 53 52 51 50 48 47 46 45 44 43 42 40 39 38 37 36 34 33 32 Limit (20-bits): for segment length BASE(24-31) G 0 A V LIMIT D S B 1 P = TYPE BASE(16-23) G-bit (1-bit): the unit L of (16-19) segmentl length 1 (0: 1= 1B; 1: 1=4KB) BASE(0-15) LIMIT(0-15) S-bit 31 30(1-bit): 29 28 26 25 24system 22 21 20 19 segment 18 17 16 15 (0) 14 13 or11not 10 9 (1) 8 7 6 5 4 3 2 1 0 CodeType Segment (4-bits): Descriptor for code/data/tss/ldt/etc BIOS 中断和键盘输入 DPL-bits 63 62 61 59 (2-bits): 58 57 56 55 54descriptor 53 52 51 50 48 47 privilege 46 45 44 43 42 level 40 39 38 of37the 36 34segment 33 32 (00b~11b) BASE(24-31) G 0 A V LIMIT D S D 1 P = TYPE BASE(16-23) L (16-19) L 1 Segment present flag (1-bit): present (1) or not (0) BASE(0-15) LIMIT(0-15)... 31 30 29 28 26 25 24 22 21 20 19 18 17 16 15 14 13 11 10 9 8 7 6 5 4 3 2 1 0 System Segment Descriptor 63 62 61 59 58 57 56 55 54 53 52 51 50 48 47 46 45 44 43 42 40 39 38 37 36 34 33 32 BASE(24-31) G 0 A V LIMIT D S 1 P = TYPE BASE(16-23) L (16-19) L 0 BASE(0-15) LIMIT(0-15) 31 30 29 28 26 25 24 22 21 20 19 18 17 16 15 14 13 11 10 9 8 7 6 5 4 3 2 1 0 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 7 / 11

GDT 表 Selector and the quick access to descriptor Segment Descriptor table Descriptor Segment register segment selector ( Non-programmable register segment descriptor 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 7 / 11

打开保护模式开关 控制寄存器 CR0 的最后一位是保护模式开关 31 0 P E CR0 Regitster 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 8 / 11

从实模式进入保护模式.1 阅读源代码 start16_rm2pm.s start16_rm2pm.ld.2 编译链接并制作成二进制映像 gcc -c -m32 start16_rm2pm.s -o start16_rm2pm.o ld -T start16_rm2pm.ld start16_rm2pm.o -o start16_rm2pm.elf objcopy -O binary start16_rm2pm.elf start16_rm2pm.bin.3 制作启动软盘 dd if=/dev/zero of=a_start16_rm2pm.img bs=512 count=2880 sudo losetup /dev/loop4 a_start16_rm2pm.img sudo dd if=start16_rm2pm.bin of=/dev/loop4 bs=512 count=1 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 9 / 11

从实模式进入保护模式.4 在 qemu 上启动 qemu-system-i386 -fa a_start16_rm2pm.img 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 9 / 11

从实模式进入保护模式.4 在 qemu 上启动 qemu-system-i386 -fa a_start16_rm2pm.img 作业 : 请在 O.K.! 后添加回车换行, 另起一行输出 We are now in PROTECT MODE! 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 9 / 11

使用 hexdump 查看 bin 文件 hexdump -C output/start16_rm2pm.bin 查看 img 文件 hexdump -C output/a_start16_rm2pm.img 查看我磁盘 MBR 的内容 sudo dd if=/dev/sda of=sda_mbr.bin bs=512 count=1 ( 其中,/dev/sda 是你的磁盘, 若你有多个磁盘, 可以选择不同的磁盘查 ( 还可能是 /dev/hd*) hexdump -C sda_mbr.bin 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 10 / 11

小结.. 谢谢! 陈香兰 ( 中国科学技术大学计算机学院 ) 软件综合实验之操作系统 July 1, 2016 11 / 11