操作系统
文章平均质量分 51
smartzmz
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
关于A20地址线
很多稀奇古怪的东西都是由于系统升级时,为了保持向下兼容而产生的,A20 Gate就是其中之一。在8086/8088中,只有20根地址总线,所以可以访问的地址是2^20=1M,但由于8086/8088是16位地址模式,能够表示的地址范围是0-64K,所以为了在8086/8088下能够访问1M内存,Intel采取了分段的模式:16位段基地址:16位偏移。其绝对地址计算方法为:16位基地址左移4位+16位偏移=20位地址。但这种方式引起了新的问题,通过上述分段模式,能够表示的最大内存为:FFFFh:FFFFh=F原创 2010-08-16 20:23:00 · 1188 阅读 · 0 评论 -
NASM中的寻址的问题
<br />(2009-07-13 21:36)<br />NASM 在表达式中支持两个特殊的记号,即'$'和'$$',它们允许引用当前指令的地址。'$'计算得到它本身所在源代码行的开始处的地址;所以你可以简单地写这样的代码'jmp $'来表示无限循环。'$$'计算当前段开始处的地址,所以你可以通过($-$$)找出你当前在段内的偏移。<br /> <br />有些时候,对于代码编译后的长度要求达到一个规定的值,需要在代码末尾填充若干个0,这时候,经常会使用到如下的语句:<br />原创 2010-08-16 20:25:00 · 1207 阅读 · 0 评论 -
关于“一致代码段”
<br />(2009-07-24 13:34)<br />“一致”的意思是,当转移的目标是一个特权级更高的一致代码段,当前的特权级会被延续下去,而向特权级更高的非一致代码段的转移会引起常规保护错误(gerneral-protection exception,#GP),除非使用调用门或者任务门。如果系统代码不访问受保护的资源和某些类型的异常处理(比如,除法错误和溢出错误),它可以被放在一致代码段中。为避免地特权级的程序访问而被保护起来的系统代码应放到非一致代码段中。<br /> <br />若目标代码的特权原创 2010-08-16 20:29:00 · 573 阅读 · 0 评论 -
关于内存探测
<br />(2009-08-12 19:29)<br />操作系统必须知道系统物理内存的数量,才能够有效的使用和管理这些物理内存。所以在booting阶段,我们必须通过某种手段来检测和获取物理内存的总量。<br />获取物理内存容量的方法主要分为两大类:一类是通过BIOS软中断方式获取,另一类是通过读取北桥芯片内存控制器相关寄存器获取。<br />第一类方法的优点是历史悠久,自80286以来,绝大多数IBM PC兼容机都提供这一功能,现在的Windows和linux也是通过这一类方法在启动阶段获取物理内存原创 2010-08-16 20:33:00 · 1343 阅读 · 3 评论 -
关于“实模式下能否访问1M以上内存”
<br />(2009-07-29 17:43 )<br />CPU上电后,从ROM中的BIOS开始运行,而Intel文档却说80x86 CPU上电后总是从最高内存下16字节开始执行。实际上,BIOS在内存的最顶端64K(FFFF0000H)和1MB之下的64KB(F0000H)处都出现。<br />在实模式下,CPU用段寄存器左移4位与偏移量相加,形成物理地址;在保护模式下,则是用段描述符中的基地址加上偏移量,形成物理地址。这两者其实是一样的,当80286推出时,其地址空间从8086的20位变成了24位,原创 2010-08-16 20:31:00 · 1810 阅读 · 0 评论 -
Win7与debian6搭建双系统(手动修复启动项)
因为实验需要,要在一台机器上搭建win7和debian6的双系统。下面记录一下系统搭建过程。1. 安装Windows7 64位版。一切按照默认选项进行安装,系统安装在第一个分区。2. 进入windows7系统,使用分区工具在磁盘的尾部分出两个FAT32分区(这里为D和E),其中D盘为linux安装分区,E盘将作为swap分区。3. 用光盘或者U盘安装debian6.0.5,在选原创 2013-09-11 10:55:36 · 2648 阅读 · 0 评论
分享