自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Linux内存管理(三)- Memblock 内存管理详解

Memblock 内存管理详解

2025-12-01 11:34:17 926

原创 Linux内存管理(二)- start_kernel() 到 memblock_init

讲解start_kernel() 到 memblock_init直接的内存管理工作

2025-11-28 16:44:09 995

原创 Linux内存管理(一)- ARM64 内核启动中的映射创建流程

ARM64 内核启动中的映射创建流程

2025-11-27 10:11:54 459

原创 操作系统解析-基于XV6系统(5)

前面的几个章节分析了整个系统初始化过程中的所做工作。后续就是调度系统任务,所以该章节主要讲解了任务是如何调度以及任务的上下文切换过程

2025-11-03 09:26:43 769

原创 操作系统解析-基于XV6系统(4)

上一章节主要讲解了系统启动的时候内存初始化相关内容,涉及到的知识比较多也比较广,需要花费一定时间去理解和吸收。也算是第一个小难点。那么我们继续出发!

2025-10-23 20:00:09 951

原创 操作系统解析-基于XV6系统(3)

从本文开始深入分析XV6操作系统的内核部分代码,其中本章主要重点解读了内存管理机制。

2025-10-20 10:09:17 933

原创 操作系统解析-基于XV6系统(2)

言归正传,从本篇开始,我们一步一步来分析整个系统,

2025-10-17 18:24:42 934

原创 操作系统解析-基于XV6系统(1)

当前软件生态的发展离不开底层操作系统。在Linux系统运用越来越广泛,并且特性也越来越多。随之而来的学习难度以及对开发者的技术要求也越来越高。直接阅读Linux源码需要很深厚的软件以及芯片架构相关方面的知识,对于初学者并不是很友好。所以针对此问题,对MIT之前用于教学所有的xv6的Unix系统进行详细分析与解释,旨在分析操作系统最底层以及核心的相关内容。

2025-10-17 18:12:51 883

原创 Sysfs文件系统的Kobject机制

本文主要概述了sysfs系统中的kobject机制

2025-09-16 16:18:34 746

原创 Cache的缓存机制

从单路到组组相连,甚至全相连接,解决的主要问题还是最大程度上降低cache的颠簸性,能让内存中的数据能够更加灵活的放到cache中的任意cacheline中,但是与此同时,硬件的成本也是会增加的。cpu读取的都是一个cachline,得到一个cacheline以后,再通过index,offset,tag等标志位定位到是不是真的命中了。如果是单路相连,index值为7,如果是足足相连那么index=log2(128/2)=6位。offset:log⁡2(64)=6log2(64)=6 位。

2025-09-12 10:50:08 407

原创 Linux-5.15 启动汇编阶段:

linux启动阶段详解

2025-02-28 18:45:19 309

转载 获取内核函数地址的四种方法

在内核调试中,经常需要知道某个函数的地址,或者根据函数地址找到对应的函数,从而进行更深一步的debug。

2025-02-16 10:38:24 241

原创 printk与trace_printk使用杂谈

printk与trace_printk使用杂谈

2024-10-13 11:01:06 1013

原创 基于ARM V8的linux启动流程分析

掌握系统的启动流程能够让我们对整个系统有一个整体认知。便于建立起一个基本的知识图谱,在随后的学习过程中,再针对各个部分进行查漏补缺。

2024-09-17 17:23:16 1814

原创 Linux内核启动流程简介

1.内核程序启动的入口是ENTRY(stext)函数,在启动之前,需要确认如下信息:①、关闭 MMU。②、关闭 D-cache。③、I-Cache 无所谓。④、r0=0。⑤、r1=machine nr(也就是机器 ID)。⑥、r2=atags 或者设备树(dtb)首地址。2.调用函数 safe_svcmode_maskall 确保 CPU 处于 SVC 模式,并且关闭了所有的中断3.Linux 内核将每种处理器都抽象为一个 proc_info_list 结构体,每种处理器都对应一个procin

2022-06-25 16:17:44 4339

原创 UBOOT启动流程详解

第一阶段(汇编语言阶段)1.设置异常向量表,当系统发生异常时总会接入到一个固定地址。2.硬件初始化。设置时钟(内核时钟,总线时钟,IO接口时钟)3.关闭看门狗。看门狗用于防止程序跑飞,但是在 uboot启动阶段,还没有加载 操作系统,只有在 加载操作系统后,如果没有喂狗的过程的话,就会判定程序已经跑飞,需要重启系统。4.关闭MMU,MMU是用于虚拟地址向物理地址进行映射的一个结构。在 uboot阶段操作的就直接是 物理地址,所以不需要转换。5.关闭中断。uboot引导linux起到的过程中本身就是一个完成的

2022-06-23 11:02:02 1584

原创 LCD驱动程序框架

LCD驱动程序通过Framebuffer机制进行管理。,他和基础的字符设备一样,只不过将系统中所有和显示有关的软硬件虚拟成了一个fb设备,开发者只需要针对自己lcd设备对相关软硬件进行修改即可。1.字符设备本身就有一个函数的操作集,fb 的 file_operations 在drivers/video/fbdev/core/fbmem.c中,与普通字符类型驱动一样,对其进行读写操作。2.当我们运用开发板的时候,系统默认是打开LCD驱动的,首先注册一个mxsfb_driver结构体,包括了 匹配列表,设备名字

2022-06-23 10:09:55 513

原创 Linux内核移植(参考正点原子):

Linux内核移植步骤

2022-06-21 21:25:20 621 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除