首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
CoderHeart
掘友等级
爱源码,爱 Linux
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
3
文章 3
沸点 0
赞
3
返回
|
搜索文章
CoderHeart
1年前
关注
Linux Kernel:物理内存模型
一、概述 操作系统是构建在硬件架构之上的,Linux 自然也不能幸免。目前,主要有两种类型的物理内存架构:UMA(Uniform Memory Access,一致性内存访问...
6
评论
分享
CoderHeart
1年前
关注
Linux Kernel:直接映射区的构建
我们在《Linux Kernel:内存管理之分页(Paging)》一文中介绍了内核启动时各级页表的创建。在那篇文章中,直接映射区只映射了 1GB 的物理内存。在本文中,我们...
4
评论
分享
CoderHeart
1年前
关注
Linux Kernel:NUMA 节点探测
一、概述 在以前的文章中,我们介绍了物理内存布局探测和 CPU 拓扑探测,本篇我们来介绍 NUMA 节点探测。在一个 NUMA 节点中,通常包括 CPU 和内存资源。所以 ...
4
评论
分享
CoderHeart
1年前
关注
Linux Kernel:CPU 拓扑结构探测(二)
五、CPU 拓扑探测的代码实现 5.1 BSP 拓扑探测 BSP 拓扑探测主要分为三步: BSP 基本信息查询,包括生产商、处理器能力等。这部分功能在 early_cpu_...
3
评论
分享
CoderHeart
1年前
关注
Linux Kernel:CPU 拓扑结构探测(一)
一、概述 内存和 CPU 资源是 NUMA 节点的重要组成部分,所以内存和 CPU 拓扑信息对于构建 NUMA 系统至关重要。在 Linux Kernel:物理内存布局探测...
5
评论
分享
CoderHeart
1年前
关注
Linux Kernel:启动时内存管理(MemBlock 分配器)
一、Bootmem 与 Memblock 系统初始化早期,由于“正常”的内存管理还未完成设置,所以无法使用。 此时,仍然需要为各种数据结构分配内存。 为了解决这个问题,引入...
7
评论
分享
CoderHeart
1年前
关注
Linux Kernel:物理内存布局探测
一、内存探测接口 x86 处理器通过 int 15h BIOS 中断 获取系统内存布局,其中 15h 是中断号。根据 AX 寄存器的值不同,主要有 3 种常见的方式:0xE...
4
评论
分享
CoderHeart
1年前
关注
Linux Kernel:内核数据结构之基数树(Radix Tree)
一、基数树简介 1.1 前缀树(Trie) Trie,又称为前缀树(prefix tree)或字典树,是一种 k 路搜索树,用来在一组集合中搜索特定的键。这些键通常是字符串...
4
评论
分享
CoderHeart
1年前
关注
Linux Kernel:内核中的 initcall 机制
一、概述 在 Linux 内核中,我们经常会看到类似下面的代码: 或者 在上面两段代码中的 early_initcall() 和 module_init() 函数,它们使用...
3
评论
分享
CoderHeart
1年前
关注
Linux Kernel:CPU 状态管理之 cpumask
一、概述 在 Linux 内核中,使用位图来保存 CPU 的状态,每个 CPU 对应着位图中的一个比特位。内核为 CPU 定义了 4 种可能的状态,对应着 4 个位图: c...
4
评论
分享
CoderHeart
1年前
关注
Linux Kernel:内核数据结构之位图(Bitmap)
位图(Bitmap)在 Linux 内核中使用非常广泛,比如用来标识中断是否已安装处理程序(used_vectors)、处理器是否在线(cpumask)等等。内核中,位图相...
4
评论
分享
CoderHeart
1年前
关注
Linux Kernel:异常修复机制(异常表 __ex_table 详解)
一、内核中的段(segment)和节(section) 在 Linux 中,最常用的可执行文件就是 ELF (Executable and Linking Format) ...
1
评论
分享
CoderHeart
1年前
关注
Linux Kernel:非早期异常处理程序的初始化
在以前的文章里,我们顺着内核启动的流程,梳理了异常处理程序的早期初始化。在 Linux Kernel:中断和异常处理程序的早期初始化(续) 里,我们介绍到了 set_arc...
2
评论
分享
CoderHeart
1年前
关注
Linux Kernel:内存管理之早期 I/O 内存映射(early ioremap)
一、前言 任何系统都免不了要有输入/输出,所以对 I/O 设备的访问是 CPU 的一个重要功能。一般来说,对 I/O 设备的访问有两种不同的形式: 通过端口映射(Port-...
3
评论
分享
CoderHeart
1年前
关注
Linux Kernel:内存管理之固定映射 (Fixmap)
一、前言 固定映射的线性地址(Fixed-mapped linear addresses)是一组特殊的线性地址,这些线性地址在编译时就已经确定,但是其映射的物理地址是在系统...
2
2
分享
CoderHeart
1年前
关注
Linux Kernel:内存管理之分页(Paging)
一、 x86_64 内存分页理论基础 x86_64 架构支持 4 级及 5 级分页。在 Intel 手册上,对于分页结构的命名,由高到低分别是:5 级页映射表(Page M...
3
评论
分享
CoderHeart
1年前
关注
Linux Kernel:异常处理程序的实现
在 Linux Kernel:中断和异常处理程序的早期初始化(续) 中,我们讲解到在中断描述符表中分别为 debug(#DB) 、int3(#BP)和 Page-Fault...
2
评论
分享
CoderHeart
1年前
关注
Linux Kernel:中断和异常处理程序的早期初始化(续)
我们在 Linux kernel:中断和异常处理程序的早期初始化 里介绍了异常的早期初始化,并在 Linux Kernel:Page-Fault 异常的早期处理 里介绍了早...
2
评论
分享
CoderHeart
1年前
关注
x86-64:特权级保护及程序控制转移
一、特权级概述 Intel 处理器提供了0 ~ 3 一共 4 种特权级别,数值越小级别越高。其中操作系统工作在特权级 0,普通应用程序工作在特权级 3。 处理器使用特权级来...
3
评论
分享
CoderHeart
1年前
关注
Linux kernel:Page-Fault 异常的早期处理
一、前置知识 1.1 x86_64 内存分页理论基础 x86_64 架构支持 4 级及 5 级分页。在 Intel 手册上,对于分页结构的命名,由高到低分别是:5 级页映射...
3
评论
分享
下一页
个人成就
文章被点赞
110
文章被阅读
34,994
掘力值
1,170
关注了
2
关注者
43
收藏集
0
关注标签
0
加入于
2020-10-11