主题 : 问一个很菜的问题:操作系统怎样知道硬件的内存是多少? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 7366
精华: 0
发帖: 45
金钱: 450 两
威望: 440 点
综合积分: 90 分
注册时间: 2009-07-12
最后登录: 2010-07-15
楼主  发表于: 2009-08-13 10:31

 问一个很菜的问题:操作系统怎样知道硬件的内存是多少?


是通过硬件的配置还是系统通过接口自动检测的?
或者(Linux系统)编译的时候指定的?
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
1楼  发表于: 2009-08-13 11:59
通常情況下,物理內存大小和起始地址是寫在bootloader代碼中的(這也是為什么bootloader是和開發板類型緊密相關的),而Linux內核在啟動時通過bootloader傳遞給它的ATAG知道物理內存的起始地址和大小,具體原理參考http://www.simtec.co.uk/products/SWLINUX/files/booting_article.html#ATAG_MEM。當然也可以在內核命令行上指定,比如mem=64M@0x30000000
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 7366
精华: 0
发帖: 45
金钱: 450 两
威望: 440 点
综合积分: 90 分
注册时间: 2009-07-12
最后登录: 2010-07-15
2楼  发表于: 2009-08-14 16:24

 回 1楼(kasim) 的帖子

十分感谢!

都找到Simtec Electronics那里去了……牛人
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2009-08-14 16:27

 Re:回 1楼(kasim) 的帖子

引用第2楼singbenshor于2009-08-14 16:24发表的 回 1楼(kasim) 的帖子 :
十分感谢!

都找到Simtec Electronics那里去了……牛人

只要是说的有道理的我都会找来看....
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."