Linux0.11物理内存分布

前言

本文是基于Linux0.11源码来叙述该功能。本文就不贴Linux0.11的源码了,仅介绍一下逻辑,需要源码的可以在oldlinux.org上自行下载。

硬件条件

假定拓展内存是15M(与当年linus开发Linux0.11所拥有的内存空间一致),那么机器的总内存是1M+15M=16M的空间。

物理内存分布全景图

16M的物理内存功能分布如下图所示:
内存功能分布
如上图所示,在Linux0.11的源码下,16M的物理内存空间被划分成这样几个区域:

  • 页目录及内核页表:其实是包含进内核代码中的,这里特意划出来,页目录(1KB)以及内核页表(4个,4KB),4个内核页表可以映射16M的空间,内核态下物理内存等于线性地址等于逻辑地址。
  • 内核代码:末端由_end编译生成的末端地址。
  • 缓冲区头部、缓冲区:缓冲区头部用于管理缓冲区,并且串成链表,缓冲区被划分成一个个BLOCK(1024KB),用途最多的应该属磁盘的读写。
  • 显存:用于显示内存。
  • 页区:页区是由内核代码中的mem_map数组来管理,mem_map相当于引用计数(有进程引用则加一),页区被划分成一个一个页(4KB),页的用途实在太广,这里不一一赘述,大多都是为用户应用程序服务。

总结

可以看到,Linux0.11下的物理内存分布实际并不难,难的是怎么用,怎么管理。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值