zoukankan      html  css  js  c++  java
  • 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 介绍

      (浅)

  • 相关阅读:
    JavaScript 闭包(转)
    JavaScript 获取键盘扫描码
    前台网站优化方案
    设计模式之装饰者模式
    设计模式之蝇量模式
    设计模式之策略模式
    Algorithm学习之any_of
    Algorithm学习之all_of学习
    Algorithm学习之adjacent_find学习
    数据结构-表达式求值
  • 原文地址:https://www.cnblogs.com/titer1/p/2432125.html
Copyright © 2011-2022 走看看