Chinaunix首页 | 论坛 | 博客
  • 博客访问: 690491
  • 博文数量: 192
  • 博客积分: 1875
  • 博客等级: 上尉
  • 技术积分: 2177
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-23 23:21
个人简介

有时候,就是想窥视一下不知道的东东,因为好奇!

文章分类

全部博文(192)

文章存档

2024年(8)

2023年(3)

2020年(1)

2019年(1)

2018年(1)

2017年(2)

2016年(69)

2015年(53)

2014年(14)

2013年(1)

2012年(5)

2011年(25)

2010年(9)

分类: LINUX

2016-06-14 21:43:56

内核知识点收集
7. x86_64地址空间分配
    Virtual memory map with 4 level page tables:

 0000000000000000 - 00007fffffffffff (=47 bits) user space, different per mm
 hole caused by [48:63] sign extension
 ffff800000000000 - ffff87ffffffffff (=43 bits) guard hole, reserved for hypervisor
 ffff880000000000 - ffffc7ffffffffff (=64 TB) direct mapping of all phys. memory
 ffffc80000000000 - ffffc8ffffffffff (=40 bits) hole
 ffffc90000000000 - ffffe8ffffffffff (=45 bits) vmalloc/ioremap space
 ffffe90000000000 - ffffe9ffffffffff (=40 bits) hole
 ffffea0000000000 - ffffeaffffffffff (=40 bits) virtual memory map (1TB)
 ... unused hole ...
 ffffec0000000000 - fffffc0000000000 (=44 bits) kasan shadow memory (16TB)
 ... unused hole ...
 ffffff0000000000 - ffffff7fffffffff (=39 bits) %esp fixup stacks
 ... unused hole ...
 ffffffff80000000 - ffffffffa0000000 (=512 MB)  kernel text mapping, from phys 0
 ffffffffa0000000 - ffffffffff5fffff (=1525 MB) module mapping space
 ffffffffff600000 - ffffffffffdfffff (=8 MB) vsyscalls
 ffffffffffe00000 - ffffffffffffffff (=2 MB) unused hole

 The direct mapping covers all memory in the system up to the highest
 memory address (this means in some cases it can also include PCI memory
 holes).

 vmalloc space is lazily synchronized into the different PML4 pages of
 the processes using the page fault handler, with init_level4_pgt as
 reference.

 Current X86-64 implementations only support 40 bits of address space,
 but we support up to 46 bits. This expands into MBZ space in the page tables.

 ->trampoline_pgd:

 We map EFI runtime services in the aforementioned PGD in the virtual
 range of 64Gb (arbitrarily set, can be raised if needed)

 0xffffffef00000000 - 0xffffffff00000000
8. x86_64地址映射模型
 
9. linux进程记录内存映射关系
 
10. 物理内存相关概念
    a. 节点(node)
        非均匀性内存。CPU对不同的内存单元的访问时间不一样,访问时间相同的的一块内存称为一个节点(node)
    b. 区域(zone)
        每一个节点又进一步分为许多块,称为区域(zone)。区域表示一块内存区中的范围。
        ZONE_DMA                内存开始的16MB
        ZONE_NORMAL        16MB-896MB
        ZONE_HIGHMEM       896MB-结束
    c. 页面(page)
        ...
    
11. 空闲内存管理
    
    
12. 内存分配回收接口
    kmalloc()/vmalloc()/__get_free_pages()/alloc_pages()
    kfree()/vfree()/free_pages()
13. 内核进程栈
    
阅读(1213) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~