Materials by Başar Subaşı

Başar Subaşı has published 8 tutorials and 7 challenges, and prepared 2 playgrounds.

All materials

Tutorial

Change Your Root: Chroot Basics

Understand how the chroot system call changes the root directory for a process, learn how dynamic linkers resolve dependencies inside a jail, and see what an isolated process perceives as its filesystem root.

Change Your Root: Chroot Basics (cover image)
Tutorial

Using Go for Systems Programming

Discover how Go functions under the hood as a modern systems programming language. Learn how Go makes system calls directly, resulting in self-contained binaries that have no libc dependencies.

Using Go for Systems Programming (cover image)
Tutorial

Linux Processes: Understanding Signals

Explore Linux/Unix signals in Go, how signals act as asynchronous notifications, who can send them, default kernel behaviors, sending signals with kill and Go, graceful signal handling with os/signal, and why SIGKILL cannot be trapped.

Linux Processes: Understanding Signals (cover image)
See all tutorials by Başar Subaşı →
Challenge

Utilize POSIX Threads for Concurrency

Refactor a slow, single-threaded C file downloader that fetches files sequentially into a multi-threaded program using POSIX Threads (pthreads) to achieve concurrent downloads.

See all challenges by Başar Subaşı →
Skill Path

Linux Processes 101

Explore Linux kernel task models, process creation with fork() and execve(), multi-threaded concurrency using POSIX threads (pthreads), and asynchronous signal handling and termination.

Skill Path

Bare-Metal Programming 101

Explore hardware architectures, CPU registers, x86_64 assembly, the C compilation pipeline, linker symbol resolution, and direct system calls in Go to build binaries from the ground up without depending on a standard library.

See all skill paths by Başar Subaşı →
Playground on  Networking, Linux

TCP Proxies: Client, Proxy, and Server

Three Ubuntu VMs for direct TCP connections, byte relaying, and modifying proxies.

Playground on  Linux, Programming

Linux Kernel Hacking

Minimal environment for compiling and testing the Linux kernel with GCC, Clang/LLVM, Clangd, and QEMU.

Playground on  Linux, Programming

Training

Playground on  Kubernetes, IaC, CI/CD

GitOps Bootstrap

A sandbox where you can experiment with different k8s stacks all you want!

Playground on  Linux, Networking, Observability

Ubuntu eBPF

Experimental playground with out of the box eBPF support through BTF

See all playgrounds by Başar Subaşı →