我们如何在 RISC-V 实板上启动 Asterinas
Published:
从 U-Boot 的一次 booti,到早期页表、OSTD、四核启动、rootfs 和 PID 1:复盘我们怎样定义、推进并验证一次真实 RISC-V 开发板上的操作系统启动。
Published:
从 U-Boot 的一次 booti,到早期页表、OSTD、四核启动、rootfs 和 PID 1:复盘我们怎样定义、推进并验证一次真实 RISC-V 开发板上的操作系统启动。
Published:
OS bringup 的早期阶段几乎没有任何可观测性——一行串口就是全部。这篇文章讨论在板子沉默时如何定位故障、如何设计受控实验、以及从 10+ 轮真机迭代中提炼出的工程原则和反面教训。
Published:
把 Asterinas 移植到 RISC-V 真机时,编译器说一切正常、QEMU 里也跑到了用户态——但真机只输出一行 Starting kernel … 就沉默了。这篇文章从第一性原理出发,逐层拆解构建机、固件、内核三个世界之间的隐秘契约。
Published:
这篇文章不把 learned ISP 当成“用神经网络修图”, 而是从 RAW 观测、Bayes 推断、损失函数、结构先验和任务目标出发, 把相机前端统一看成一个带物理模型和渲染偏好的数学决策问题。
Published:
从一条光线和一次有限测量出发, 把投影几何、镜头曝光、焦点堆栈、光场与光度成像统一成同一个反问题, 再用零空间、Bayes 风险和可辨识性解释深度学习论文为什么这样设计。
Published:
整理我们在 Lean 4 中形式化 Huffman 编码最优性的方法:把一次贪心合并反过来写成 splitLeaf,用交换论证证明这个逆操作保持最优性,再用 splitLeaf 与 huffman 的交换律把归纳假设传回原始森林。
Published:
A reconstruction of our KernelGen Challenge 9 optimization: starting from the SwiGLU backward formula, then walking through 128x128 tiling, fused INT8 quantization, memory bandwidth limits, and per-backend Triton engineering.
Published:
Starting from Attention and KV Cache, this note walks through KernelGen Challenge 8: a DeepSeek-style KV compression operator, its Triton implementation, and the separate optimization paths for GPGPU and Ascend.
Published:
A skill is crystallized consensus from repeated experience, not something designed in the abstract. Eight skills and what I learned about knowing what’s worth putting in them.
Published:
How much should I specify upfront, and how much should I let the agent figure out? Lessons from five agent projects, grounded in Anthropic’s engineering philosophy.
Published:
A single-molecule bound on cryptochrome radical pair compass sensitivity—what quantum spin dynamics tells us about the physical limits of avian magnetoreception.
Published:
docker ps returned ECONNREFUSED but the socket file existed and the daemon was running. A debugging walkthrough through pgrep, strace, and journalctl to find the root cause: zombie container state from a snap + apt dual installation.
Published:
Four research infrastructure projects, and what they taught me about failure recovery, data integrity, observability, system abstraction, and the mistakes I’d avoid starting over.
Published:
Rust concurrency notes part 3: five real-world concurrency bugs and their elegant solutions—deadlocks, data races, and performance pathologies caught at compile time.
Published:
Rust concurrency notes part 2: threads, locks, channels, and concurrency control primitives—Arc, Mutex, RwLock, Condvar, Barrier, and channel selection patterns.
Published:
Rust concurrency notes part 1: how ownership, type system, and error handling create a foundation for fearless concurrency—Send, Sync, and what the compiler actually enforces.
Published:
Models are so powerful now that anyone can bring ideas to life. But what comes after agent mania? A reflection on data flywheels, distillation, and building AI that does research.
Published:
After vibe coding comes vibe cleaning—turning a messy but working AI-generated codebase back into something a human can understand, maintain, and extend.
Published:
Notes on memory virtualization from OSTEP—address spaces, page tables, TLBs, and the mechanisms that make virtual memory work.