linux内核中内存的使用


Linux内核中内存的使用:
  分配内存:

  unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order);
      mask :
      order : 决定分配到内存的大小范围是0~10,分配到内存的范围为4K * 2的order次方  4K ~ 4M

    返回值为分配到内存的虚拟地址

    注意:这个函数分配到的内存来自于低端内存,所以虚拟地址空间对于的物理地址空间是一段连续的地址空间
 
  void free_pages(unsined long addr, unsigned int order);
    addr: 要释放的内存的首地址(虚拟地址),就是__get_free_pages的返回值
    order:同上


  void *kmalloc(ssize_t size, gfp_t flags); //void *kzalloc(ssize_t size, gfp_t flags);
      使用:如果不考虑参数flags,使用方法与应用层的malloc完全相同
     
      size: 分配内存的大小,范围32B ~ 128KB

    注意:这个函数分配到的内存来自于低端内存,所以虚拟地址空间对于的物理地址空间是一段连续的地址空间












linux用户空间申请
PA=VA -c0000000+40000000
pa物理地址
va虚拟地址






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_27205523

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值