- 博客(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
原创 第5章 x86_64_start_kernel():进入通用内核前的架构收口
启动阶段:x86_64 C 入口完成 early IDT、清 BSS、CPU 基础状态和命令行承接
2026-07-28 09:00:00
12
原创 第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
原创 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协作式异步操作系统(三):Chaos-nano 与 FreeRtos 技术对比分析
Chaos-nano 与 FreeRtos 的一些对比
2025-11-10 09:13:32
755
原创 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
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1