Writing an OS Kernel from Scratch – Part 32: Integrating LVGL — Text Editor with Open Source GUI Framework

dean
Writing an OS Kernel from Scratch – Part 32: Integrating LVGL — Text Editor with Open Source GUI Framework “Building wheels from scratch is fun, but industrial-grade GUI needs mature frameworks. Today, we port LVGL (Light and Versatile Graphics Library) to our OS, implementing a professional text editor!” In previous posts, we built from scratch:... » read more

Writing an OS Kernel from Scratch – Part 26: User-Mode Display Server and Client — A True Graphics System Architecture

dean
Writing an OS Kernel from Scratch – Part 26: User-Mode Display Server and Client — A True Graphics System Architecture “An in-kernel Display Server is controllable but violates the microkernel philosophy; a real graphics system should be in userspace! Today, we move the Display Server and Client entirely to userspace, communicating via Unix domain sockets!”... » read more

#233 Conntrack: High-Performance Connection Tracking and NAT Implementation

dean
#233 Conntrack: High-Performance Connection Tracking and NAT Implementation Preface In the previous two articles, we thoroughly understood Netfilter’s HOOK mechanism (Article 231) and iptables’ rule table-chain system (Article 232). However, there’s one system hiding between them, omnipresent yet not yet detailed — Connection Tracking (conntrack). Conntrack is the cornerstone of Linux stateful firewalls. It’s because... » read more

Writing an OS Kernel from Scratch | #345: USB Protocol — From HID to High-Speed Devices

dean
Writing an OS Kernel from Scratch | #345: USB Protocol — From HID to High-Speed Devices Abstract: USB is essentially the “universal serial bus” for all peripherals, but many only know “plug and play.” This article takes you from physical layer topology, transfer types, xHCI controller, to practical lsusb usage, thoroughly understanding USB’s design philosophy... » read more

Writing an OS Kernel from Scratch – Part 6: First Look at Multitasking — From Single-Core Loops to Process Switching

dean
Writing an OS Kernel from Scratch – Part 6: First Look at Multitasking — From Single-Core Loops to Process Switching “A kernel that can only do one thing? That’s a bare-metal program. A real OS must be able to ‘simultaneously’ do multiple things!” In the previous five posts, we completed kernel boot, entering protected mode,... » read more

Writing an OS Kernel from Scratch – Part 15: Slab Allocator — Efficiently Managing Kernel Small Objects

dean
Writing an OS Kernel from Scratch – Part 15: Slab Allocator — Efficiently Managing Kernel Small Objects “The Buddy system is great at allocating large memory blocks, but what about the kernel’s frequent 32-byte, 128-byte small object allocations? Today, we implement the Slab allocator, making kernel memory allocation lightning fast!” In the previous post, we... » read more

Writing an OS Kernel from Scratch | VFS — The Virtual File System: How Linux’s “Everything is a File” Works

dean
Writing an OS Kernel from Scratch | VFS — The Virtual File System: How Linux’s “Everything is a File” Works You use cat /proc/cpuinfo, ls /dev/null, echo "hello" > /tmp/a.txt — three different operations, all using the same open/read/write system calls. Why? The answer is VFS (Virtual File System Switch) — an abstraction layer that... » read more

Writing an OS Kernel from Scratch — Part 1: More Than Just “Hello World”

dean
从零开始写一个操作系统kernel-Part 1: 不只是”Hello World” 🌱 从零开始写一个操作系统kernel-Part 1: 不只是”Hello World”! 你是否曾好奇: ✅ Windows, Linux, macOS 这些操作系统是怎么”从无到有”启动的? ✅ kernel到底长什么样? 能不能自己写一个? ✅ 为什么kernel代码不能用 printf , 却能直接显示文字? 🛠️ 第一步: 准备开发环境 我们要构建一个 32位 x86 kernel , 通过 GRUB 引导 , 并在 QEMU 中运行 — 这样既安全又快捷! 你需要安装: ⚠️ 为了规范编译, 推荐使用 交叉编译器 i686-elf-gcc (避免宿主系统库干扰) . 教程可Reference: OSDev Wiki – GCC Cross-Compiler 🚀... » read more

[Writing an OS Kernel from Scratch] 337 – DRAM Training: From Principles to Debugging

dean
title: [Writing an OS Kernel from Scratch] 337 – DRAM Training: From Principles to Debugging category: os tag: [dram, ddr, embedded, signal-integrity] source: https://github.com/golang12306/os-kernel-from-scratch [Writing an OS Kernel from Scratch] 337 – DRAM Training: From Principles to Debugging 1. What Is DRAM Training? DRAM Training is the process where the DDR controller automatically adjusts signal... » read more