Linux 内核架构:

Linux 内核架构可以分为以下几个主要组件:

  • 进程调度器: 负责管理进程的执行,决定哪个进程可以运行以及运行多长时间。

  • 内存管理单元 (MMU): 负责管理虚拟内存,允许进程使用比物理内存更多的内存。

  • 虚拟文件系统 (VFS): 提供了一个统一的接口来访问不同的文件系统。

  • 网络堆栈: 负责处理网络通信。

  • 设备驱动程序: 为硬件设备提供接口。

Linux 内核架构还包括以下几个重要的概念:

  • 系统调用: 允许用户空间程序请求内核服务。

  • 中断: 当发生硬件事件时通知内核。

  • 同步原语: 允许内核中的不同部分安全地共享数据。

Linux 内核是一个复杂而强大的系统,它提供了对计算机硬件的低级访问以及对各种服务和功能的支持。它也是 Linux 操作系统和其他基于 Linux 的操作系统的基础。

二、虚拟内存地址空间布局

2.1、用户空间

应用程序使用 malloc()申请内存,使用 free()释放内存,malloc()/free() 是 glibc 库的内存分配器 ptmalloc 提供的接口,ptmalloc 使用系统调用 brk/mmap 向内核以页为单位申请内存,然后划分成小内存块分配给用户应用程序。

2.2、内核空间

内核空间的基本功能:虚拟内存管理负责从进程的虚拟地址空间分配虚拟页,sys_brk 用来扩大或收缩堆,sys_mmap 用来在内存映射区域分配虚拟页, sys_munmap 用来释放虚拟页。

页分配器负责分配物理页,当前使用的页分配器是伙伴分配器。内核空间提供把页划分成小内存块分配的块分配器,提供分配内存的接口 kmalloc()和 释放内存接口 kfree()。块分配器:SLAB/SLUB/SLOB。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐