linux virtual memory layout by moniskiller upload [读书笔记]

未命名图片 1

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)

 

 

 

clip_image001

 

 

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 介绍

    (浅)

posted @ 2012-04-04 17:45  os66  阅读(1303)  评论(0编辑  收藏  举报