Linux对于外设的访问一般有两种方式:一种叫内存映射,另一种叫I/O映射。随着外设的寄存器和自身存贮空间的增加,采用第二种方式已经远远不能满足外设的需要。Linux看到的外设的地址都是总线地址,相应的存贮空间都在系统空间(3GB以上)。
内核为自己保持一个虚存区间队列vmlist,这是由一串vm_struct数据结构组成的一个单链队列。相似于供进程使用的vm_area_struct结构。
struct vm_struct {
unsigned long flags;
void * addr;
unsigned long size;
struct vm_struct * next;
};
内核使用的虚拟地址与物理地址存在一种简单的映射关系,只要在物理地址上加上3G的偏移量就可以得到虚拟地址。high_memory就是对应具体物理内存的上限所对应的虚拟地址。内核需要分配虚存空间的时候,就从这个地址加8MB处分配。
每个进程都有一个mm_struct结构,从中可以找到相应的页面目录。但是,内核不属于一个特定的进程,所以设置了一个内核单独的init_mm。
另外,kswapd根本看不到init_mm的虚存空间,这些空间会常驻内存。
分享到:
相关推荐
嵌入式Linux内核的虚拟地址空间映射的实现 在嵌入式Linux系统中,虚拟地址空间映射是指将物理地址空间映射到虚拟地址空间的过程,这个过程需要硬件和软件的支持。本文将从硬件和软件的角度分析虚拟地址空间映射的...
Linux内核通过这些硬件特性构建了一套复杂的地址映射机制,包括页表的管理、地址空间的组织、内存权限控制等。 页式存储管理是Linux内核广泛采用的方法,它将内存划分为固定大小的页,每个进程有自己的页表,记录...
进程地址空间"这一章节,将带你深入探讨Linux内核如何组织和管理进程的虚拟地址空间,这是理解Linux系统性能和调试关键问题的基础。 首先,我们需要了解的是,每个进程都有其独立的地址空间,这是进程隔离的一个...
虚拟内存系统使得每个进程都拥有独立的地址空间,通过页表映射实现物理内存的动态分配和回收。此外,内核还实现了内存交换机制,当物理内存不足时,可以将不活跃的页换出到磁盘上的交换分区。 文件系统是Linux内核...
4. 内存管理:Linux内核负责管理物理和虚拟内存,包括内存的分配、回收、共享、映射等,确保系统运行稳定。 5. 文件系统:Linux支持多种文件系统,如ext4、XFS、Btrfs等。文件系统的设计对于数据的组织、访问和存储...
Linux内核采用虚拟内存技术,使得每个进程都有独立的4GB(32位系统)或128GB(64位系统)地址空间。页表机制将虚拟地址转换为物理地址,同时通过页面缓存和交换机制优化内存使用。 4. 文件系统 Linux支持多种文件...
4. **文件系统**:Linux内核中的文件系统是管理数据存储的关键部分。它涵盖了文件的创建、打开、读写、关闭等操作,以及目录结构的维护。理解文件系统的工作原理对于系统管理员和开发者都十分必要。 5. **网络协议...
内存管理则确保内存资源被有效利用,Linux内核实现了虚拟内存管理,使得每个进程拥有自己的虚拟地址空间,可以访问比实际物理内存更大的地址范围。虚拟内存管理通过页表、换页算法、内存映射等机制,为进程提供连续...
再者,内存管理部分讲解了Linux内核如何有效地分配和回收内存,包括物理内存的分配、虚拟地址空间的映射、页表的管理和交换机制。这些内容对于优化系统性能和解决内存泄漏问题至关重要。 然后,设备驱动章节则深入...
在IT领域,Linux内核是操作系统的核心,负责管理和协调计算机硬件资源,为用户空间的应用程序提供服务。本篇文章将深入探讨“深度剖析Linux内核”这一主题,涵盖内核启动流程、内核组成部分、进程调度、内存管理和...
这包括内存的分页机制、地址空间布局、内存碎片问题以及 slab 分配器等。 文件系统是操作系统与数据存储交互的关键,书中会深入讨论VFS(虚拟文件系统)层的设计,它为不同的具体文件系统提供了一致的接口。此外,...
它采用了分页技术将物理内存划分为固定大小的块(页),通过页表进行地址转换,实现了虚拟地址到物理地址的映射。 2. **进程管理**:内核管理进程的创建、销毁、调度和同步。它使用调度算法来决定哪个进程应获得CPU...
Linux内核采用分页内存管理系统,将物理内存划分为固定大小的页,并通过虚拟地址映射到物理地址。内核还包含内存分配器(如slab分配器),用于高效地管理内存碎片和内存分配。 四、文件系统 文件系统是Linux内核...
2. **内存管理**:Linux内核采用虚拟内存技术,将物理内存抽象为逻辑地址空间,使得程序可以在更大的地址空间中运行。内存管理包括页面分配、页面回收、内存映射等功能,这些功能确保了系统的稳定性和效率。 3. **...
文件系统是Linux内核中用于组织和存储数据的部分。Linux支持多种文件系统,如EXT2、EXT3、EXT4、Btrfs等。文件系统的任务包括文件的创建、删除、读写、权限控制等。VFS(虚拟文件系统)层提供了一致的接口,使内核...
以32位系统为例,Linux的内核空间和用户空间是通过虚拟地址空间来划分的。 8. vmalloc()申请的内存有什么特点?vmalloc申请的内存是一块非连续的物理内存,然后把获取到的这些页映射成连续的虚拟地址。 9. 用户...
再者,文件系统是Linux内核中不可或缺的一部分,它负责管理和存储文件。书中会讲解文件系统的层次结构、VFS(虚拟文件系统)接口,以及文件操作的实现。开发者将学习如何挂载、卸载文件系统,以及如何编写自定义的...
**电子科技大学Linux内核课程课件详解** 在深入学习Linux内核技术的道路上,电子科技大学提供的这门研究生课程课件是一份宝贵的资源。基于Robert Love的著作,这套课件为学生和自学者提供了全面而深入的Linux内核...