Writing an OS Kernel from Scratch | Clocksource Framework — How Linux Picks the Best Clock Source Among TSC, HPET, and LAPIC

dean
Writing an OS Kernel from Scratch | Clocksource Framework — How Linux Picks the Best Clock Source Among TSC, HPET, and LAPIC Have you ever encountered this strange phenomenon: On a multi-core machine, calling clock_gettime(CLOCK_MONOTONIC) twice in succession actually returns time that went backwards? Or in a virtual machine, the system time suddenly “jumps” and... » read more

[Writing an OS Kernel from Scratch] 335 – ARM Architecture Boot: From Power-On to Kernel

dean
title: [Writing an OS Kernel from Scratch] 335 – ARM Architecture Boot: From Power-On to Kernel category: os tag: [arm, boot, embedded, u-boot] source: https://github.com/golang12306/os-kernel-from-scratch [Writing an OS Kernel from Scratch] 335 – ARM Architecture Boot: From Power-On to Kernel 1. ARM Boot Sequence Overview Embedded device boot is a layered relay race. To understand... » read more

Writing an OS Kernel from Scratch | 347: Display — From Framebuffer to GPU

dean
Writing an OS Kernel from Scratch | 347: Display — From Framebuffer to GPU Abstract: The display is the most intuitive output device of a computer, but the timing, resolution, framebuffer, and GPU rendering pipeline behind it are rarely studied in depth. This article starts from CRT timing principles, explains the DRM/KMS architecture, modetest/xrandr commands,... » read more

354 | Interrupt Controller: How Hardware Interrupts the CPU

dean
354 | Interrupt Controller: How Hardware Interrupts the CPU Key Insight: You press a key, and a character appears on the screen almost simultaneously — behind this, the CPU has never been “waiting” for the keyboard. It has been running its own code the whole time, until the hardware forcibly “interrupts” it. 1. Problem: How... » read more

331 – Android Bootloader: From Chip Power-On to Kernel Loading

dean
331 – Android Bootloader: From Chip Power-On to Kernel Loading Series Navigation: 330-Boot Overview | 332-init Process | 333-Zygote In the previous article, we outlined the complete Android boot chain. This article focuses on the first software stage — the Bootloader. The Bootloader is the first software code to run after hardware powers on (hard-coded... » read more

Writing an OS Kernel from Scratch | NIC — From PHY to Socket

dean
Writing an OS Kernel from Scratch | NIC — From PHY to Socket Have you ever thought about this process: You type in a URL, how does the data packet get sent from your computer to the server? The CPU hands the data to the network card, and the network card sends the electrical signal... » read more

Writing an OS Kernel from Scratch – Part 30: Window Manager Mouse Support — Implementing Click, Drag, and Window Operations

dean
# Writing an OS Kernel from Scratch – Part 30: Window Manager Mouse Support — Implementing Click, Drag, and Window Operations “The keyboard is efficient, but the mouse is intuitive. Today, we integrate mouse support into the window manager, achieving true graphical interaction!” In the previous article, we successfully implemented the PS/2 mouse driver and... » read more

332 – Android init Process: The First Userspace Process

dean
332 – Android init Process: The First Userspace Process Series Navigation: 330-Boot Overview | 331-Bootloader | 333-Zygote Two articles ago, we covered how the Bootloader loads the kernel. Last time, we covered how the kernel decompresses, initializes hardware, and jumps to execute userspace code. Now we arrive at a pivotal role in the Android boot... » read more