linux内核中内存的使用

来源:互联网 发布:js 动画效果百叶窗 编辑:程序博客网 时间:2024/04/29 22:52

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虚拟地址






0 0
原创粉丝点击