QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1340|回复: 7

linux内核引导问题

[复制链接]
发表于 2004-1-13 10:48:58 | 显示全部楼层 |阅读模式
最近看linux代码的分析有许多不明白的地方请指教。
在引导的时候,比如内核装入0x10000,Setup.S装入9000:0200等,这些内存地址是人为随便规定的还是操作系统必须装在这里?有什末规律?bootsect.S为什末一开始时要将自己般致0x90000处运行般到那不都是512k吗,刚接触linux原码还没有入门请多指教
 楼主| 发表于 2004-1-13 10:56:44 | 显示全部楼层
现在多数的书都是告诉你“是什末“,但从来不说“为什末“。哎~~~郁闷~~~。估计他们也不明白
回复

使用道具 举报

发表于 2004-1-13 12:04:29 | 显示全部楼层
這些應該是Linus Torvalds當時寫Linux自己定義的,只有引導程序bootsect最初放在0x7c000,因為是由bios調用,所以是確定的,不能更改。至於將自己搬到0x90000是因為Linus Torvalds設想Linux內核大小上限為512K,由於system一開始被加載到0x10000處,自然的想法是把原來在0x7c00處的bootsec搬到0x90000了(0x90000-0x10000=0x80000=512K),當然,你搬到別處是完全可以的,只要你跳轉時知道地址,別跳錯地方就好至於0x90200的來歷,bootsect佔用磁盤上的一個扇區(引導扇區),一個扇區的大小為512字節,換算成16進制就是200,那麼setup自然從0x90200開始了

PS:我也是昨天才開始讀0.11版的內核的(為什麼讀0.11?因為0.11小啊,而功能又相對比較完整了,對於理解內核是個很好的版本喔),理解有誤的地方請大家指教。

我的書是<Linux 内核0.11 详细注释>作者:赵炯,感覺很不錯
回复

使用道具 举报

发表于 2004-1-13 12:07:53 | 显示全部楼层
下面是Linus Torvalds在0.11版對bootsect.s的注釋

bootsect.s is loaded at 0x7c00 by the bios-startup routines, and moves
iself out of the way to address 0x90000, and jumps there.
It then loads 'setup' directly after itself (0x90200), and the system
at 0x10000, using BIOS interrupts.

  currently system is at most 8*65536 bytes long. This should be no
problem, even in the future. I want to keep it simple. This 512 kB
kernel size should be enough, especially as this doesn't contain the
buffer cache as in minix

The loader has been made as simple as possible, and continuos
read errors will result in a unbreakable loop. Reboot by hand. It
loads pretty fast by getting whole sectors at a time whenever possible.
回复

使用道具 举报

 楼主| 发表于 2004-1-13 12:54:53 | 显示全部楼层
非常感谢!hyla请问网上有没有下载?<Linux 内核0.11 详细注释>
回复

使用道具 举报

发表于 2004-1-13 13:49:51 | 显示全部楼层
我就是網上下的,不過地址不記得了,一下子也找不到。你要的話我發給你好了。PDF檔,2.49M,你看是mail給你還是找個FTP吧
回复

使用道具 举报

发表于 2004-1-13 16:23:50 | 显示全部楼层
剛剛發現這裡有一篇相關的帖子,但是他給的下載地址我打不開,你試試吧

http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=39889
回复

使用道具 举报

 楼主| 发表于 2004-1-13 19:57:26 | 显示全部楼层
谢了!下完了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 09:53 , Processed in 0.038204 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表