linux 上电执行的第一条代码是在内存里吗?
摘自oldlinux:
上电执行的第一条代码是在内存里吗?
“访问的F000h : FFF0h是内存的地址还是存放bios的rom地址 ”
这个是由北桥内的一个寄存器设置的(具体的资料你可以去找一些芯片组的资料)。当北桥收到CPU外部的地址总线上的信号时,会根据这个寄存器内的值来决定是从内存里取内容还是把这个地址传送给南桥--因为BIOS是挂在南桥的FWH上的,然后由南桥来读取BIOS里的内容。
由上面的描述可以看出,其实从0XE0000到0XFFFFF这段地址存在两个芯片,一个是ROM,一个是RAM,这也就是所谓的Shadow RAM
并且这个Shadow RAM机制是由BIOS来控制的,BIOS通过在上面据说的寄存器里设定值来开启或者关闭Shadow RAM,BIOS程序刚开始执行的时候Shadow RAM并没有打开,这时默认访问到的地址F000h : FFF0h会是ROM内的BIOS,开启Shadow RAM后再访问这个地址就会读到RAM内的内容了!
还有什么不理解的话请参考这篇讨论:
http://programmer-club.com/pc2020v5/Forum/ShowSametitleN.asp?URL=N&board_pc2020=assembly&index=122&id=5154&mode=&type_pc2020=sametitleLevel-2
相关文档:
这一段时间一直进行Linux on floppy的尝试,借此希望能对如何构造一个Linux发行版本、Linux的启动、Linux系统的裁剪有一个深刻的认识。
在进行中,我有一些自己的心得体会,尤其是如何构造一个较小的Linux系统。这里贴出其中的一部分,希望能与各位共同分享。有不对的地方,也望各位高手能不吝赐教。
构造Linux on flop ......
说到裁减Linux,无非是为了减小磁盘占用或者是为了某些特定场合的应用(如嵌入式系统)。以RedHat 7.3为例,其最小安装仍然达到了300M,这不得不让人对一直号称小而全的Linux系统感到疑惑。
作为自己手中课题的一个铺垫,不久前我尝试了对Linux进行裁减,虽然没有达到预期的一张软盘大小,但结果也相当有吸引力。下 ......
之前看了一些关于linux操作系统的教程,比较喜欢将这些东西记录在本子上,现在再将这些东西贴到博客上,和大家交流一下。很多linux高手说到,想要学好linux必须对其目录有个透彻的理解。以下是我总结的一些东西:
与Windows一样,在Linux中也是通过目录来组织文件的。但不同的是,在Linux下只有一个根目录,而不象Win ......
1.分段机制
80386的两种工作模式
80386的工作模式包括实地址模式和虚地址模式(保护模式)。Linux主要工作在保护模式下。
分段机制
在保护模式下,80386虚地址空间可达16K个段,每段大小可变,最大达4GB。
从逻辑地址到线性地址的转换由80386分段机制管理。段寄存器CS、DS、ES、SS、FS或GS标识一个段 ......