Linux内核结构
【Linux 内核】Linux 操作系统结构 ( Linux 内核在操作系统中的层级 | Linux 内核子系统及关系 | 进程调度 | 内存管理 | 虚拟文件系统 | 网络管理 | 进程间通信 )
文章目录一、Linux 内核在操作系统中的层级二、Linux 内核子系统三、Linux 内核子系统之间的关系一、Linux 内核在操作系统中的层级Linux 内核 所在层级 : 整个计算机系统中 , 由下到上介绍 :计算机硬件 处于最底层 ;计算机硬件 上面一层是 Linux 内核 , 计算机的所有硬件操作都要经过内核 , 内核是 抽象资源操作 与 具体硬件操作细节 之间的接口 ;Linux 内
日期 2023-06-12 10:48:40【Linux 内核】进程管理 task_struct 结构体 ① ( task_struct 结构体引入 | task_struct 代码示例 )
文章目录一、task_struct 结构体二、task_struct 结构体代码示例一、task_struct 结构体在 Linux 操作系统 中 , 进程 作为 调度的实体 , 需要将其抽象为 " 进程控制块 " , 英文全称 " Progress Control Block " , 简称 PCB ;在 Linux 内核 中 , " 进程控制块
日期 2023-06-12 10:48:40【Linux 内核】实时调度类 ④ ( 实时运行队列 rt_rq 源码分析 | 实时运行队列 rt_rq 结构体字段分析 | active、rt_nr_running、curr、next 字段 )
文章目录一、实时运行队列 rt_rq 源码二、实时运行队列 rt_rq 结构体字段分析1、active 字段2、rt_nr_running 字段3、curr 字段4、next 字段一、实时运行队列 rt_rq 源码在 【Linux 内核】实时调度类 ② ( 实时调度实体 sched_rt_entity 源码分析 | run_list、timeout、watchdog_stamp、time_slic
日期 2023-06-12 10:48:40【Linux 内核】NUMA 非一致内存访问结构 ( NUMA 概念介绍 | NUMA 架构优势分析 | SMP、NUMA、MPP 架构 )
文章目录一、NUMA 非一致内存访问结构二、NUMA 架构优势分析二、SMP、NUMA、MPP 架构一、NUMA 非一致内存访问结构非一致内存访问结构 , 英文名称 Non Uniform Memory Access , 简称 NUMA ;" 非一致内存访问结 " 的 系统 , 有 多个 CPU 处理器 , 每个 处理器 都有 自己的 独立的本地内存 , 每个 CPU 处理器只
日期 2023-06-12 10:48:40【Linux 内核 内存管理】Linux 内核堆内存管理 ① ( 堆内存管理 | 内存描述符 mm_struct 结构体 | mm_struct 结构体中的 start_brk、brk 成员 )
文章目录一、堆内存管理二、内存描述符 mm_struct 结构体三、mm_struct 结构体中的 start_brk、brk 成员一、堆内存管理Linux 操作系统中的 " 堆内存 “ 是通过 malloc 等函数 ” 动态分配 " 的 内存区域 ;" 堆内存 “ 是 ” 连续的 “ 内存区域 , 其 " 生长方向 " 是 ” 自下而上 &quo
日期 2023-06-12 10:48:40【Linux 内核 内存管理】虚拟地址空间布局架构 ② ( 用户虚拟地址空间组成 | 内存描述符 mm_struct 结构体源码 )
文章目录一、用户虚拟地址空间组成二、内存描述符 mm_struct 结构体源码一、用户虚拟地址空间组成" 用户虚拟地址空间 " 包括以下区域 :① 代码段② 数据段③ 未初始化数据段④ 动态库 代码段 , 数据段 , 未初始化数据段 ;⑤ 堆内存 : 通过 malloc brk vmalloc 等函数 申请的 动态分配 的内存 ;⑥ 栈内存 : 存放 局部变量 和 函数调用栈
日期 2023-06-12 10:48:40【Linux 内核 内存管理】虚拟地址空间布局架构 ④ ( 内存描述符 mm_struct 结构体成员分析 | hiwater_rss | start_code | start_brk )
文章目录一、mm_struct 结构体成员分析1、hiwater_rss 成员2、hiwater_vm 成员3、total_vm 成员4、locked_vm 成员5、start_code、end_code、 start_data、 end_data 成员6、start_brk、 brk、 start_stack 成员7、arg_start、 arg_end、env_start、 env_end 成
日期 2023-06-12 10:48:40【Linux 内核 内存管理】虚拟地址空间布局架构 ⑦ ( vm_area_struct 结构体成员分析 | vm_start | vm_end | vm_next | vm_prev |vm_rb)
文章目录一、vm_area_struct 结构体成员分析二、vm_area_struct 结构体完整源码一、vm_area_struct 结构体成员分析vm_area_struct 结构体中相关成员解析 :unsigned long vm_start 成员 : 虚拟内存空间 起始地址 ; unsigned long vm_start; /* Our start address within vm
日期 2023-06-12 10:48:40【Linux 内核 内存管理】内存映射相关数据结构 ① ( vm_area_struct 结构体 | task_struct、mm_struct、vm_area_struct 3 个结构体之间的关系)
文章目录一、vm_area_struct 结构体二、task_struct 进程描述符、mm_struct 内存描述符、vm_area_struct 虚拟内存区间 之间的关系一、vm_area_struct 结构体在 Linux 内核中 , 使用 vm_area_struct 结构体描述 " 进程 " 的 " 用户虚拟地址空间 " 的 地址区间 ;vm_ar
日期 2023-06-12 10:48:40【Linux 内核 内存管理】内存映射相关数据结构 ② ( vm_area_struct 结构体成员分析 | vm_mm 成员 | vm_page_prot 成员 | vm_flags 成员 )
文章目录一、vm_area_struct 结构体成员分析1、vm_mm 成员2、vm_page_prot 成员3、vm_flags 成员二、vm_area_struct 结构体完整源码在之前的博客 【Linux 内核 内存管理】虚拟地址空间布局架构 ⑦ ( vm_area_struct 结构体成员分析 | vm_start | vm_end | vm_next | vm_prev |vm_rb)
日期 2023-06-12 10:48:40【Linux 内核 内存管理】物理内存组织结构 ④ ( 内存区域 zone 简介 | zone 结构体源码分析 | zone 结构体源码 )
文章目录一、内存区域 zone 简介二、zone 结构体源码分析1、watermark 成员2、lowmem_reserve 成员3、zone_pgdat 成员4、pageset 成员5、zone_start_pfn 成员6、managed_pages、spanned_pages、present_pages成员7、name 成员8、free_area 成员三、zone 结构体源码内存管理系统 3级
日期 2023-06-12 10:48:40【Linux 内核 内存管理】物理内存组织结构 ⑤ ( 内存区域 zone 类型简介 | 内存区域类型zone_type 枚举源码分析 | zone_type 枚举源码 )
文章目录一、内存区域 zone 类型简介二、内存区域类型 zone_type 枚举源码分析1、ZONE_DMA 直接内存访问区域2、ZONE_DMA32 内存区域3、ZONE_NORMAL 普通内存区域4、ZONE_HIGHMEM 高端内存区域5、ZONE_MOVABLE 可移动区域6、ZONE_DEVICE 设备区域三、zone_type 枚举源码内存管理系统 3级结构 :① 内存节点 Node
日期 2023-06-12 10:48:40【Linux 内核 内存管理】分区伙伴分配器 ⑤ ( 区域水线 | 区域水线数据结构 zone_watermarks 枚举 | 内存区域 zone 中的区域水线 watermark 成员 )
文章目录一、区域水线二、区域水线数据结构 zone_watermarks 枚举 ( WMARK_MIN | WMARK_LOW | WMARK_HIGH | NR_WMARK )三、内存区域 zone 中的区域水线 watermark 成员一、区域水线" 首选内存区域 “ 在特定情况下 从 ” 备用内存区域 “ 借用物理内存 , 该 " 特定情况 " 与 ” 区域水线
日期 2023-06-12 10:48:40【Linux 内核 内存管理】分区伙伴分配器 ⑥ ( zone 结构体中水线控制相关成员 | 在 Ubuntu 中查看内存区域水位线 )
文章目录一、zone 结构体中水线控制相关成员 ( managed_pages | spanned_pages | present_pages )二、在 Ubuntu 中查看内存区域水位线上一篇博客 【Linux 内核 内存管理】分区伙伴分配器 ⑤ ( 区域水线 | 区域水线数据结构 zone_watermarks 枚举 | 内存区域 zone 中的区域水线 watermark 成员 ) 中讲解了
日期 2023-06-12 10:48:40Linux内核结构之谜(linux内核结构)
随着计算机技术的快速发展,Linux内核已经发展为世界上使用最广泛的操作系统之一。由于Linux内核存在复杂性、可扩展性以及效率方面的优势,世界各地的开发者已经将其用于广泛的应用。虽然它提供了许多现代操作系统所拥有的功能和特性,但是Linux内核的结构却仍为世界上的计算机科学家所讨论。 Linux内核的结构被称为复杂的结构,由于这种复杂性,许多开发者很难理解Linux内核是如何构建的,以及每个
日期 2023-06-12 10:48:40探索Linux内核的奥秘(linux的内核结构)
Linux内核是Linux操作系统的核心,它由保持最高稳定性的软件构成,其中一些功能被大多数用户完全不了解。该内核处理系统的所有Master级操作,如管理多种进程间的内存、硬盘、和网络设备。 探索Linux内核的奥秘,要从Linux内核源码中开始。大多数Unix和Linux操作系统从技术上讲,都是 开源 的,使用者可以参考和使用源码,加以改变以提高其功能性。大多数Linux用户都没有深入理解过
日期 2023-06-12 10:48:40探索Linux内核结构图:一种新的理解(linux结构图)
方法 Linux内核结构图是极佳的一种理解Linux系统内核结构和功能的方法。它可以让我们深入了解内核结构,而不是仅仅依赖文档来学习。在了解Linux内核之前,我们可以从一个Linux内核结构图出发,更容易理解Linux的架构,并有效地学习现有的内核组件。 Linux内核结构图有助于理解内核是如何“联合”在一起的,如何执行各种任务,以及模块的作用。它可以把整个内核结构以图表的形式展示出来,从
日期 2023-06-12 10:48:40结构Linux内核目录结构:探索未知世界(linux内核目录)
已经有了大量计算机操作系统,Linux内核也是其中之一。Linux是一种开放源代码的操作系统,它的内核代码可以由用户们自由的编辑和定制。它的目录结构可能会令一些新手感到有点困惑。 那么,Linux内核的目录结构是什么样的? 万物皆从根目录开始,Linux内核也不例外,它有一个名为 / (斜杠)的根目录,根目录连接着所有其他目录。在根目录下,它有几个构成Linux内核的核心目录:etc,bi
日期 2023-06-12 10:48:40深度探究:Linux内核结构解析(深入理解linux内核架构)
随着操作系统的发展,Linux内核已经成为操作系统的基础,其稳定可靠性、强大的功能和开放源码等优势也被广泛应用于各行业。下面深入探讨Linux内核结构,有助于加深对其理解。 Linux内核结构分为三层结构:硬件层、系统调用层和应用程序接口层。 硬件层是内核的核心,它是操作系统连接计算机硬件的桥梁。硬件层提供多种物理资源的管理,包括处理器、存储器、硬盘、I/O等。它响应键盘上的按键,接收鼠标
日期 2023-06-12 10:48:40结构Linux内核中的中断描述符结构深度剖析(linux中断描述符)
Linux是一种基于GPL协议的免费开放源码操作系统,它有着强大而复杂的内核系统,主要用于满足实时和高度可定制的计算机系统的应用需求。 在Linux内核中,不同的硬件设备需要支持不同的中断号,而为了支持不同的硬件设备,Linux内核也需要提供一套专门的中断描述符结构来建立中断服务函数与中断号的对应关系,因此,在Linux内核中的中断描述符扮演着至关重要的角色,作为操作系统内核的内部结构,很多L
日期 2023-06-12 10:48:40Linux内核红黑树:构建数据结构根基(linux内核红黑树)
Linux内核红黑树是Linux内核中重要的数据结构。红黑树是一种高度平衡的查找树,其实现非常经典。它广泛用于Linux内核,比如实现内存管理的slab子系统,以及实现Linux系统调用的syscall子系统。在红黑树的驱动程序中,为了代码的清晰和简洁,常常采用Macro实现红黑树操作。 Linux内核红黑树是使用普通的指针来实现的二叉搜索树,定义有三种颜色,即红色、灰色和黑色,根据这三种颜色
日期 2023-06-12 10:48:40探求Linux内核之美:结构图分析(linux内核结构图)
Linux内核的深刻之美在于其设计的精巧和优雅。Linux内核的核心架构可以用结构图来表示,这给我们提供了深入洞察Linux内核的机会。 Linux内核的结构图分为5个层次,分别是硬件屏蔽层、核心服务层、驱动开发层、用户接口层以及用户空间程序层。每个层次都有各自独特的功能,它们组成了Linux内核复杂的功能系统。 在硬件屏蔽层,负责处理硬件设备的指令和数据,将它们传递给核心服务层。硬件屏蔽层
日期 2023-06-12 10:48:40linux内核数据结构之链表
1、前言 最近写代码需用到链表结构,正好公共库有关于链表的。第一眼看时,觉得有点新鲜,和我之前见到的链表结构不一样,只有前驱和后继指针,而没有数据域。后来看代码注释发现该代码来自linux内核,在linux源代码下include/Lish.h下。这个链表具备通用性,使用非常方便。只需要在结构定义一个链表结构就可以使用。 2、链表介绍 链表是非常基本的数据结构,根据链个数分为单链表、双链表
日期 2023-06-12 10:48:40【华为云技术分享】Linux内核源码结构(1)
在上一期中,我们介绍了Linux内核发展的历史,也介绍了与其相关的UNIX和GNU的相关知识。从这一期开始,我们将介绍Linux内核的源码结构。我们将先根据Linux源码的目录结构进行分析,到本文章发布前,Linux 4.19的最新版本为Linux 4.19.94,我们将依
日期 2023-06-12 10:48:40【Linux 内核 内存管理】分区伙伴分配器 ② ( free_area 空闲区域结构体源码 | 分配标志位 | GFP_ZONE_TABLE 标志位区域类型映射表 |分配标志位对应的内存区域类型 )
文章目录 一、free_area 空闲区域结构体源码分析二、分配标志位三、GFP_ZONE_TABLE 标志位区域类型映射表四、分配标志位对应的内存区域类型 一、free_area 空
日期 2023-06-12 10:48:40【Linux 内核 内存管理】memblock 分配器 ③ ( memblock_region 内存块区域 | memblock_region 结构体成员分析 | memblock 分配器标志位 )
文章目录 一、memblock_region 内存块区域二、memblock_region 结构体成员分析1、base 成员2、size 成员3、flags 成员4、nid 成员 三、memblock 分
日期 2023-06-12 10:48:40【Linux 内核 内存管理】引导内存分配器 bootmem ② ( bootmem_data 结构体源码分析 | bootmem_data 与内存节点 pglist_data 的关联 )
文章目录 一、bootmem_data 结构体源码分析1、node_min_pfn 成员2、node_low_pfn 成员3、node_bootmem_map 成员4、last_end_off 成员5、hint
日期 2023-06-12 10:48:40【Linux 内核 内存管理】物理内存组织结构 ⑥ ( 物理页 page 简介 | 物理页 page 与 MMU 内存管理单元 | 内存节点 pglist_data 与 物理页 page 联系 )
文章目录 一、物理页 page 简介1、物理页 page 引入2、物理页 page 与 MMU 内存管理单元3、物理页 page 结构体4、Linux 内核源码中的 page 结构体 二、内存节点 pgl
日期 2023-06-12 10:48:40【Linux 内核 内存管理】物理内存组织结构 ② ( 内存模型 | 平坦内存 | 稀疏内存 | 非连续内存 | 内存管理系统三级结构 | 节点 Node | 区域 Zone | 页 Page )
文章目录 一、内存模型二、内存管理系统三级结构 一、内存模型 从 CPU 处理器 的角度出发 , 观察 内存的 " 物理分布 " , 有如下
日期 2023-06-12 10:48:40【Linux 内核 内存管理】物理内存组织结构 ① ( 多处理器体系结构 | SMP/UMA 对称多处理器结构 | NUMA 非一致内存访问结构 )
文章目录 一、多处理器体系结构1、SMP/UMA 对称多处理器结构2、NUMA 非一致内存访问结构 一、多处理器体系结构 1、SMP/UMA 对称多处理器结构
日期 2023-06-12 10:48:40【Linux 内核 内存管理】内存映射相关数据结构 ① ( vm_area_struct 结构体 | task_struct、mm_struct、vm_area_struct 3 个结构体之间的关系)
文章目录 一、vm_area_struct 结构体二、task_struct 进程描述符、mm_struct 内存描述符、vm_area_struct 虚拟内存区间 之间的关系 一、v
日期 2023-06-12 10:48:40