Linux Developer Guide
Master C programming, modern C++17/20, and POSIX system APIs — the foundation for all Linux and embedded systems development.
C Programming Fundamentals
Pointers, memory, file I/O, build tooling, and debugging with GDB.
Pointers & Memory
Pointer arithmetic, pointer-to-pointer, function pointers, memory layout, and stack vs heap.
Structs & Unions
Struct layout, padding/alignment, bit-fields, unions, and typedef patterns for embedded protocols.
File I/O
fopen/fread/fwrite, buffered vs unbuffered I/O, file positioning, and binary file handling.
Dynamic Allocation
malloc/calloc/realloc/free, memory leaks, Valgrind, and custom allocator patterns.
Makefiles
Rules, variables, automatic variables, pattern rules, phony targets, and multi-directory builds.
GCC Flags & Optimization
Warning flags, optimization levels, sanitizers, cross-compile flags, and reading assembly output.
GDB Debugging
Breakpoints, watchpoints, stack frames, core dumps, remote debugging, and GDB scripting.
C++ & Modern Systems Programming
OOP, templates, smart pointers, move semantics, CMake, and Qt.
OOP & RAII
Classes, inheritance, virtual dispatch, RAII, Rule of Five, and exception safety guarantees.
Templates & STL
Function/class templates, template specialisation, STL containers, iterators, and algorithms.
Smart Pointers
unique_ptr, shared_ptr, weak_ptr, custom deleters, and when to use each in embedded context.
Move Semantics
lvalue/rvalue, move constructor/assignment, std::move, perfect forwarding, and copy elision.
CMake
Targets, properties, find_package, CPack, cross-compilation toolchain files, and modern CMake patterns.
Qt Framework
Signals & slots, QObject, QML basics, Qt for embedded (eglfs), and serial/network I/O.
C++17 / C++20
Structured bindings, std::optional/variant, concepts, ranges, coroutines, and modules.
POSIX APIs & Concurrency
System calls, processes, IPC, sockets, threads, and synchronisation primitives.
POSIX File I/O
open/read/write/close, file descriptors, O_flags, ioctl, mmap, select/poll/epoll.
Processes & fork()
fork/exec/wait, process groups, sessions, daemon creation, and zombie reaping.
Signals
sigaction, signal masks, real-time signals, signal-safe functions, and self-pipe trick.
UNIX Sockets
TCP/UDP sockets, server/client patterns, non-blocking I/O, and UNIX domain sockets.
Pthreads
pthread_create/join/detach, thread attributes, CPU affinity, and thread-local storage.
Mutexes & Semaphores
pthread_mutex, condition variables, semaphores, rwlocks, and avoiding deadlocks.
Pipes & Shared Memory
Anonymous & named pipes (FIFOs), POSIX shared memory, message queues, and mmap IPC.