Linux内存怎么初始化


这篇文章主要讲解了“Linux内存怎么初始化”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux内存怎么初始化”吧!主要是完成通过memblock_add添加到系统中的物理内存映射,注意如果memblock设置了MEMBLOCK_NOMAP标志的话则不对其地址映射。这个函数基本上完成了linux对物理内存“划分”的初始化,包括node, zone, page frame,以及对应的数据结构。在讲这个函数之前,我们需要了解下物理内存组织。「Linux是如何组织物理内存的?」「node」:目前计算机系统有两种体系结构:「zone」:ZONE的意思是把整个物理内存划分为几个区域,每个区域有特殊的含义 香港云主机page」:代表一个物理页,在内核中一个物理页用一个struct page表示。「page frame」:为了描述一个物理page,内核使用struct page结构来表示一个物理页。假设一个page的大小是4K的,内核会将整个物理内存分割成一个一个4K大小的物理页,而4K大小物理页的区域我们称为page frame「page frame num(pfn)」 :pfn是对每个page frame的编号。故物理地址和pfn的关系是:物理地址>>PAGE_SHIFT = pfn「pfn和page的关系」:内核中支持了好几个内存模型:CONFIG_FLATMEM(平坦内存模型)CONFIG_DISCONTIGMEM(不连续内存模型)CONFIG_SPARSEMEM_VMEMMAP(稀疏的内存模型)目前ARM64使用的稀疏的类型模式系统启动的时候,内核会将整个struct page映射到内核虚拟地址空间vmemmap的区域,所以我们可以简单的认为struct page的基地址是vmemmap,则:vmemmap+pfn的地址就是此struct page对应的地址。感谢各位的阅读,以上就是“Linux内存怎么初始化”的内容了,经过本文的学习后,相信大家对Linux内存怎么初始化这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是开发云,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关推荐: Latex中如何使用bib文件批量生成bbl格式文件

这篇文章主要讲解了“Latex中如何使用bib文件批量生成bbl格式文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Latex中如何使用bib文件批量生成bbl格式文件”吧!一看就会的超详细教程:Spring…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 09/22 22:34
下一篇 09/23 16:26

相关推荐