【Linux 内核】Linux 操作系统结构 ( Linux 内核在操作系统中的层级 | Linux 内核子系统及关系 | 进程调度 | 内存管理 | 虚拟文件系统 | 网络管理 | 进程间通信 )
2023-09-14 09:07:27 时间
一、Linux 内核在操作系统中的层级
Linux 内核 所在层级 : 整个计算机系统中 , 由下到上介绍 :
计算机硬件 处于最底层 ;
计算机硬件 上面一层是 Linux 内核 , 计算机的所有硬件操作都要经过内核 , 内核是 抽象资源操作 与 具体硬件操作细节 之间的接口 ;
Linux 内核 上面一层是 系统调用接口 , 系统调用 由大量的指令组成 , 应用程序 通过 系统调用 调用内核的功能 , 实现特定服务 , 如创建进程 ; 系统调用运行在 内核态 , 应用程序 运行在 用户态 ;
最上层是 应用程序 , 应用程序 是 运行于操作系统上的 软件集合 ;
如下图所示 :
二、Linux 内核子系统
Linux 内核的 5 5 5 个子系统 :
- 进程调度 ( Process Scheduler ) : 控制 进程 对 CPU 的访问 , CPU 要执行哪个进程 , 必须由 进程调度 子模块 根据 进程优先级调度算法 指定 ;
- 内存管理 ( Memory Manager ) : 多个应用程序进程 安全地 访问内存 ; 该子系统分为 硬件有关部分 和 硬件无关部分 ; 硬件无关部分提供了内存映射与虚拟内存机制 , 硬件有关部分 就是 管理真实的内存硬件 ;
- 虚拟文件系统 ( Virtual File System ) : 为所有类型的 设备/逻辑文件系统 ( EXT2/3/4 , NTFS ) 提供统一接口 ; 该子系统可以分为 设备驱动程序 和 逻辑文件系统 ;
- 网络管理 ( Network Manager ) : 提供对 网络协议 和 网络硬件 的支持 ; 该子系统 包含 网络协议栈 和 硬件驱动程序 ; 网络协议负责与其它设备通信 , 硬件驱动程序 负责 与本设备的 网络硬件通信 ;
- 进程间通信 ( Inter-Process ommunication ) : 支持 进程间 的通信机制 ;
三、Linux 内核子系统之间的关系
进程调度 依赖于 内存管理 模块 ,
内存管理 依赖于 虚拟文件系统 和 进程调度 两个模块 ,
虚拟文件系统 依赖于 内存管理 , 内存调度 , 网络管理 模块 ,
网络管理 依赖于 进程调度 模块 ;
进程间通信 依赖于 内存管理 和 进程调度 两个子系统模块 ,
进程调度 与 内存管理 这两个子系统之间 是相互依赖的 ,
内存管理 与 虚拟文件系统 之间 相互依赖 ,
相关文章
- 怎样正确查看Linux的内存占用情况
- linux 清内存
- Linux系统调优详解(四)——内存状态查看命令
- 【Linux 内核 内存管理】memblock 分配器编程接口 ③ ( memblock_remove 函数 | memblock_remove_range 函数 )
- 【Linux 内核 内存管理】物理内存组织结构 ③ ( 内存管理系统三级结构 | 内存节点描述 | 内存节点 pglist_data 结构体 | pglist_data 结构体源码 )
- 【Linux 内核 内存管理】munmap 系统调用源码分析 ② ( do_munmap 函数执行流程 | do_munmap 函数源码 )
- 【Linux 内核 内存管理】munmap 系统调用源码分析 ① ( munmap 系统调用函数执行流程 | munmap 函数源码 | vm_munmap 函数源码 )
- 【Linux 内核 内存管理】mmap 系统调用源码分析 ⑤ ( mmap_region 函数执行流程 | mmap_region 函数源码 )
- 【Linux 内核 内存管理】内存映射相关数据结构 ② ( vm_area_struct 结构体成员分析 | vm_mm 成员 | vm_page_prot 成员 | vm_flags 成员 )
- 【Linux 内核 内存管理】内存映射原理 ① ( 物理地址空间 | 外围设备寄存器 | 外围设备寄存器的物理地址 映射到 虚拟地址空间 )
- 【Linux 内核 内存管理】虚拟地址空间布局架构 ⑥ ( mm_struct 结构体源码 | vm_area_struct 结构体源码 )
- 【Linux 内核 内存管理】虚拟地址空间布局架构 ④ ( 内存描述符 mm_struct 结构体成员分析 | hiwater_rss | start_code | start_brk )
- 【Linux 内核 内存管理】Linux 内核堆内存管理 ① ( 堆内存管理 | 内存描述符 mm_struct 结构体 | mm_struct 结构体中的 start_brk、brk 成员 )
- 【Linux 内核 内存管理】Linux 内核内存布局 ② ( x86_64 架构体系内存分布 | 查看 /proc/meminfo 文件 | /proc/meminfo 重要字段解析 )
- 【Linux 内核 内存管理】Linux 内核内存布局 ① ( 查看 Linux 操作系统位数 | 查看 Linux 操作系统软硬件信息 )
- 【Linux 内核 内存管理】优化内存屏障 ② ( 内存屏障 | 编译器屏障 | 处理器内存屏障 | 内存映射 I/O 写屏障 )
- 【Linux 内核 内存管理】RCU 机制 ⑤ ( RCU 层次架构概念 | RCU 层次架构源码解析 | RCU 层次架构每层最多叶子数 | RCU 层次架构每个叶子 CPU 数量 )
- Linux Shell查看磁盘分区,内存使用,CPU使用率
- Linux中查看CPU内存硬盘信息的命令
- Android/Linux之procrank查内存工具(九十九)