Welcome to My Lab
I’m Cha Seojun (차서준), a systems programmer, reverse engineer, and hacker.
This is my digital lab where I document how computers really work—from transistor-level logic to modern operating systems.
What you’ll find here
- Low-level programming – ARM assembly, memory, registers, and system calls
- Linux internals – kernel, syscall tracing, ELF analysis, debugging
- Compiler & Toolchain building – writing a C compiler, building an assembler
- Hardware emulation – QEMU, memory-mapped I/O, CPU design with Verilog
- Real projects – not tutorials, but real engineering journeys
If you’re curious about what’s under the hood of your computer — and want to build or break it yourself — you’re in the right place.
Get in touch or follow my work on GitHub.
-
ARM Assembly - Build Environment and First Code
In this post, I will show you how to write and run your first ARM assembly code. This is the foundation for the rest of this tutorial series. We will write a very simple assembly program, compile it, run it in QEMU, and prepare for debugging with GDB.
-
What is Low-Level Programming?
All the electronic devices we use every day—smartphones, laptops, and servers—are built on a complex combination of software and hardware. Most people only interact with the visible parts, like websites or apps, but beneath the surface lies an unseen world: low-level programming.