E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
GDT
基于JOS 80x86 的堆栈切换简要分析
这里首先强调,一定一定要搞清楚分段和分页保护的机制.现有分段,后有分页,分页可有可无,看寄存器cr0是否开启PE位(pageenable.在JOS系统的boot.S里就已经开启了)文章从三个方面对栈进行分析0.
GDT
u011368821
·
2015-04-25 16:00
栈
X86
JOS
JOS lab3 部分用户程序分析
自顶向下的了解OS的机制分析的用户程序顺序随意,不按照难度排序badsegment.c:这里的唯一一行嵌入式汇编尝试把0x28这个数赋值给数据段寄存器DS看这里Globaldescribetable--
gdt
u011368821
·
2015-04-21 19:00
C#矩形框沿直线移动
C#中用
GDT
+的一系列方式,可以绘制各种图形:点,直线,圆形,矩形......C#中这些图形的绘制,一般教程的demo中给出的代码,是在Form1_Paint(objectsender,PaintEventArgse
·
2015-04-19 20:00
C#
[Rx86OS-XV] 键盘输入处理
/toolset/1通路键盘输入处理的流程似鼠标输入处理流程,需要提前配置好
GDT
和IDT,并初始化好PIC。1.1初始化键盘intkeydata0; structFIFO32*keyfifo;
misskissC
·
2015-04-17 18:00
利用qemu进行内核源码级调试
转载请注明出处:http://blog.csdn.net/
gdt
_a20=================================概要:看kernel代码的时候,变量多了,就记不清楚了,尤其是读内存部分代码的时候
linuxarmsummary
·
2015-04-10 09:00
《Orange's 一个操作系统的实现》学习笔记--LDT
LDT(LocalDescriptorTable)它和
GDT
差不多,都是描述符表(DescriptorTable)区别仅仅在于全局(Global)和局部(Local)的不同。
zthgreat
·
2015-03-29 19:18
【操作系统】
Linux0.11内核源代码(3)
16.仅一位有差距*/ mov%ax,%ds mov%ax,%es mov%ax,%fs mov%ax,%gs lss_stack_start,%esp callsetup_idt callsetup_
gdt
dayenglish
·
2015-03-08 21:00
linux
DPL,RPL,CPL 之间的联系和区别
操作系统就引入了访问特权等级(0-3)的机制.这些特权等级,通过三个符号来体现CPL/DPL/RPL.其中CPL是存寄存器如CS中,RPL是代码中根据不同段跳转而确定,以动态刷新CS里的CPL.DPL是在
GDT
simanstar
·
2015-02-12 16:00
linux
cpl
DPL
RPL
64位下好神奇啊
它是微软为了防止自己的代码被Patch,进而影响系统的稳定性引入的,这项技术会检查以下内容有没有被恶意修改过: 1- SSDT (System Service Descriptor Table) 2-
GDT
·
2015-01-15 22:00
64位
x86架构下的系统段描述符格式
如果还记得前面的
GDT
全局描述符表的话,那么一定不会忘记段描述符中有个s字段,若为0,则表示这个描述符是系统段,若为1,则是普通的段描述符;普通的段为ds,es,ss,cs等等,系统的段则有
GDT
YuZhiHui_No1
·
2015-01-04 21:00
架构
X86
Minix源码解读:Minix总体框架
设置boot栈,以便MINIX3结束后交还控制权 将boot的
GDT
(保护模式的
GDT
数据结构)拷贝到内核地址空间,并加载 设置内核段寄存器和栈
ShineXH
·
2014-12-11 13:00
Linux 内存管理机制
一、关于物理地址与虚拟地址转换在x86平台上虚实地址转换分为段式转换与页式转换:段式转换过程是将虚拟地址转换为线性地址;页式转换则是将线性地址转化为物理地址,段式转换示意图如下:X86支持两种段,
gdt
珉琥
·
2014-12-05 16:30
linux
内存管理
Linux/GTK
Linux 内存管理机制
一、关于物理地址与虚拟地址转换在x86平台上虚实地址转换分为段式转换与页式转换:段式转换过程是将虚拟地址转换为线性地址;页式转换则是将线性地址转化为物理地址,段式转换示意图如下:X86支持两种段,
gdt
珉琥
·
2014-12-05 16:30
linux
内存管理
一致代码段和非一致代码段
操作系统就引入了访问特权等级(0-3)的机制.这些特权等级,通过三个符号来体现CPL/DPL/RPL.其中CPL是存寄存器如CS中,RPL是代码中根据不同段跳转而确定,以动态刷新CS里的CPL.DPL是在
GDT
哭你吃完
·
2014-11-14 09:00
X86
80x86保护模式
获取全局描述符表
GDT
的内容
/stdfx.h文件 //Ring0环的程序 //测试环境VS2005 #ifndef_WIN32_WINNT//AllowuseoffeaturesspecifictoWindowsXPorlater. #define_WIN32_WINNT0x0501//ChangethistotheappropriatevaluetotargetotherversionsofWindows. #end
QQ1084283172
·
2014-11-09 20:00
Analysis of segment descriptor —— JOS
Analysisofsegmentdescriptor在/kern/env.c里面会看见
GDT
(globaldescriptortable)的定义,把用户空间的数据段,代码段与kernel数据段代码段分离开来
u011368821
·
2014-10-14 13:00
操作系统
Descriptor
linux设备模型之i2c子系统
转载请注明出处:http://www.cnblogs.com/
gdt
-a20=============================== I2c子系统将i2c控制器(i2c寄存器所在的那块电路
JK198310
·
2014-09-09 17:00
linux学习--linux内存管理整理
虚拟地址)通过(分页单元,由MMU控制)(3)物理地址段寄存器:(仅仅存放段选择符)cs:代码段寄存器ss:栈段寄存器ds:数据段寄存器 (以上是专门用途,不可改)esfsgs (以上三个随便执行任意段)
GDT
hao707822882
·
2014-08-30 17:00
linux系统原理学习
《30天自制操作系统》笔记(13)——总结
操作系统利用CPU的far模式的JMP指令、寄存器TR、
GDT
、TSS和PIT中断这些功能实现了多任务,可见CPU在设计时就考虑到了计算机要具有多任务处理的能力。
BIT祝威
·
2014-06-30 23:00
对虚拟化技术的理解
GuestOS运行在低特权级,涉及到需要特权级操作的时候,比如写CS或者
GDT
寄存器的时候,权限不错会导致异常,运行权自动交还给VMM,VMM可以使用一些二进制翻译的技术,比如把压cs寄存器的指令替换成压到栈上面
heiworld
·
2014-06-19 20:00
虚拟化
XV6 - bootsect.S
include"asm.h"#include"memlayout.h"#include"mmu.h".code16.globlstartstart: cli #关中断,防止干扰开启A20, 和保证设置
GDT
Pagination
·
2014-06-12 07:00
关于《30自制操作系统》第四章条纹图案的另一种实现
bootasm.asm使用了nasm格式代码,作用是切换到vga显示模式,开启A20地址线,设置
GDT
,进入保护模式,跳入32位汇编代码段,调用C语言编写的函数。
Pagination
·
2014-06-09 07:00
汇编
操作系统
C语言
linux内存管理之分页机制
每个段选择符包括:1、一个13位的索引,用来标识
GDT
或LDT中包含的对应段描述符条目。2、TI(Ta
赵梦茹2012
·
2014-05-30 16:31
linux
内存管理
分段机制
用汇编语言写保护模式。
[BITS16] org07c00h ;org指令明确告诉编译器我程序开始地址是07c00h,而不是 ;原来的00000jmpmaingdt_table_start:
gdt
_null
陈文豪
·
2014-05-20 20:38
汇编语言学习笔记
处理器大小端
最近在看linux内核书籍,在设置
GDT
表时又遇到了大小端的问题,在此做一下总结。供日后参考使用。起源:处理器的内存结构一般为一个地址上对应一个8bit的空间,也即能存储一个字节数据。
zhanglianpin
·
2014-05-19 17:00
处理器大小端
最近在看linux内核书籍,在设置
GDT
表时又遇到了大小端的问题,在此做一下总结。供日后参考使用。起源:处理器的内存结构一般为一个地址上对应一个8bit的空间,也即能存储一个字节数据。
zhanglianpin
·
2014-05-19 17:00
Linux内核学习第5天
请求特权级RPL(RequestedPrivilegeLevel):提供了段保护信息 表指示标志TI(TableIndex):用来指出包含指定段描述符的段描述表
GDT
luoyhang003
·
2014-05-10 23:00
linux内核
Linux 0.12 内核对内存的管理
每个进程都有一张段表LDT,整个系统有一张
GDT
表,且整个系统只有一个总页表。
yang_yulei
·
2014-04-24 23:00
第二天学习linux内核
虚拟地址是指有程序产生的由段选择符和段内偏移地址两个部分组成的地址,这两个地址并没有直接访问物理内存,而是通过分段地址变换机制处理或映射后才对应到实际的物理内存上,因此这种地址成为虚拟地址,虚拟地址空间由
GDT
陈洪波
·
2014-04-24 10:00
GDT
详解
在ProtectedMode下,一个重要的必不可少的数据结构就是
GDT
(GlobalDescriptorTable)。 为什么要有
GDT
?
dongfengkuayue
·
2014-04-16 15:00
微信分享给好友
= ""){//
gdt
traceid extargs = "tid=" +
powertech
·
2014-04-11 14:00
JavaScript
Ajax
LInux 描述符
GDT
, IDT & LDT结构定义
说明:此博文是Kernel有关
GDT
,LDT以及LDT的相关源码剖析,而对有关
GDT
,LDT以及IDT的详细说明以及原理讲解都可以在IntelIA-32架构手册中查到!
一根烂笔头
·
2014-04-03 15:21
linux
kernel
对Linux内存地址转换、保护模式的理解
相关概念:实模式、保护模式、
GDT
、LDT、物理地址、逻辑地址、线性地址(虚拟地址)实模式Intel80286时代使用的模式。访问內存是通过segment:offset找到內存的。
luckyjoy521
·
2014-03-21 11:00
《30天自制操作系统》学习笔记——暂停
甚至是很早前的
GDT
,为什么会有这样的设计?还有第21天的安全保护,到底怎么回事?说实话,因为一开始没有学习32位处理器的经历,看这些自然是莫名其妙的。前段时间看《Linux
u011879578
·
2014-03-18 16:00
《自己动手写操作系统》第五章:扩充内核
1、切换堆栈和
GDT
先来看看是如何切换的:108movesp,StackTop;堆栈在bss段中 109 110movdword[disp_pos],0 111 112sgdt[
gdt
_ptr];cstart
trochiluses
·
2014-03-17 17:00
kernel
Boot
loader
自己动手写操作系统
扩充内核
Linux 内存寻址
32bit体系结构可以表达4GB的地址空间物理地址:芯片内存单元寻址MMU通过分段单元将逻辑地址转换为线性地址;分页单元将线性地址转换为物理地址;分段的过程:段选择符有三个字段:1)Index字段,表示在
GDT
xiaozhuaixifu
·
2014-03-06 14:00
linux
cache
操作系统
分页
内存管理
<自己动手写操作系统>第三章——pmtest3源码解析:使用LDT
需要注意的是,LDT存在的前提是
GDT
,因为LDT本身是一个段中,需要由
GDT
中的信息,得到基地址。另外,这个场景,给出了段选择子,我们如何去索引描述
trochiluses
·
2014-03-04 09:00
保护模式
自己动手写操作系统
ldt
《自己动手写操作系统》第三章pmtest2源码解析
其中,一开始就进入了实模式,然后在实模式下初始化段描述符,处理
GDT
等,进入保护模式
trochiluses
·
2014-03-03 20:00
JMP
自己动手写操作系统
实模式与保护模式
长跳转
0entry
《自己动手写操作系统》第三章 pmtest1——从实模式到保护模式
1.头文件编写:这一部分,你需要把一些关键物理器件和数据结构的布局记在脑子里
GDT
描述符:32b段基地址(B2、B3、B4、B7)+20b段限长(B0、B1、B6的低4位)+12b段属性(B5、B6的高
谁不小心的
·
2014-03-02 22:43
自己动手写操作系统
自己动手写操作系统
实模式
保护模式
《自己动手写操作系统》第三章 pmtest1——从实模式到保护模式
1.头文件编写:这一部分,你需要把一些关键物理器件和数据结构的布局记在脑子里
GDT
描述符:32b段基地址(B2、B3、B4、B7)+20b段限长(B0、B1、B6的低4位)+12b段属性(B5、B6的高
trochiluses
·
2014-03-02 22:00
保护模式
实模式
自己动手写操作系统
Linux内核设计的艺术-前三章总结
特权级变化的本质是,cs,ds,es,fs,gs,ss的不同,特权级0从
GDT
中取得描述符,前面这些寄存器后3位为000,描述符特权级为00,特权级3从LDT中取得描述符,前面这些寄存器后3位为111,
jltxgcy
·
2014-03-02 13:00
保护模式编程——保护的详尽意义:通过调用门转移特权级
阅读本文之前,读者需要了解基本的处理器相关知识,知道分段和分页机制的基本原理,熟悉一些基本的数据结构(段选择符、描述符、
GDT
、页表、CR系列寄存器等),另外也需要懂一些基本的汇编知识
trochiluses
·
2014-02-20 22:00
操作系统
保护模式
处理器
保护的含义
多任务
#defineFIRST_TSS_ENTRY4//第一个TSS,存在于
gdt
中的第4项 #defineFIRST_LDT_ENTRY5//第一个LDT,存在于
gdt
中的第5项 #define_TSS(n
guocaigao
·
2014-02-11 11:00
GDT
和LDT
作者:billpig原作网址:http://blog.csdn.net/billpig/article/details/5833980保护模式下的段寄存器由16位的选择器与64位的段描述符寄存器构成段描述符寄存器:存储段描述符选择器:存储段描述符的索引PS:原先实模式下的各个段寄存器作为保护模式下的段选择器,80486中有6个(即CS,SS,DS,ES,FS,GS)80位的段寄存器,同时提供6个段
billpig
·
2014-01-20 09:00
《30天自制操作系统》第5天
结构体、文字显示与
GDT
/IDT初始化结构体 strucar {}test; 传参代替多个参数的传参。以前我们调用BIOS绘图,现在在32位模式下不能调用了,需要自己自力更生。
a379039233
·
2014-01-06 20:00
把进程放到ldt中
[3]; #definelldt()\ __asm__("movw$0x48,%%ax\n\t"\ "lldt%%ax\n\t"\ :::"ax") #defineDA_LDT0x82下面的工作就是在
gdt
guocaigao
·
2014-01-06 18:00
memcpy(&
gdt
,(void*)(*((u32*)(&
gdt
_ptr[2]))),*((u16*)(&
gdt
_ptr[0])) + 1)中参数的理解
先看定义:PUBLIC u8
gdt
_ptr[6];PUBLIC DESCRIPTOR
gdt
[
GDT
_SIZE];PUBLIC void* memcpy(void*pDst
xiaominthere
·
2014-01-04 20:00
指针
linux设备模型之input子系统
转载请注明出处:http://blog.csdn.net/
gdt
_A20==================================摘要:input子系统是kernel中比较简单的一个子系统,主要用来管理输入设备
ricks_wu
·
2013-12-30 23:00
linux
input
GDT
解说
在Protected Mode下,一个重要的必不可少的数据结构就是
GDT
(Global Descriptor Table)。 为什么要有
GDT
?
844133395
·
2013-12-25 00:04
寄存器
模型
用GDB检查内存段错误
一般来说,段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的
gdt
表,后13位保存相应于
gdt
的下标,最后3位包括了程序是否在内存中以及程序的在
u013805103
·
2013-11-28 11:00
上一页
7
8
9
10
11
12
13
14
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他