码迷,mamicode.com
首页 >  
搜索关键字:gdt    ( 83个结果
Linux内核系列—12.b.操作系统开发之从Loader跳入保护模式
现在,内核已经被我们加载进内存了,该是跳入保护模式的时候了。 首先是GDT以及对应的选择子,我们只定义三个描述符,分别是一个0~4GB的可执行段、一个0~4GB的可读写段和一个指向显存开始地址的段: 在之前学习保护模式时,大部分描述符的段基址都是运行时计算后填入相应位置的,因为那时我们的程序是由BI ...
分类:系统相关   时间:2016-04-17 15:55:48    阅读次数:247
IDT Hook和GDT的学习
对于IDT第一次的认知是int 2e ,在系统调用的时候原来R3进入R0的方式就是通过int 2e自陷进入内核,然后进入KiSystemService函数,在根据系统服务调用号调用系统服务函数。而2e就是IDT(系统中断描述符表)中的索引位2e的项,而KiSystemService就是该项的例程函数 ...
分类:其他好文   时间:2016-04-03 22:01:05    阅读次数:206
常见的Linux下的段错误 及解决办法
一、段错误 所谓的段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位.....
分类:系统相关   时间:2016-01-26 10:33:24    阅读次数:344
操作系统学习之GCC内联汇编
GCC内联汇编(INLINE ASSEMBLY) 什么是内联汇编(Inline assembly)? 1、这是GCC对C语言的扩张,就是在C代码里面去写汇编代码 2、可以直接在C的语句中插入汇编指令 有何用处? 1、C语言不足以完成所有CPU的指令, 特别是有一些特权指令,比如加载gdt表...
分类:其他好文   时间:2016-01-24 18:14:26    阅读次数:181
【从头开始写操作系统系列】页表以及相关的描述符详解
在之前的文章中,我们介绍过 GDT(全局描述符表)以及一致代码段和非一致代码段,这篇文章我们再回到描述符,这次我们来以 ARM 架构为例了解一下页表描述符。 在这篇文章中,我们会看到以下内容: 页表是什么? 一级页表的地址变换过程 由一级描述符来获取二级描述符或者段地址的过程...
分类:其他好文   时间:2015-12-26 01:18:19    阅读次数:1621
进程结束后,进程的所有内存都将被释放,包括堆上的内存泄露的内存。
进程结束后,进程的所有内存都将被释放,包括堆上的内存泄露的内存。原因是,当进程结束时,GDT、LDT和页目录都被操作系统更改,逻辑内存全部消失,可能物理内存的内容还在但是逻辑内存已经从LDT和GDT删除,页目录表全部销毁,所以内存会被全部收回。一下这段代码,我个人认为可以作为例证,不对请多指教:[c...
分类:系统相关   时间:2015-11-20 19:57:40    阅读次数:174
GDT、GDTR、LDT、LDTR的理解
GDT是全局描述附表,主要存放操作系统和各任务公用的描述符,如公用的数据和代码段描述符、各任务的TSS描述符和LDT描述符。(TSS是任务状态段,存放各个任务私有运行状态信息描述符)LDT是局部描述符表,主要存放各个任务的私有描述符,如本任务的代码段描述符和数据段描述符等。GDTR是一个长度为48b...
分类:其他好文   时间:2015-09-20 11:54:27    阅读次数:214
【从头开始写操作系统系列】一致代码段与非一致代码段
上几篇文章,我们一直在讨论的都是 GDT 相关的一些问题,现在我们知道在系统在从实模式向保护模式跳转时,GDT 是必须要准备的结构。在介绍这一跳转之前,这篇文章我们来介绍两个概念:一致代码段和非一致代码段。 首先,我们先来看几个问题: 一致代码段和非一致代码段是什么? 为什么要有一致代码段和非一致代码段? 系统提供怎样的机制来使用户程序访问内核数据? 程序如何在段与段之间跳转? 接下来,我们将讨论上...
分类:其他好文   时间:2015-08-18 19:35:26    阅读次数:116
【从头开始写操作系统系列】实现一个-GDT(1)
在这篇文章中我们完成了以下内容: 介绍 GDT 介绍段描述符 实现一个段描述符 介绍 GDTGDT 是什么?GDT(Global Descriptor Table)是一种数据结构,用来提供段式存储机制,这种机制是通过段寄存器和 GDT 中的描述符共同提供的。在保护模式下,虽然现在的寄存器已经有32位的,但是我们依旧采用『段:偏移』的形式来寻址,只不过『段』的概念就相当于 GDT,段值仍然由16位的...
分类:其他好文   时间:2015-08-07 14:50:06    阅读次数:153
阅读linux内核需要的名词注释
IDT:中断描述符表(Interrupt Descriptor Table,IDT)将每个异常或中断向量分别与它们的处理过程联系起来。 GDT:全局描述符表,在英特尔x86系列处理器的80286起,为了定义的特点使用不同的存储区,在程序执行期间,包括基地址,大小和访问权限,如可执行可写。 LDT:局部描述符表(LDT --- Local Descriptor Table)是保护模式下存储器寻址...
分类:系统相关   时间:2015-08-04 21:07:59    阅读次数:193
83条   上一页 1 ... 3 4 5 6 7 ... 9 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!