Chinaunix首页 | 论坛 | 博客
  • 博客访问: 861027
  • 博文数量: 366
  • 博客积分: 10267
  • 博客等级: 上将
  • 技术积分: 4290
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:04
文章分类

全部博文(366)

文章存档

2012年(366)

分类: Java

2012-04-04 17:27:33


Linux Virtual Memory Layout
Wtual Memory Spice Purpose
 
FFJf8000 .FFFFFFFF
        copy_user_page / clear_user_page use
FFFFI000 - FFFF7FFF
Reserved. P’atforms must not e this address raige.
FFFF0000 - FFFFOFFF
Cpu vector
FFC00000 - FFFEFFFF
DMA memory mapping region.
FF000000- FFBFFFFF
— Reserved fcw future expansion & DMA mappil reØon
VMALLOC_END. FEFFFFFF
 Free for platform usee, recommended.
VMALLOC_START - YMALLOC_END -1.
vmalloco/ loremap() space
PAGE_OFFSET - VMALLOC_START -1
 Kernel direct-mped RAM region
     TASK_SIZE - FGE_0FFSET .1
      Kernel modie space
0000i000 - TASK_SIZE -i
User space mappings
00000000 - 00000FFF
 Cpu vector page / null pointer trAP
 
66
几个重要的 分界线
See linuy./incluc/asrn.arm/memo,yh for following definitions
deflne TASK_SIZE (Oxbt000000UL)
#detlne PAGE_OFFSET (Oxc0000000UL)
#define VMAI.LOC_START (((unsigned Iong)hii_memory + VMALLOC_OFFSET) & -(lMALLOC_OFFSET-i))
#define VMAU.OC_END (OxE0000000)
 
 
 

 
 
66 总结pdf from
 
读后感
• The virtual address space of Linux is divided into two parts Ox00000000 to PAGE_OFFSET-i can be for process user space. PAGE_OFFSET to Oxifififif can be addressed only In kernel mode, PAGE_OFFSF1 Is usually Oxc00000000
 
 
 
•ln kernel mode, Linux Physical RAM address have a constant offset to virtual address, the constant is
PAGE_OFFSET PHYS_OFFSET.
 
 
•Linux Kernel spIel physical memory into page, page size usually 4KB size, Linux physical memory management Is Page-based.
 
 
•The boot-time allocator is kernel boot-time page allocator, It allocate physical contiguous page. Boot- time allocator is destroyed when buddy system initialized.
 
 
•The buddy system the kernel core page allocator. it allocate physical conteguoLs page
 
 
 
•The slab system Is
a cached object pro-allocated system,
 slab call buddy page allocator to buikng a slab,
a slab Is one or more physical contiguous page ,
contain many pro-allocated objects.
 
 Kmalloc return object in physical contiguous addrres
 
 
 
•vmalloc is usefull when need virtual contiguous page only.
 
•loremap Is not allocator, It only map specIal physical address to a virtual address, usually for I/O registers. You should access the address wIth wrlteb/readb/wrltew/readw.
 
 
什么时候需要 连续的内存(物理),in kernel
 
A:查代码 哪儿用了,呵呵
.
 
有ioremap 介绍
(浅)

阅读(1042) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~