The Curious Engineer

All blogs / OS / kernel

Uros Popovic

popovicu.com

Personal site of Uros Popovic - tech blogging on systems and software.

OS / kernelSystemsEmbedded / microcontrollersLinux / UnixCompilers

Posts
39 from 9 Sep 2023 to 18 Jan 2026
Posting
now and then (4 in the last year)
Kind
personal blog
Feed
https://popovicu.com/rss.xml

2026 1

  1. Writing your first compiler

2025 18

  1. How to use Linux vsock for fast VM communication
  2. How to reverse engineer USB HID on Linux
  3. How KVM and QEMU run VMs in Linux
  4. PC cooler control with a $2 microcontroller, no development board
  5. Writing an operating system kernel from scratch
  6. Custom CPU simulation and testing
  7. Running Go tools in a browser
  8. RTL generation for custom CPU Mrav
  9. Mrav custom CPU software tooling
  10. Embedded bare-metal C with Bazel and AVR
  11. Creating an assembler for a custom CPU
  12. Making a custom CPU
  13. Simple Lua integration in Go
  14. Cross-compiling C and Go via cgo with Bazel
  15. Linux VM without VM software - User Mode Linux
  16. Machines build machines - AI creates a bootable VM
  17. Bare metal JavaScript on RISC-V
  18. Bare metal printf - C standard library without OS

2024 9

  1. Making my first embedded Linux system
  2. Make your own USB storage device using embedded Linux
  3. Making USB devices - end to end guide to your first gadget
  4. OCI containers with Bazel in one command
  5. Go gRPC servers with Bazel in one command
  6. Easy to build and deploy Go servers with no tooling and external dependencies
  7. How files in Linux work
  8. Run mainline Linux on $5 dollar hardware
  9. <50 lines of code for a custom generative AI flow in Google Slides with Google Gemini

2023 11

  1. Making a mini computer from scratch with Raspberry Pi and Linux
  2. Cross compiling C and C++ with Bazel
  3. Take full control of Raspberry Pi! 10 MB mainline Linux image for embedded
  4. Building multiplatform Linux initramfs with one command in Bazel
  5. Build all software in one command with Bazel
  6. RISC-V interrupts with a timer example
  7. Bare Metal Rust on RISC-V With Dynamic Memory
  8. 789 KB Linux Without MMU on RISC-V
  9. Making a micro Linux distro
  10. RISC-V SBI and the full boot process
  11. Bare metal programming with RISC-V guide