基于 i386 体系结构的 Linux 启动代码分析 Embedded Operating Systems2 启动代码文件 linux/arch/i386/boot/bootsect.S linux/arch/i386/boot/setup.S linux/arch/i386/boot/compressed/head.S.

Slides:



Advertisements
Similar presentations
第 12 章位运算 C 语言兼具高级语言及低级语言的特性,因此 适合编写系统软件。 C 语言具备低级语言的特性 就在于它能直接对硬件进行操作,即位运算。 所谓位运算是指,按二进制位进行的运算。 例如,将一个存储单元中各二进位左移或右移一 位等。
Advertisements

LOGO 文献管理软件 NoteExpress 简介 《文献管理与信息分析》课程系列之九中国科学技术大学.
Linux 操作系统分析 中国科学技术大学计算机系 陈香兰( 0512 - ) Autumn 2009.
一、拟合优度检验 二、变量的显著性检验 三、参数的置信区间
Getting Ready to Enter x86 Protected Mode Survival tactics for enabling Protected-Mode with a minimum of supporting infrastructure.
Linux 操作系统分析 陈香兰 (西区电三 421 ) Autumn 2007.
Linux 下驱动程序简介 —USB 摄像头 CWY-CTS-SA117L 袁师盛 柴佳杰 孙融 王磊.
编译程序 构造原理和实现技术 授课教师:吕江花. 第一章 编译程序概述 主要内容: 几个基本概念 编译器的工作过程概述 编译器各个阶段的功能描述 编译程序的实现途径.
两极异步电动机示意图 (图中气隙磁场形象地 用 N 、 S 来表示) 定子接三相电源上,绕组中流过三相对称电流,气 隙中建立基波旋转磁动势,产生基波旋转磁场,转速 为同步速 : 三相异步电动机的简单工作原理 电动机运行时的基本电磁过程: 这个同步速的气隙磁场切割 转子绕组,产生感应电动势并在 转子绕组中产生相应的电流;
Defining protected-mode segment-descriptors An example of a protected-mode bootsector application that draws a message to the video display.
嵌入式操作系统 陈香兰 Fall 系统调用 10/27/09 嵌入式 OS 3/12 系统调用的意义  操作系统为用户态进程与硬件设备进行交互提供 了一组接口 —— 系统调用  把用户从底层的硬件编程中解放出来  极大的提高了系统的安全性  使用户程序具有可移植性.
2.2 结构的抗力 抗力及其不定因素 材料强度的标准值 材料强度的设计值.
Venturing into protected-mode A first look at the CPU registers and instructions which provide the essential supporting infrastructure.
系统调用 Embedded Operating Systems2 系统调用的意义 操作系统为用户态进程与硬件设备进行交互提 供了一组接口 —— 系统调用 把用户从底层的硬件编程中解放出来 极大的提高了系统的安全性 使用户程序具有可移植性.
Lecturer: Mu Lingling (穆玲玲)
嵌入式操作系统 Phone:
Linux 内核源代码导读 中国科学技术大学计算机系 陈香兰( 0551 - ) Spring 2009.
第十一章 曲线回归 第一节 曲线的类型与特点 第二节 曲线方程的配置 第三节 多项式回归.
Lei Zhao, USTC Gzip 编译及调试 Speaker: Lei Zhao ( 赵雷 ) Department of Computer Science & Technology University of Science & T echnology of China September 13,
嵌入式操作系统 陈香兰 Spring 2007 中国科学技术大学计算机系.
嵌入式操作系统 陈香兰 Spring 2006 中国科学技术大学计算机系.
Linux 操作系统分析 主讲:陈香兰 助教:贾永泉、毛熠璐 (西区电三 421 ) Autumn 2007.
Linux 操作系统分析 主讲:陈香兰 助教:贾永泉、毛熠璐 (西区电三 421 ) Autumn 2007.
Linux 内核源代码导读 中国科学技术大学计算机系 陈香兰( 0551 - ) Spring 2009.
内存寻址 Embedded Operating Systems2 在 intelx86 处理器下,有三种不同的地址 逻辑地址:每个逻辑地址由一个段 (segment) 和偏 移量 (offset) 组成 线性地址: 32 位无符号整数,可以表示 4G 的地址 空间.
嵌入式操作系统 陈香兰 助教:毛熠璐、吴昊 Spring 2008.
Segment-registers’ hidden bits A look at how segmentation attributes are cached within the CPU’s segment-registers.
大亚湾 PMT 读出电子学介绍 王铮 中科院 “ 核探测技术与核电子学重点实验室 ” 年会.
Linux 操作系统分析 主讲:陈香兰 助教:贾永泉、毛熠璐 (西区电三 421 ) Autumn 2007.
Venturing into protected-mode
1 自动化立体仓库模型研究 —— 苗晓翠. 2 自动化仓库 概念 优点 结构及入库工作流程 出库.
Linux 操作系统分析 中国科学技术大学计算机系 陈香兰( 0512 - ) 助教:裴建国、冯晓静 Autumn 2008.
基于误差修正算法的并行 交替采样 ADC 的应用. 并行交替采样 ADC 原理  并行交替采样 ADC ( Time-interleaved ADC, TI-ADC) 结 构能够将多片相对低采样率的 ADC 芯片组合起来构成高 采样率系统。
内存寻址 Embedded Operating Systems2 在 intelx86 处理器下,有三种不同的地址 逻辑地址:每个逻辑地址由一个段 (segment) 和偏 移量 (offset) 组成 线性地址: 32 位无符号整数,可以表示 4G 的地址.
量子化学 第四章 角动量与自旋 (Angular momentum and spin) 4.1 动量算符 4.2 角动量阶梯算符方法
第5章 键盘与鼠标接口 5.1 键盘概述 5.2 键盘的工作原理 5.3 PC扩展键盘接口 5.4 键盘中断与键盘I/O 5.5 鼠标接口.
第二章 处理器管理 南通大学电子信息学院 2010 年 9 月. 第二章 处理器管理 2.1 中央处理器 2.2 中断技术 2.3 进程及其实现 2.4 线程及其实现 2.5 Linux 进程和线程 2.6 Windows 2003 进程和线程 2.7 处理器调度 2.8 作业的管理与调度 2.9.
第 3 章 控制流分析 内容概述 – 定义一个函数式编程语言,变量可以指称函数 – 以 dynamic dispatch problem 为例(作为参数的 函数被调用时,究竟执行的是哪个函数) – 规范该控制流分析问题,定义什么是可接受的控 制流分析 – 定义可接受分析在语义模型上的可靠性 – 讨论分析算法.
国家高性能计算中心(合肥) 十五 并行程序设计环境与工具. 国家高性能计算中心(合肥) 并行程序设计环境与工具  15.1 软件工具与环境  15.2 并行编译器  15.3 并行程序调试  15.4 并行程序性能分析  15.5 图形化并行程序集成开发环境.
编译原理总结. 基本概念  编译器 、解释器  编译过程 、各过程的功能  编译器在程序执行过程中的作用  编译器的实现途径.
信息科学部 “ 十一五 ” 计划期间 优先资助领域 信息科学部 秦玉文 2006 年 2 月 24 日.
§8-3 电 场 强 度 一、电场 近代物理证明:电场是一种物质。它具有能量、 动量、质量。 电荷 电场 电荷 电场对外的表现 : 1) 电场中的电荷要受到电场力的作用 ; 2) 电场力可移动电荷作功.
Venturing into protected-mode A first look at the CPU registers and instructions which provide the essential supporting infrastructure.
陈香兰 助教:毛熠璐、吴昊 Spring 2008 嵌入式操作系统 陈香兰 助教:毛熠璐、吴昊 Spring 2008.
 符号表  标识符的作用: 声明部分:定义了各种对象及对应的属性和 使用规则。 程序体:对所定义的对象进行各种操作。 $ididname IdnameAttributeIR  必要性 Token : 新表-符号表(种类、类型等信息):
网上预约集港操作指南 一、登录系统 登陆下面图片显示网址:输入堆场用户名、密码和校验码登陆系统.
《 UML 分析与设计》 交互概述图 授课人:唐一韬. 知 识 图 谱知 识 图 谱知 识 图 谱知 识 图 谱.
1 张惠娟 副教授 实用操作系统概念. 2 内容框架 概述 体系结构 进程管理 内存管理 文件管理 外设管理.
LOGO s 数控机床故障诊断与维修. 子项目 8 掌握 M 、 T 代码的工作原理并进行控制 冷却、转速、刀库等 。 任务 8.3 编制斗笠式刀库换刀 PLC 程序,排除故障.
Chapter 3 Programming Languages Unit 1 The Development of Programming Languages.
项目七: PLC 功能指令应用 带进位循环左移指令 XXXXX. 项目七: PLC 功能指令应用 FX2 系列可编程控制器移位控制指令有移位、循环移位、字移位 及先进先出 FIFO 指令等 10 条指令。 带进位循环右移指令 RCR 带进位循环左移指令 RCL 字右移位指令 WSFR 先入先出读出指令.
第四章 计算机数控( CNC )系统  本章重点:  1 计算机数控系统构成及其结构特点  2 运动轨迹插补原理  3 刀具补偿.
超星数字图书馆 一、页面的使用 进入数字图书馆网页 下载超星阅读器 查找图书.
表单自定义 “ 表单自定义 ” 功能是用于制作表单的 工具,用数飞 OA 提供的表单自定义 功能能够快速制作出内容丰富、格 式规范、美观的表单。
项目 1 典型低压电器 的拆装、检修及调试 任务 2 交流接触器的拆装与检修 接触器是一种自动的电磁式自动开关,是 一种依靠电磁力作用使触点闭合或分离的自 动电器,用于接通和断开电动机或其它用电 设备电路。适用于远距离频繁地接通或断开 交直流主电路及大容量控制电路。交流接触 器具有控制容量大、操作方便、便于远距离.
力的合成 力的合成 一、力的合成 二、力的平行四边形 上一页下一页 目 录 退 出. 一、力的合成 O. O. 1. 合力与分力 我们常常用 一个力来代替几个力。如果这个 力单独作用在物体上的效果与原 来几个力共同作用在物体上的效 果完全一样,那么,这一个力就 叫做那几个力的合力,而那几个 力就是这个力的分力。
Date: File:SSP2_07C.1 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation 检测逻辑错误 ??
逻辑设计基础 1 第 7 章 多级与(或)非门电路 逻辑设计基础 多级门电路.
Agilent N9340B 手持式频谱分析仪.
八. 真核生物的转录 ㈠ 特点 ① 转录单元为单顺反子( single cistron ),每 个蛋白质基因都有自身的启动子,从而造成在功能 上相关而又独立的基因之间具有更复杂的调控系统。 ② RNA 聚合酶的高度分工,由 3 种不同的酶催化转 录不同的 RNA 。 ③ 需要基本转录因子与转录调控因子的参与,这.
1. 利用图形化开发环境 LabVIEW 对 Xilinx Spartan3E 进行编程 汤敏 NI 高校市场部.
U niversity of S cience and T echnology of C hina VxWorks 及其应用开发 陈香兰 年 7 月.
第三章 80386DX 保护模式的软件体系结构 P255, Line 4: 8x256=2048, LIMIT=07FF 16 P269, Line -10: FE 16 =
张勤 人大报刊复印资料 专题全文数据库 简 介简 介 《人大报刊资料全文数据库》是中国人民大 学书报资料中心与北京博利群电子信息有限 公司联合开发研制的大型数据库光盘。它涵 盖面广、信息量大、分类科学、筛选严谨、 结构合理,是国内最具权威的社会科学、人.
欢 迎 使 用 《工程流体力学》 多媒体授课系统 燕 山 大 学 《工程流体力学》课程组. 第九章 缝隙流动 概述 9.1 两固定平板间的层流流动 9.2 具有相对运动的两平行平板 间的缝隙流动 9.3 环形缝隙中的层流流动.
准备工作:文件-〉 “Word 选项 ” 表格的高级应用 设置多级标题 用 E - Learning 插入参考文献 设置个性化页眉、页脚 修订与批注 设置多序列页码 活用题注、尾注、脚注及交叉引用.
1 文件的查找. 2 回收站的管理 3 磁盘管理 格式化软盘 复制文件到软盘 整理磁盘碎片 4 格式化软盘.
Date: File: SSP1_A1C.1 SIMATIC S7 Siemens AG All rights reserved. Information and Training Center Knowledge for Automation 案例分析、指导.
2. MCS-51 单片机的组成及结构分析 2.1 MCS-51 单片机的内部结构及结构特点 1 )在 RAM 区有一个寄存器工作区( 4×8 个工作寄存器), 专门功能寄存器 SFR (完成定时器、串行口、中断逻辑等 控制)。 2 )程序存储器与数据存储器在空间上分开。 有不同的地址指针 PC 、
上机任务 认真查看课件内容,理解: ① ① I/O 接口的含义 ② ② I/O 端口与编址 上网查阅资料,至少找一篇 “I/O 接口 ” 有关的技术 资料(比如显卡、或声卡、网卡、磁盘控制器等 ) 的工作原理)并仔细阅读,扩展知识面。
Presentation transcript:

基于 i386 体系结构的 Linux 启动代码分析

Embedded Operating Systems2 启动代码文件 linux/arch/i386/boot/bootsect.S linux/arch/i386/boot/setup.S linux/arch/i386/boot/compressed/head.S linux/arch/i386/kernel/head.S linux/arch/i386/kernel/init_task.c linux/arch/init/main.c

Operating Systems3 实模式 实模式是为了兼容早期的 CPU 而设置的 系统总是始于实模式 实模式下 地址总线: 20 位 内存范围: 0~1MB 逻辑地址 = 段地址 + 段内偏移 段地址 = 段寄存器中的值 *16 (或左移 4 位) 段寄存器长度: 16bit

Operating Systems4 I386 实模式下的内存布局图 RAM 1-MB ROM-BIOS VIDEO-BIOS VRAM 0xA0000 0xC0000 0xF0000 0x00000

Operating Systems5 软盘和硬盘启动 软盘启动, bootsect.S 0x7c00  0x x7c00, BIOS 0x90000, lilo 堆栈, 0x3ff4(0x ), 向下增长 磁盘参数表, 12Bytes , 0x3ff4~0x4000 显示 “Loading” Setup  0x90200 系统 小内核, 0x10000 ( 64KB 处),低 装载 大内核, 0x ( 1MB 处),高 装载 setup 硬盘启动,两阶段引导 装载 LILO ( LInuxLOader ) 第一个扇区 … 装载 LINUX Bootsect.S  0x90000 Setup.S  0x90200 系统  0x10000  0x 跳转到 setup

Operating Systems6 Setup 初始化硬件设备并为内核程 序的执行建立环境 内存检测 键盘 视频 磁盘控制器 IBM 微通道总线 MCA PS/2 设备(总线鼠标) APM BIOS 若低装载,将系统移动到 0x1000 处( 4KB 处) 否则,不必 临时 IDT 和临时 GDT FPU PIC, 16 个硬件中断  中断向 量 32~47 实模式  保护模式 Startup_32

Operating Systems7 Compressed/head.S Startup_32 初始化段寄存器和一个临时堆栈 初始化 BSS 段 解压缩 高装载或低装载  解压缩  0x ( 1MB ) 跳转到 0x 处

Operating Systems8 Head.S Startup_32 初始化段寄存器 建立进程 0 的内核堆栈 Setup_idt 拷贝系统参数 识别处理器 GDT 、 IDT Start_kernel

Operating Systems9 The system-segment registers In protected-mode the CPU needs quick access to some important data-structures, such as: Memory-Segment Descriptors Interrupt-Gate Descriptors Call-Gate Descriptors Task-State Descriptors Page-Directory and Page-Table Descriptors Special CPU registers locate these items

Operating Systems10 GDT and IDT Two most vital system registers for protected-mode execution are: GDTR (Global Descriptor Table Register) IDTR (Interrupt Descriptor Table Register) 48-bits wide base-address + segment-limit (an array of descriptors, the GDT & the IDT) Special instructions SGDT/LGDT, SIDT/LIDT Segment Base-Address Segment Limit bits 32 bits

Operating Systems11 System Relationships descriptor Interrupt Descriptor Table Global Descriptor Table GDTR IDTR

Operating Systems12 LDT and TSS For protected-mode multitasking, the CPU needs to access two other data-structures: The current Local Descriptor Table (LDT) The current Task-State Segment (TSS) Again, special registers tell the CPU where to find these data-structures in memory (assuming protected-mode is enabled) Instructions: SLDT/LLDT, STR/LTR

Operating Systems13 Control Registers CR0 CR1 CR2 CR3

Operating Systems14 CR0 CR0, MSW register (Machine Status Word, 32-bit version) Contains system control flags that control operating mode and states of the processor PE-bit (Protection Enabled) 0  CPU is in real-mode, 1  CPU is in protected-mode Instruction: lmsw LINUX’ setup.S: movw $1, %ax lmsw %ax jmp flush_instr // why? flush_instr: To turn on the PE-bit (enables protected-mode),

Operating Systems15 CR1 、 CR2 、 CR3 CR1 Reserved CR2 Contains the page-fault linear address (the linear address that caused a page fault) CR3 Contains the physical address of the base of the page directory and two flags (PCD & PWT)

Operating Systems16 Segment Descriptor Format Base[31..24]GD RSVRSV AVLAVL Limit [19..16] P DPLDPL SX C/DC/D R/WR/W ABase[23..16] Base[15..0]Limit[15..0]

Operating Systems17 “Hidden” part of Segment Registers selectorSegment baseSegment limit Access rights The programmer-visible part of a segment-register The “invisible” parts of a segment-register indexTIRPL Segment selector

Operating Systems18 Three VRAM zones GRAPHICS MONOCHROME TEXT COLOR TEXT 64-KB 32-KB 0xA0000 0xB0000 0xB8000

Operating Systems19 Array of picture-elements Text-mode VRAM is organized as an array Each array-element occupies one word Word’s LSB holds ascii character-code Word’s MSB holds a color-number pair bgcolorfgcolorASCII character-code byte nybble

Operating Systems20 Color-Attribute Byte Blink RGB Intense GB R foreground color attribute background color attribute

Operating Systems21 Screen-element locations

Operating Systems22 逻辑地址 段:偏移量 线性地址 32 位无符号整数, 0~4G-1, 即 0x ~0xFFFFFFFF 物理地址 芯片级内存单元寻址 地址转换过程 内存寻址 物理地址线性地址 分段单元分页单元 逻辑地址

Operating Systems23 实模式?保护模式?分页? Real mode Exists mostly to maintain processor compatibility with older models, & To allow the OS to bootstrap

Operating Systems24 段选择子 indexTIRPL Segment selector

Operating Systems25 __KERNEL_CS 0x10 = b Index(0x2), TI(0), RPL(0, highest) limit(0xFFFFF), base(0), G(1, =4096), D(1,=32 位 ), P(1, in main memory), DPL(0, hignest), S(1), type(0xA) E(1), executable, code C(0), not current R(1), readable A(0), unaccessed gdt:.word 0, 0, 0, 0 # dummy.word 0, 0, 0, 0 # unused.word 0xFFFF # 4Gb.word 0 # base address = 0.word 0x9A00 # code read/exec.word 0x00CF # granularity(4096).word 0xFFFF # 4Gb.word 0 # base address = 0.word 0x9200 # data read/write.word 0x00CF # granularity(4096)

Operating Systems26 段描述符

Operating Systems27

Operating Systems28 逻辑地址的转换 Segment selector Logical Address: Segment-offset Operand’s effective address Physical Address: descriptor Segment Descriptor Table + Segment Base-address (also Segment-Limit and Access Rights) Validity is checked by CPU

Operating Systems29 分页 PG Paging (bit 31 of CR0). 1  Enables paging with PE=1,  Linear address space is divided into fixed-size pages (4KB, 2MB, or 4MB) that can be mapped into physical memory and/or disk storage using paging mechanism. 0  Disables paging, linear addresses = physical addresses.

Operating Systems30 lss lss a, %esp ; ds  es, a  esp