linux0.01内核源代码及注释

linux0.01内核源代码及注释

ID:12031854

大小:1.80 MB

页数:472页

时间:2018-07-15

linux0.01内核源代码及注释_第1页
linux0.01内核源代码及注释_第2页
linux0.01内核源代码及注释_第3页
linux0.01内核源代码及注释_第4页
linux0.01内核源代码及注释_第5页
资源描述:

《linux0.01内核源代码及注释》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Bootsect.s(1-9)!!SYS_SIZEisthenumberofclicks(16bytes)tobeloaded.!0x3000is0x30000bytes=196kB,morethanenoughforcurrent!versionsoflinux!SYS_SIZE是要加载的节数(16字节为1节)。0x3000共为1234560x7c000x00000x900000x100000xA0000system模块代码执行位置线路0x90200!0x30000字节=192kB(上面Linus

2、估算错了),对于当前的版本空间已足够了。!SYSSIZE=0x3000!指编译连接后system模块的大小。参见列表1.2中第92的说明。!这里给出了一个最大默认值。!!bootsect.s(C)1991LinusTorvalds!!bootsect.sisloadedat0x7c00bythebios-startuproutines,andmoves!iselfoutofthewaytoaddress0x90000,andjumpsthere.!!Itthenloads'setup'directl

3、yafteritself(0x90200),andthesystem!at0x10000,usingBIOSinterrupts.!!NOTE!currentlysystemisatmost8*65536byteslong.Thisshouldbeno!problem,eveninthefuture.Iwanttokeepitsimple.This512kB!kernelsizeshouldbeenough,especiallyasthisdoesn'tcontainthe!buffercachea

4、sinminix!!Theloaderhasbeenmadeassimpleaspossible,andcontinuos!readerrorswillresultinaunbreakableloop.Rebootbyhand.It!loadsprettyfastbygettingwholesectorsatatimewheneverpossible.!!以下是前面这些文字的翻译:!bootsect.s(C)1991LinusTorvalds版权所有!!bootsect.s被bios-启动子程序加载

5、至0x7c00(31k)处,并将自己!移到了地址0x90000(576k)处,并跳转至那里。!472!它然后使用BIOS中断将'setup'直接加载到自己的后面(0x90200)(576.5k),!并将system加载到地址0x10000处。!!注意!目前的内核系统最大长度限制为(8*65536)(512k)字节,即使是在!将来这也应该没有问题的。我想让它保持简单明了。这样512k的最大内核长度应该!足够了,尤其是这里没有象minix中一样包含缓冲区高速缓冲。!!加载程序已经做的够简单了,所以持续的

6、读出错将导致死循环。只能手工重启。!只要可能,通过一次取取所有的扇区,加载过程可以做的很快的。.globlbegtext,begdata,begbss,endtext,enddata,endbss!定义了6个全局标识符;.text!文本段;begtext:.data!数据段;begdata:.bss!堆栈段;begbss:.text!文本段;SETUPLEN=4!nrofsetup-sectors!setup程序的扇区数(setup-sectors)值;BOOTSEG=0x07c0!original

7、addressofboot-sector!bootsect的原始地址(是段地址,以下同);INITSEG=0x9000!wemoveboothere-outoftheway!将bootsect移到这里--避开;SETUPSEG=0x9020!setupstartshere!setup程序从这里开始;SYSSEG=0x1000!systemloadedat0x10000(65536).!system模块加载到0x10000(64kB)处;ENDSEG=SYSSEG+SYSSIZE!wheretosto

8、ploading!停止加载的段地址;!ROOT_DEV:0x000-sametypeoffloppyasboot.!根文件系统设备使用与引导时同样的软驱设备;!0x301-firstpartitiononfirstdriveetc!根文件系统设备在第一个硬盘的第一个分区上,等等;ROOT_DEV=0x306!指定根文件系统设备是第2个硬盘的第1个分区。这是Linux老式的硬盘命名!方式,具体值的含义如下:!设备号=主设备号*256+次设备号(也即dev_no=(maj

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。