`
longxj
  • 浏览: 101831 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

linux 进程的内存布局

阅读更多

linux的进程有2种memory region layout:
1.classic layout
2.flexible layout
见<understanding the linux kernel>-819页
type of memory regionclassic layout flexible layout
text segment(elf) start from 0x08048000
data and bss segments start right after text
heapstart right afte the data and bss

file memory mapping and start from 0x40000000|starts near the end of the anonymous memory regions libraries added at successive |user mode

higter address| stack;libraries added

at successive lower

address
user mode stack start at 0xc0000000 and grows towards lower address

class layout的缺点在于heap的大小不能超过1g,flexible layout的缺点在于必须要知道stack使用的最大大小。
2009/02/15 日

分享到:
评论

相关推荐

    glibc内存管理ptmalloc源代码分析@华庭1

    2.1 X86平台Linux进程内存布局 在X86架构的Linux系统中,进程的内存布局分为几个主要区域:代码段、数据段、堆、栈和虚拟内存映射区域。在32位模式下,经典的进程内存布局将栈和堆分别位于地址空间的高和低部分,而...

    linux内存管理实验报告

    首先,Linux内存管理采用虚拟内存技术,将每个进程的地址空间划分为多个区域,如堆、栈、代码段、数据段等。每个进程看到的是独立的虚拟地址空间,而实际的物理内存则被操作系统动态地映射和管理。这种方式使得进程...

     Linux进程存储管理.ppt

    综上所述,Linux进程存储管理涵盖了内存分配策略、C语言内存管理API的使用、内存错误检测和调试工具的应用,以及对进程内存空间布局的理解。掌握这些知识对于编写高效、健壮的Linux程序至关重要。程序员应熟悉这些...

    内存管理与调试详细剖析

    ##### 2.1 X86平台Linux进程内存布局 **2.1.1 32位模式下进程内存经典布局** 在32位模式下,Linux进程的虚拟地址空间通常被划分为几个部分:代码段、数据段、堆、栈和未初始化的数据段。这些部分按照一定的顺序...

    glibc内存管理ptmalloc源代码分析-清晰版.pdf

    文档首先介绍了X86平台上的Linux进程内存布局,接着详细阐述了操作系统提供的内存分配相关函数,如heap操作函数和mmap映射区域操作函数。随后,通过一系列章节对ptmalloc的设计思想、关键数据结构、配置选项以及初始...

    linux 程序加载过程1

    首先,我们要了解Linux进程内存布局的主要组成部分,包括代码段、数据段、BSS段、栈、堆以及参数。当程序开始执行时,这些部分的信息会被更新到进程控制块(task_struct)中,而非直接将内容复制到内存。 在程序...

    glibc内存管理ptmalloc源代码分析4.pdf

    X86平台Linux进程内存布局 在X86平台上,Linux进程的内存布局通常分为几个区域:代码段、数据段、堆、栈和共享库。其中,堆区域由ptmalloc管理,用于动态内存分配。 - **32位模式下的经典布局**:代码段和数据段...

    glibc内存管理ptmalloc源代码分析

    **X86平台Linux进程内存布局** 1. **32位模式下进程内存经典布局** - 用户空间:从0x8048000到0xC0000000,其中包括代码段、数据段、栈段等。 - 内核空间:从0xC0000000到0xFFFFFFFF。 2. **32位模式下进程默认...

    Glibc内存管理Ptmalloc2源代码分析

    #### X86平台Linux进程内存布局 1. **32位模式下进程内存经典布局**:用户空间从0x08048000开始,最高可达0xC0000000;内核空间则从0xC0000000到0xFFFFFFFF。 2. **32位模式下进程默认内存布局**:动态链接器通常会...

    glibc内存管理ptmalloc源代码分析.pdf

    2.1 X86平台Linux进程内存布局 进程的内存布局分为多个区域,如文本段、数据段、堆、栈等。在32位模式下,经典的内存布局通常将高地址分配给堆,低地址分配给栈,中间是全局数据和代码。而在64位模式下,内存空间更...

    Linux中进程创建和内存空间申请

    总的来说,Linux进程创建和内存管理涉及复杂的权限转换和内存布局策略。`move_to_user_mode()`确保了安全的权限切换,`mem_map`数组和相关数据结构则提供了精细的内存资源管理,使得系统能够高效地调度和分配内存,...

    Linux进程结构

    ### Linux进程结构详解 在深入探讨Linux进程结构之前,我们首先需要明确,给出的示例似乎是基于Windows操作系统下的_EPROCESS结构描述,而非直接关联于Linux的进程结构。然而,这并不妨碍我们以此为引,详细解析...

    glibc内存管理ptmalloc源代码分析1

    #### 1.1 X86平台Linux进程内存布局 在X86架构的Linux系统中,进程的内存空间通常分为以下几个区域: - **文本段(Text Segment)**:包含可执行代码。 - **数据段(Data Segment)**:初始化全局变量和静态变量...

    malloc源码分析glibc库

    文档首先介绍了与内存管理相关的基础知识,包括X86平台Linux进程内存布局、操作系统内存分配的相关函数等;随后,通过详细的源代码分析,揭示了ptmalloc的内部工作机制,如边界标记法、分箱式内存管理、核心结构体...

    Linux操作系统内存管理.pdf

    Linux操作系统的物理内存与虚拟内存的布局可以用图1G和图2来表示。图1G显示了物理地址分配,与实际的CPU相关。图2显示了物理地址的分布,896MB直接映射到虚拟地址的内存空间,这是一一对应的映射,只有起始地址不...

    Linux内核内存管理技术分享

    Linux内核内存管理技术是一个复杂的系统,涉及到计算机体系结构、MMU、Cache、DMA、EPT、虚拟地址空间布局、伙伴系统、SLAB、用户空间地址布局、匿名页和文件页、缺页异常、反向映射、内存规整、OOM、KSM、巨型页、...

    linux源代码分析之内存管理

    该结构体包含了关于进程虚拟内存布局的关键信息,例如内存区域描述符、交换缓存等。 ##### 2.6 VM_AREA_STRUCT `vm_area_struct`是用于描述虚拟内存区域的数据结构。每个虚拟内存区域(如代码段、数据段等)都有...

    linux内存管理结构图

    5. **虚拟内存**:Linux使用虚拟内存系统,让每个进程都有自己独立的4GB虚拟地址空间,即使系统物理内存远小于这个值。虚拟内存通过页表映射实现,使得进程可以访问超出物理内存大小的数据。 6. **内存分配图解**:...

Global site tag (gtag.js) - Google Analytics