Linux 内核 内存管理内存管理架构 ① ( 内存管理架构组成 | 用户空间 | 内核空间 | MMU 硬件 | Linux 内核架构层次 | Linux 系统调用接口 )

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 内核 内存管理内存管理架构 ① ( 内存管理架构组成 | 用户空间 | 内核空间 | MMU 硬件 | Linux 内核架构层次 | Linux 系统调用接口 )相关的知识,希望对你有一定的参考价值。

文章目录





一、内存管理架构组成 ( 用户空间 | 内核空间 | MMU 硬件 )



内存管理架构 由 3 3 3 部分组成 :

① 用户空间 : 在 " 用户空间 " 中 , 使用 malloc 函数 申请 " 堆内存 " , 使用 free 函数 释放 " 堆内存 " ;

② 内核空间 : Linux 内核启动后 , 一直 驻留在内存 中 , 应用程序 不能 读写 内核空间数据 , 不能直接调用 内核源码 中的函数 ; 只能通过 " 系统调用 " 间接调用 内核函数 ;

③ 硬件 : 硬件主要是指 处理器 中的 " 内存管理单元 “ , 该 内存管理单元 主要作用是 将 ” 虚拟内存地址 " 转为 " 物理内存地址 " ;


" 内存管理单元 " , 英文名称是 " Memory Management Unit “ , 简称 ” MMU " ;





二、Linux 内核架构层次



整个操作系统 由 应用层 , Library Routine , 内核 , 硬件 组成 ;

层次架构如下 :

Linux 内核 需要 " 管理硬件 " , 如 : CPU 处理器 , 内存 , I/O 设备 , 网络设备 等 ;

Linux 内核 还需要 向上层的 " 应用程序 " " Library Routine " 提供 API 接口 , 如 : 系统调用 ;





三、Linux 系统调用接口



" 系统调用 " 接口 , 可以调用 " " Linux 内核 " 中的如下功能 :

① 进程调度 : 内核 调用 CPU 处理器 实现 进程调度 ;

② 内存管理 : 内核 调用 物理内存 实现 内存管理 ;

③ IPC 跨进程通信

④ VFS 虚拟文件系统

⑤ 网络管理 : 内核 调用 网络接口 , 实现 网络管理 ;


" 设备管理 " 对用户是透明的 , 用户不直到 Linux 内核是如何管理设备的 , 系统调用接口没有关于 " 设备管理 " 的调用接口 ;

以上是关于Linux 内核 内存管理内存管理架构 ① ( 内存管理架构组成 | 用户空间 | 内核空间 | MMU 硬件 | Linux 内核架构层次 | Linux 系统调用接口 )的主要内容,如果未能解决你的问题,请参考以下文章

Linux 内核 内存管理内存管理架构 ③ ( Linux 内核中的内存管理模块 | 页分配器 | 不连续页分配器 | 内存控制组 | 硬件设备内存管理 | MMU | 页表缓存 | 高速缓存 )

Linux 内核 内存管理内存管理架构 ③ ( Linux 内核中的内存管理模块 | 页分配器 | 不连续页分配器 | 内存控制组 | 硬件设备内存管理 | MMU | 页表缓存 | 高速缓存 )

Linux 内核 内存管理内存管理架构 ④ ( 内存分配系统调用过程 | 用户层 malloc free | 系统调用层 brk mmap | 内核层 kmalloc | 内存管理流程 )

Linux 内核 内存管理mmap 系统调用源码分析 ① ( mmap 与 mmap2 系统调用 | Linux 内核中的 mmap 系统调用源码 )

Linux 内核 内存管理内存管理系统调用 ① ( mmap 创建内存映射 | munmap 删除内存映射 | mprotect 设置虚拟内存区域访问权限 )

Linux 内核 内存管理物理内存组织结构 ① ( 多处理器体系结构 | SMP/UMA 对称多处理器结构 | NUMA 非一致内存访问结构 )