linux 存储器管理
aaa6695798
这个作者很懒,什么都没留下…
展开
-
Linux内存管理
本文首先介绍一下Linux内存管理方式,着重说明一下用户空间的内存管理,包括Linux虚拟映射以及GLIBC中malloc的实现;然后简要介绍单进程多线程的内存管理方式,主要涉及各线程堆栈空间的分配;Linux内存管理Linux采用两级保护机制,隔离内核空间和用户程序空间,使用户程序无法直接访问内核,而只能通过系统调用的方式。对于32位CPU来说,Linux虚拟内存空间大小为4G,转载 2009-09-09 13:41:00 · 754 阅读 · 0 评论 -
嵌入式Linux物理内存映射
The physical memory map for Linux is completely independent from the virtual map and is designed to maximize contiguous space. Given that the kernel image will always be at the start of DRAM, the Linu转载 2009-09-25 09:18:00 · 650 阅读 · 0 评论 -
Linux执行以及虚拟内存之用
Linux Execution and Virtual Memory Utilization Linux执行以及虚拟内存之用When Linux boots, it starts with the MMU disabled, so initially it deals only with physical memory. The kernel image is copied to physical转载 2009-09-24 20:17:00 · 391 阅读 · 0 评论 -
虚拟内存管理简单例子
说明:来自陈莉君的博客,感谢辛勤劳动,和无私奉献 环境:redhat 2.6.15 实现目的: 通过实验了解虚拟内存 实验内容:在proc 文件系统下,我们建立一个文件,每次向这个文件写人字符时,调用相应的虚拟内存处理函数下面为代码 /*mtest_dump_vma_list():打印出当前进程的各个VMA,这个功能我们简称"listvma"原创 2009-09-24 17:35:00 · 1054 阅读 · 1 评论 -
让虚拟内存管理触手可及(三)-触及真实数据
你是否有这样的想法,给某个地址写入自己所想写的数据? static void mtest_write_val(unsigned long addr, unsigned long val){ struct vm_area_struct *vma; struct mm_struct *mm = current->mm; struct page *page; unsigned转载 2009-09-23 15:29:00 · 332 阅读 · 0 评论 -
虚地址转换为物理地址(new)
一、 与页相关的数据结构及宏的定义 分页机制是硬件对分页的支持,这是虚拟内存管理的硬件基础。要想使这种硬件机制充分发挥其功能,必须有相应软件的支持,我们来看一下Linux所定义的一些主要数据结构,其分布在include/asm-i386/目录下的page.h,pgtable.h及pgtable-2level.h三个文件中。 1. 表项的定义 如上所述,PGD、PMD及PT转载 2009-09-23 15:21:00 · 979 阅读 · 0 评论 -
让虚拟内存管理触手可及(二)-虚实转换
把一个虚地址转换为物理地址本是一个复杂的过程,在此,去掉哪些枝枝叶叶,只留下树干。 一个虚地址转换成物理地址是通过页表这个桥梁的,三级页表包括:·PGD(Page Global Directory)·PUD(Page Upper Directory)·PMD(Page Middle Directory)·PT(Page Table)其中页表项用pte(Page Tabe Entry)表示一个物转载 2009-09-23 14:52:00 · 643 阅读 · 0 评论 -
让虚拟内存管理触手可及(一)-VMA显身
一个程序编译、连接后形成的地址空间就在虚拟地址空间,在内核中,用mm_struct结构描述,为了有效的管理整个虚拟空间,又把此空间分为一个个区间叫做VMA(virtual memory Area),用vma_area_struct结构描述。VMA是虚存管理的基本单位,其组织方式有链表和红黑树。如何编写代码查看自己的进程到底有哪些虚拟区? (以下程序均来自intel OTC的nanhai.zou)s转载 2009-09-23 14:07:00 · 607 阅读 · 1 评论 -
驱动开发中的I/O地址空间(三)
1.I/O端口和I/O内存设备驱动程序要直接访问外设或其接口卡上的物理电路,这部分通常都是以寄存器的形式出现。外设寄存器也称为I/O端口,通常包括:控制寄存器、状态寄存器和数据寄存器三大类。根据访问外设寄存器的不同方式,可以把CPU分成两大类。一类CPU(如M68K,Power PC等)把这些寄存器看作内存的一部分,寄存器参与内存统一编址,访问寄存器就通过访问一般的内存指令进行,所以,这种转载 2009-09-22 20:45:00 · 724 阅读 · 0 评论 -
解惑-Linux内核空间(二)
从前一讲我们知道,内核空间为3GB~4GB,这1GB的空间分为如下几部分,如图1所示: 图1 从PAGE_OFFSET开始的1GB地址空间 先说明图中符号的含义:PAGE_OFFSET:0XC0000000,即3GBhigh_memory:这个变量的字面含义是高端内存,到底什么是高端内存,Linux内核规定,RAM的前896为所谓的转载 2009-09-22 20:37:00 · 363 阅读 · 0 评论 -
Linux内存管理
Linux内存管理(上)摘要:本章首先以应用程序开发者的角度审视Linux的进程内存管理,在此基础上逐步深入到内核中讨论系统物理内存管理和内核内存地使用方法。力求从外自内、水到渠成地引导网友分析Linux地内存管理与使用。在本章最后我们给出一个内存映射地实例,帮助网友们理解内核内存管理与用户内存管理之间地关系,希望大家最终能驾驭Linux内存管理。 前言内存管理一向是所有操作系转载 2009-09-14 10:24:00 · 324 阅读 · 0 评论 -
我理解的逻辑地址、线性地址、物理地址和虚拟地址
一、概念物理地址(physical address)用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。——这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址方式并不是这样。所以,说它是转载 2009-09-09 14:53:00 · 266 阅读 · 0 评论 -
Linux内存空间访问札记(转)
http://blog.chinaunix.net/u/25764/showart_1882931.html 引:本来打算将这部分内容并入到《The Linux Kernel Module Programming Guide笔记》中去,但是想下内存空间管理访问相当基础重要而且内容量较大,所以就单独记录。在过去一年里,由于成功开发过几个颇为复杂的设备驱动,就自以为掌握了驱动开发的方转载 2009-10-19 17:43:00 · 900 阅读 · 0 评论