Uros Popovic
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
2025 18
- How to use Linux vsock for fast VM communication
- How to reverse engineer USB HID on Linux
- How KVM and QEMU run VMs in Linux
- PC cooler control with a $2 microcontroller, no development board
- Writing an operating system kernel from scratch
- Custom CPU simulation and testing
- Running Go tools in a browser
- RTL generation for custom CPU Mrav
- Mrav custom CPU software tooling
- Embedded bare-metal C with Bazel and AVR
- Creating an assembler for a custom CPU
- Making a custom CPU
- Simple Lua integration in Go
- Cross-compiling C and Go via cgo with Bazel
- Linux VM without VM software - User Mode Linux
- Machines build machines - AI creates a bootable VM
- Bare metal JavaScript on RISC-V
- Bare metal printf - C standard library without OS
2024 9
- Making my first embedded Linux system
- Make your own USB storage device using embedded Linux
- Making USB devices - end to end guide to your first gadget
- OCI containers with Bazel in one command
- Go gRPC servers with Bazel in one command
- Easy to build and deploy Go servers with no tooling and external dependencies
- How files in Linux work
- Run mainline Linux on $5 dollar hardware
- <50 lines of code for a custom generative AI flow in Google Slides with Google Gemini
2023 11
- Making a mini computer from scratch with Raspberry Pi and Linux
- Cross compiling C and C++ with Bazel
- Take full control of Raspberry Pi! 10 MB mainline Linux image for embedded
- Building multiplatform Linux initramfs with one command in Bazel
- Build all software in one command with Bazel
- RISC-V interrupts with a timer example
- Bare Metal Rust on RISC-V With Dynamic Memory
- 789 KB Linux Without MMU on RISC-V
- Making a micro Linux distro
- RISC-V SBI and the full boot process
- Bare metal programming with RISC-V guide