自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第16章 挂载根文件系统与执行/sbin/init

启动阶段:prepare_namespace()、init_mount_tree()、run_init_process()。引入子系统:root device、block layer、filesystem probing、execve、binfmt_elf、动态链接器入口。叙事重点:内核启动主线的终点不是 shell,而是成功把 PID 1 的控制权交给用户态 init。

2026-09-03 09:00:00 14

原创 第15章 initcall机制:驱动、总线、文件系统与网络的批量唤醒

启动阶段:kernel_init_freeable() 调用 do_basic_setup(),随后 do_initcalls()。引入子系统:initcall 分层、driver core、bus/class/device、PCI/ACPI、网络协议栈、块层、文件系统注册。叙事重点:pure -> core -> postcore -> arch -> subsys -> fs -> rootfs -> device -> late 不是简单列表,而是依赖排序协议。

2026-08-31 09:30:54 15

原创 第14章 安全与命名空间:用户态边界的形成

启动阶段:early_security_init()、security_init()、namespace 与 keyring 等初始化。引入子系统:LSM、capability、cred、user namespace、pid/mount/net namespace、audit。叙事重点:用户态不是 “自然可信” 的目标,而是受凭据、命名空间和 LSM 策略约束的执行环境。

2026-08-27 09:00:00 19

原创 第13章 VFS与根文件系统前置:从dcache到initramfs

启动阶段:vfs_caches_init()、mnt_init()、init_rootfs()、initramfs 解包。引入子系统:VFS、dcache、inode cache、mount namespace、rootfs、initramfs。叙事重点:进入用户态前,内核必须先有

2026-08-25 18:23:53 11

原创 第12章 进程模型成形:fork、pid、cred与rest_init()

启动阶段:fork_init()、proc_caches_init()、rest_init() 创建 kernel_init 和 kthreadd。引入子系统:task_struct、pid、cred、signal、kthread、init_task。叙事重

2026-08-20 09:00:00 11

原创 第11章 控制台、printk与可观测启动

启动阶段:console_init() 前后的 early console 到正式 console 切换。引入子系统:printk ring buffer、console driver、earlycon、fbcon/tty console。

2026-08-18 09:17:24 13

原创 第10章 调度器、RCU与并发基础设施

启动阶段:sched_init()、rcu_init()、srcu_init()、softirq/tasklet/workqueue 准备。引入子系统:CFS/EEVDF、RT/DL、sched class、RCU tree、SRCU、softirq、workqueue。

2026-08-13 09:00:00 13

原创 第9章 异常、IRQ 与时间:内核获得外部世界的节拍

启动阶段:trap_init()、init_IRQ()、tick_init()、timekeeping_init()。引入子系统:IDT、异常处理、irqdesc、APIC/IO-APIC、clocksource、tick、timer wheel/hrtimer。

2026-08-11 09:00:00 12

原创 第8章 早期内存管理:memblock、页表与伙伴系统前夜

启动阶段:setup_arch() 后到 mm_core_init() 前后。引入子系统:memblock、sparsemem、page allocator、SLUB、vmalloc、percpu allocator。叙事重点:从固件内存图到 struct page

2026-08-05 09:00:00 14

原创 第7章 setup_arch():x86_64 拓扑、内存图与平台发现

启动阶段:start_kernel() 调用 setup_arch(&command_line)。引入子系统:E820/memblock、NUMA、ACPI、EFI、CPU feature、KASLR 结果固化、early ioremap。叙事重点:所有后续内存管理、设备枚举和 SMP 初始化都依赖 setup_arch() 建立的平台事实。

2026-08-03 09:00:00 12

原创 第6章 start_kernel() 总览:内核生命线的主函数

启动阶段:进入 init/main.c:start_kernel()

2026-07-30 09:00:00 13

原创 第5章 x86_64_start_kernel():进入通用内核前的架构收口

启动阶段:x86_64 C 入口完成 early IDT、清 BSS、CPU 基础状态和命令行承接

2026-07-28 09:00:00 12

原创 第4章 跳入解压后的内核:startup_64 与初始身份映射

启动阶段:解压后的 vmlinux 从汇编入口建立 long mode 所需状态。

2026-07-23 09:00:00 16

原创 第3章 压缩内核入口:临时页表与解压执行环境

启动阶段:进入 arch/x86/boot/compressed/,建立解压用的最小运行时。

2026-07-21 09:00:00 15

原创 第17章 调度子系统:从rq到EEVDF

核心数据结构:struct task_struct、struct rq、struct cfs_rq、struct sched_entity、struct sched_class、struct sched_dl_entity、struct rt_rq。核心源码路径:include/linux/sched.h、kernel/sched/sched.h、kernel/sched/core.c、kernel/sched/fair.c、kernel/sched/rt.c、kernel/sched/deadline.

2026-07-17 09:02:43 374

原创 第2章 实模式 setup:从 boot sector 到 protected mode

为什么早期代码有自己的 tiny libc、printf、BIOS 调用封装,以及它如何准备进入保护模式。

2026-07-16 09:00:00 21

原创 第1章 上电、固件与 x86_64 启动契约

本文探讨了Linux/x86_64内核启动的初始阶段,重点分析了从硬件上电到内核初始化的完整流程。

2026-07-12 21:57:29 224

原创 《Linux内核源码全景解读:从上电到用户态》之 目录

从源码入手解读 Linux-7.1.3

2026-07-07 21:30:27 222

原创 Model Context Protocol (MCP) 简单介绍

MCP协议简介 MCP(Model Context Protocol)是一个标准化AI应用与大型语言模型交互的开放协议。

2026-06-05 14:34:13 288

原创 Chaos-nano协作式异步操作系统(六):`Chaos-nano` 在手持式 `VOC` 检测设备上的应用

Chaos-nano 在手持 voc 设备上的应用

2025-12-13 21:20:55 820

原创 Chaos-nano协作式异步操作系统(五):Chaos-nano 在压力容器监控系统中的项目应用

Chaos-nano 在压力容器项目中的应用

2025-11-18 08:53:41 1079

原创 Chaos-nano协作式异步操作系统(四):Arduino Pro Mini 轻量级操作系统解析与实战应用

Chaos-nano系统解析和应用

2025-11-15 20:27:58 638

原创 Chaos-nano协作式异步操作系统(三):Chaos-nano 与 FreeRtos 技术对比分析

Chaos-nano 与 FreeRtos 的一些对比

2025-11-10 09:13:32 755

原创 Chaos-nano协作式异步操作系统(二):系统介绍

Chaos-nano轻量级协作式异步操作系统介绍

2025-11-09 07:54:29 1022

原创 Chaos-nano 协作式异步操作系统(一):赋能 AVR 8 位单片机的革新之路

适用于8 位单片机的轻量级操作系统

2025-11-06 18:05:17 1053 1

原创 gcc使用中得一些技巧

GCC的__cleanup__属性提供了一种自动资源管理机制,允许在变量离开作用域时自动调用指定清理函数,类似C++析构功能。该特性适用于局部变量,要求清理函数参数为指向变量类型的指针,执行顺序按声明逆序。主要用途包括自动释放内存、关闭文件描述符等资源管理,特别适合多返回点的复杂函数,能有效减少手动资源释放和内存泄漏风险。但需注意这是GCC的非标准扩展,不支持全局变量和函数参数。

2025-09-18 18:28:03 318

原创 lesOS 操作系统

`lesOS` (`lightweight easy simple OS`)是专门为`arduino`设计的一款轻量级简单易用的操作系统。目前已经在 `Arduino Pro Mini `(`ATmega328P @ 5V`)进行测试

2025-07-17 15:57:42 471

原创 RCU初步分析

简单介绍了自己理解的rcu锁

2025-05-30 15:16:53 849

原创 linux驱动之poll

Linux驱动的 poll 底层实现。

2025-04-18 22:36:59 310

原创 esp-idf 的一些介绍

esp-idf 的一些知识

2025-03-27 11:38:19 1123

原创 Linux 固定 IP 地址和网关

记录几点关于网络设置的笔记

2025-02-17 14:29:51 610

原创 rust安装笔记

记录rust安装过程中的一些事项

2025-02-05 23:06:25 531

原创 zynq 编译过程

zynq的编译过程

2025-01-20 13:24:44 923

原创 `RUST` 调用 `C` 代码

`RUST` 调用 `C` 代码

2025-01-14 20:38:43 634

原创 搭建 RUST 交叉编译环境

在嵌入式 `Linux` 上运行 `RUST`

2025-01-13 17:23:56 1174

原创 Arceos 多进程支持思路

Arceos对多进程支持的几点思考

2024-12-16 19:44:45 1239

原创 C 语言运行分析

C 语言运行时分析

2024-12-13 12:24:10 1368

原创 arceos分析

arceos源码简单分析

2024-12-06 12:00:00 1823

原创 libos 介绍

libos 介绍

2024-12-04 11:20:42 1785

原创 qemu 9.1.2 源码编译

qemu 9.1.2 的源码编译

2024-12-03 20:36:10 359

Hackbench-2.3

Hackbench源码,版本V2.3,用于 linux 测试

2023-07-27

空空如也

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

TA关注的人

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