本节内容概要描述了Linux内核从开机引导到系统正常运行过程中对堆栈的使用方式。这部分内容的说明与内核代码关系比较密切,可以先跳过。在开始阅读相应代码时再回来仔细研究。Linux 0.12系统中共使用了4种堆栈。第1种是系统引导初始化时临时使用的堆栈;第2种是进入保护模式之后提供内核程序初始化使用的...
分类:
系统相关 时间:
2015-02-05 20:11:13
阅读次数:
202
系统调用与系统本身的实现方式有关,在不同的操作系统上有很大的区别,例如在uxit 和linux及dos系统上以中断的方式来实现,而由于windows系统的保护模式,汇编程序无法任意中断(除非是处于特权状态下的代码),用户代码通过特定的接口(门)来实现系统调用。前者的调用方式为提供函数的编号(linu...
分类:
编程语言 时间:
2015-02-04 14:25:35
阅读次数:
216
本文为 第12章笔记别名技术我们都已经知道, 在保护模式下, 代码段是不可写入的. 所谓不可写入, 并非是说改变了内存的物理性质, 使得内存写不进去, 而是说, 通过该段的描述符来访问这个区域时, 处理器不允许向里面写入数据或者更改数据. 但是, 很多时候又需要修改代码段, 如调试时加入断点指令in...
分类:
其他好文 时间:
2015-02-03 12:41:06
阅读次数:
180
本文为 第11章笔记以下图2, 图4和图5截自Intel手册全局描述符表全局描述符表中存放着段描述符, 每个段描述符8个字节.为了跟踪全局描述符表, 处理器内部有一个48位寄存器, 叫做全局描述符表寄存器(GDTR), GDTR分为两部分,分别为32位的线性地址和16的边界, 32位线性基地址部分保...
分类:
其他好文 时间:
2015-02-03 12:38:52
阅读次数:
274
segment descriptors 构建保护模式下的最基本、最根本的执行环境。system descriptors 则构建保护模式下的核心组件:1、TSS descriptor 提供硬件级的进程切换机制 2、LDT descriptor 供进程使用多个 descriptor 3、Gate des...
分类:
其他好文 时间:
2015-02-02 17:55:23
阅读次数:
197
感觉自己对于操作系统始终没有一个清楚的概念,尤其最近困扰于实模式、保护模式以及寻址方式等一些概念。转而一想,所有的程序,最终都是操作的计算机资源,需要和操作系统打交道,所以操作系统有必要深入了解一下。最终想要自己动手编写一个简单的版本,上网查。网友对于于渊的《Orange'S:一个操作系统的实现》和...
分类:
其他好文 时间:
2015-01-29 19:15:49
阅读次数:
221
《80x86汇编语言程序设计》保护模式第一个例题的一些个人理解和注释; 16位偏移的段间直接转移指令的宏定义 02.jump macro selector, offsetv 03. 04. db 0eah ; jmp far 的操作码 05. dw...
分类:
编程语言 时间:
2015-01-29 12:35:34
阅读次数:
204
最经看《80x86汇编语言程序设计》杨季文等著,里面的保护模式的例子无法调试,后来查到bochs可以调试,就折腾了一番,这里写下吧……>>>>>>>>>>>>>>>>>>>>>>>无耻的分割线>>>>>>>>>>>>>>>>>>>>>>>>下载地址:Bochs:http://bochs.source...
分类:
其他好文 时间:
2015-01-29 12:17:20
阅读次数:
246
自己动手写操作系统 第四章总结本章主要内容是建立一个功能比較完好的引导扇区也称为 boot sector首先回想一下一个操作系统从开机到执行的过程1.引导2.载入内核入内存3.跳入保护模式4.開始运行内核可见在内核開始运行前还有非常多工作要做,假设所有交给boot sector,512字节非常可能不...
分类:
其他好文 时间:
2015-01-25 18:06:28
阅读次数:
264
ARM处理器模式用户模式(User):ARM处理器正常的程序执行状态快速中断模式(FIQ):用于高速数据传输或通道处理外部中断模式(IRQ):用于通用的中断处理管理模式(Supervisor):操作系统使用的保护模式数据访问终止模式(Abort):当数据或指令预取终止时进入该模式,可用于虚拟存储及存...
分类:
其他好文 时间:
2015-01-25 11:04:11
阅读次数:
295