显然,GDT(global descriptor table)是系统与所有进程共用的。相对于 LDT(local descriptor table)则是进程独享的。GPRs、selector registers、stack pointers、eflags、LDT descriptor、CR3 构成了...
分类:
其他好文 时间:
2015-02-02 17:58:06
阅读次数:
235
利用Qemu进行内核源码级调试http://blog.csdn.net/gdt_a20/article/details/7231652用Qemu调试Linux内核http://blog.chinaunix.net/uid-26009923-id-3825761.htmlFrom printk to ...
分类:
其他好文 时间:
2015-01-31 21:50:04
阅读次数:
120
linux设备模型之led子系统本文来自转载:http://www.cnblogs.com/gdt-a20时代不同了,连led都成子系统了,针对内核提供的通用模型,分析一下,好久没写文章了也!代码位于drivers/leds下,看一下Makefile 模型文件主要是:# LED Coreobj-$(...
分类:
系统相关 时间:
2015-01-15 21:52:08
阅读次数:
187
系统级架构由寄存器、数据结构、指令组成,这些设计对基本的系统级别的操作提供了支持,比如:内存管理、终端与异常处理、任务管理、多进程控制等。 我们先来看一看寄存器与数据结构的总汇图:现在你可能看不懂,不过没关系,接下来我们一起学习。一、概述首先大体看一下这个图,左上角的EFLAGS和CR0~CR4是寄...
分类:
其他好文 时间:
2015-01-03 14:34:43
阅读次数:
213
源地址:http://blog.csdn.net/gdt_a20/article/details/7229989如图:为二极管与门电路,Vcc = 10v,假设3v及以上代表高电平,0.7及以下代表低电平,下面根据图中情况具体分析一下,1.Ua=Ub=0v时,D1,D2正偏,两个二极管均会导通, 此...
分类:
其他好文 时间:
2014-12-19 11:29:23
阅读次数:
167
1、着手开发前 开发步骤 1.编写源代码 2.用编译器编译 3.生成软盘映像 4.将映像写入磁盘,做成启动盘。2、计算机结构到汇编程序入门3、汇编语言学习与Makefile入门4、进入32位模式并导入C语言5、C语言与画面显示的练习6、结构体、文字显示与GDT/IDT初始化7、分...
分类:
其他好文 时间:
2014-10-30 16:54:03
阅读次数:
167
前言>___tasks0[i].flags = 0;20 taskctl->tasks0[i].sel = (TASK_GDT0 + i) * 8;21 set_segmdesc(gdt + TASK_GDT0 + i, 103, (int) &taskctl->ta...
分类:
其他好文 时间:
2014-09-26 12:52:39
阅读次数:
232
为了执行linux内的C语言main函数,上一篇讲到了,为了从汇编语言环境跳转到C语言环境下执行,将CPU工作模式从16位转变到32位模式(C语言是32位的),并且重新建立了GDT与IDT,但是此时GDT和IDT中并没有内容,所以不能进行内存寻址与中断,接下来就是初始化GDT和IDT了。
进入32位模式后,寄存器也将变为32位寄存器,下面的汇编语法和之前的intel汇编有些不同,为AT&T汇编,至于差别不在赘述。...
分类:
系统相关 时间:
2014-09-22 00:09:11
阅读次数:
377
这张图要注意:右边两个0-15,其中上面的是LDTR, 下面的是选择子. 图下第五个标线,是两个线交叉的,实际上第五个线是指向右边水平的那个线. 没有箭头的两组线分别表示GDT的区间,LDT的区间------------------------------------...
分类:
其他好文 时间:
2014-09-17 10:09:01
阅读次数:
248
保护模式:以XXXX:YYYYYYYY的方式来寻址。十六位的XXXX是段选择子,存放在段寄存器中cs,ds,ss,es,fs,gs段选择子在GDT中选择段描述符。GDT的基址在GDTR中。GDTR的基址加上段寄存器中的XXXX段选择子,可以得到该段的段描述符。段描述符中含有该段的32位基址。段描述符...
分类:
其他好文 时间:
2014-09-15 19:10:29
阅读次数:
199