Yvain Zhang

Thinking will not overcome fear but action will.

Software Notes

Systems, media, and engineering notes with less noise.

This blog focuses on low-level systems, multimedia tooling, Wi-Fi driver work, and the kind of technical details that are usually scattered across personal notebooks.

Focus Operating systems

Boot flows, memory management, and embedded fundamentals.

Track Multimedia

FFmpeg, containers, codecs, and audio basics that stay practical.

Current Wireless systems

802.11 protocol notes, P2P, power saving, and driver-side reasoning.

Linux 内存管理概览

从虚拟内存、页表到回收与 OOM

1. 为什么需要内存管理 早期系统中,程序直接使用物理地址运行,问题很明显: 进程之间缺少隔离 内存利用率低 多任务切换和扩展性差 现代操作系统通过虚拟内存机制解决这些问题,让进程看到的是各自独立的地址空间,而不是直接操作物理内存。 2. 从分段到分页 分段 分段把程序划分为代码段、数据段、栈段等逻辑区域,通过地址映射实现隔离。 优点: 有助于按逻辑划分...

FFmpeg 快速上手

先把容器、编码和常用命令理顺

1. 什么是 FFmpeg FFmpeg 是音视频处理领域最常用的开源工具链之一,常见用途包括: 音视频格式转换 编码与转码 解复用与复用 截取、合并、抽帧 获取媒体信息 流媒体处理 如果你要系统学习音视频处理,FFmpeg 几乎是绕不过去的基础工具。 2. 先理解几个基本概念 容器 容器负责“承载”多种媒体流,例如: MP4 AVI ...

ARM 启动流程

从上电到 Bootloader,再到内核或应用

ARM 系统启动通常可以分为两个阶段: 硬件初始化阶段 软件启动阶段 前者负责让芯片和基础外设进入可运行状态,后者负责把控制权逐步交给 Bootloader、内核或应用。 1. 硬件初始化阶段 处理器上电后,最先执行的是固化在 ROM、Flash 或 SoC 启动介质中的初始化代码。这个阶段的目标是建立最小可运行环境,常见工作包括: 初始化时钟和复位逻辑 配置...