- 博客(16)
- 资源 (5)
- 收藏
- 关注
原创 过年了
过年了,长途拨涉,终于到家了,家里还是没有什么变化,但是心里却有一些伤感,因为每一年都代表着一个过去和一个开始,可是,总会有结束的那一天,不管是亲人的还是自己的。
2012-01-20 18:50:04 806
原创 保护模式跳回实模式的normal descriptor(续)
上一次转的文章(为什么保护模式跳回实模式要选择一个NormalSelectorhttp://blog.csdn.net/ruyanhai/article/details/7186970)中提到了描述符的高速缓存,但那篇文章说的不是很清楚,因此这里又总结了一下。 blog.csdn.net/ruyanhai众所周知,保护模式下,GDT存储在内存中,为了加快访问GDT中相关描述符的速度,x86
2012-01-17 16:07:34 1339
原创 bochs利用中断调试dos程序
本文主要内容:在bochs中运行dos程序,如何在程序的开始处中断使用bochs调试,如何在程序的任意位置下断点虽然在程序的入口处中断后,我们就可以随意使用bochs下断点了,但是毕竟不能像C/C++那么方便,使用函数名,或者文件名+行号就可以下断点,而是需要自己算偏移地址等。因此需要一种更加方便的下断点方法。 因为TD不能调试保护模式下的DOS程序,因此必须(或者是可
2012-01-13 22:35:46 2494
原创 ubuntu 11.10 x64编译安装bochs2.5.1
众所周知Apt-get安装的bochs是不带调试功能的,必须通过源码编译加上--enable-debugger才行。现在ubuntu源上的bochs版本是2.4.6,但是bochs网站已经发布了2.5.1(http://bochs.sourceforge.net/ ),因此我们直接编译安装bochs2.5.1。 编译源码从http://bochs.sourceforge.n
2012-01-12 20:23:21 2734
转载 为什么保护模式跳回实模式要选择一个NormalSelector
来自:http://blog.csdn.net/lancedegate/article/details/1558795段寄存器段基地址段界限(固定)存在性特权级已存取粒度扩展方向可读性可写性可执行堆栈大小一致特权CS当前CS*160000FFFFHY0YBUYYY-N
2012-01-09 12:48:36 1323
转载 磁盘的磁道(Track)
觉得写的特别好,就转过来了,原文链接:http://blog.csdn.net/badbad_boy/article/details/4313645写这篇文章,主要是为了解决长久以来的一个困惑。由此也可以看出偶以前确实不太聪明。 哈哈(虽然现在仍然还是)以前见到的很多磁道的示意图都是这样的:注意标线的位置,“指向一条线”,我当时的理解好像是这条线就是磁道。还有的解释是说磁道就是
2012-01-07 15:11:39 1811
原创 实模式跳转保护模式,代码全注释
最近正在阅读《orange's,一个操作系统的实现》,真是相见恨晚啊,那么多年就没有一本真正深入浅出弄点代码让我们入门和实践一下的书,感谢作者于渊。下面是第3章pmtest1.asm的全注释总结执行过程如下:初始化32位代码段的段基址,并存储到GDT中对应的描述符中准备GDT的基地址,并通过LGDT指令加载到GDTR寄存器中cli关中断打开地址线A20将CR0寄存器的PE位置1,进
2012-01-06 18:00:42 3053 2
原创 A20地址线
A20地址线并不是打开保护模式的关键,只是在保护模式下,不打开A20地址线,你将无法访问到所有的内存(具体参考下面的第5点)用于80286与8086兼容用于80286处于实模式下时,防止用户程序访问到100000h~10FFEFh之间的内存(高端内存)8086模式,A20关闭的情况下,访问超过1MB内存时,会自动回卷8086模式下,A20打开的情况下,访问超过1MB内存
2012-01-06 16:49:24 12051 9
原创 段界限为什么要减1
在orange's一个操作系统的实现,第3章,pmtest1.asm中,有如下代码 GdtPtr dw GdtLen - 1 ; GDT界限我们知道一个描述符中包含段基址和段界限,那么如果GdtLen是GDT的长度,为什么段界限要-1呢?因为段界限表达的是段内的最大偏移,而不是段的最大长度。一个简单的例子,加入一个段有如下内存:var1 db
2012-01-06 15:22:31 3251 4
转载 为什么全局描述符表GDT的第0项总是一个空描述符
用于当一个任务使用的所有段都是系统全局段时。GDTR(48位)用于描述GDT的基址和界限LDTR(16位)用于描述当前任务的LDT在GDT中的选择子。如果一个任务没有LDT,就会把LDTR清空,此时指向GDT中的第0项描述符,即为空描述符。转自:http://apps.hi.baidu.com/share/detail/24570154 LESSON4:为什么全局描述符表GDT
2012-01-06 14:41:00 4573 4
原创 NASM中SECTION的概念
SECTION是一种组织代码和存储的方式NASM支持标准的.data, .text和.bss,编译后的程序文件中的内存地址顺序是.text, .data,用户自定义section。NASM支持用户自定义section同名的section,编译后会放在同一块连续的内存上[SECTION .data]var1 db 0x01[SECTION .text]
2012-01-06 00:06:08 9034 3
原创 NASM的ORG 0100h的实际含义
PSP程序段前缀要了解ORG 0100h,就必须先了解程序段前缀PSP(Program Segment Prefix) 程序段前缀是一个操作系统(DOS)概念。当输入一个外部命令或通过EXEC子功能(系统功能调用INT21h,子功能号为4Bh)加载一个程序时,COMMAND确定当前可用内存的最低端作为程序段的起点,也就是程序被加载到内存空间的起点。在程序所占用内存的前256(0100h
2012-01-05 13:32:04 19952 6
原创 ubuntu11.10应用
安装字体从WIN7拷贝字体到ubuntu,双击该字体,然后install即可。Ubuntu中文输入法dash->ibus,启动ibusdash->systemsetting->languagesupport ->keyboardinputmethodsystem->ibus,保证ibus开机自启动sudoapt-get
2012-01-04 23:42:16 1070
原创 ubuntu11.10,vmware上网配置
在公司,主机WIN7,双网卡,一个外网,一个内网。VMware 8.0虚拟机安装ubuntu11.10,需要配置上网。1. vmware使用NAT模式 因为我们需要让ubuntu直接走win7的外网网卡出去。2. ubuntu使用dhcp模式3. vmware NAT模式详细配置如下:DHCP Settings ...
2012-01-03 16:02:01 1954
原创 ubuntu11.10打开终端的方法汇总
打开终端的方式汇总windows键,输入terminal打开dash,输入terminalctrl+alt+tsudo apt-get install nautilus-open-terminal,安装完成,注销以后再回来,就可以右键打开terminal了。
2012-01-03 13:53:37 2791 2
转载 ubuntu11.10 xdmcp连接
Enable XDMCP on Ubuntu 11.10root@blackbox:~# cp /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.$(date -I)root@blackbox:~# cat /etc/lightdm/lightdm.conf[SeatDefaults]greeter-session=unity-gr
2012-01-03 13:45:14 1682
Oracle ODBC driver
2008-12-19
GNU C手册完美版
2008-07-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人