CppGuide is a curated collection of educational resources and practical guides focused on C++ server development, Linux kernel internals, concurrent programming, network protocols, and security exploitation. It provides structured learning paths for backend developers, covering everything from interview preparation to building high-performance network servers and understanding operating system fundamentals.
The guide distinguishes itself by offering in-depth, hands-on tutorials that walk through real-world implementations, including building a Redis-like server from scratch, designing custom network protocols, and constructing remote control tools. It also delves into advanced topics such as shellcode injection, kernel module development, and the architecture of the Linux kernel, providing a mental model for how the kernel operates as a responsive, object-based system.
Beyond core C++ and kernel topics, the repository covers a broad range of supporting areas including memory management strategies, concurrency and synchronization patterns, network communication diagnostics, and performance optimization techniques. It also includes material on modern C++ language features, standard library usage, and software architecture patterns like the reactor model and event-driven design.
The documentation is organized as a series of guides and tutorials, with practical code examples and step-by-step explanations that trace execution paths through both user-space and kernel-space code.
FreeRTOS is a real-time operating system for embedded devices that provides a kernel for predictable task execution. It utilizes priority-based preemptive scheduling and deterministic timing to manage simultaneous hardware tasks. The project includes a symmetric multiprocessing kernel that distributes processing workloads across multiple CPU cores using a shared memory architecture. It also provides a thread-safe TCP/IP networking stack for managing internet protocol traffic and IPv6 connectivity on embedded processors. The system incorporates an embedded memory manager with fixed-size alloc
Bubblewrap is a Linux sandbox runner that creates lightweight, isolated execution environments for running untrusted applications. It combines Linux user, mount, network, PID, and UTS namespaces with seccomp-BPF system call filtering to restrict filesystem, network, process, and inter-process communication access. The project provides comprehensive process isolation by giving each sandbox its own private tmpfs root with selective bind-mounts, a separate network stack containing only a loopback interface, an independent process ID space, and remapped user and group identifiers. It applies secc
EventMachine is a reactor-pattern network framework for Ruby that provides an asynchronous I/O library for performing non-blocking network and file operations. It functions as a network server framework used to build scalable TCP and UDP servers and clients that process multiple simultaneous requests. The framework implements a concurrency model that dispatches network events to registered handlers using a single-threaded event loop. This approach allows for the management of high-concurrency network connections without the overhead of multi-threaded programming. The library covers the devel
Smallchat is a minimal implementation of a concurrent network server and TCP-based chat system designed as a demonstration of C socket programming. It provides a basic server and client architecture that enables real-time text communication between multiple connected users. The project focuses on the implementation of a networked chat server that handles simultaneous client sessions. It utilizes a centralized broadcasting model to route incoming text from one client to all other active participants. The system manages concurrent client connections and session tracking using socket descriptor
CppGuide is a curated collection of educational resources and practical guides focused on C++ server development, Linux kernel internals, concurrent programming, network protocols, and security exploitation. It provides structured learning paths for backend developers, covering everything from interview preparation to building high-performance network servers and understanding operating system fundamentals.
The main features of balloonwj/cppguide are: Networking and Servers, Cross-Platform Thread Management, Concurrent Programming, Linux Kernel Development, Security and Penetration Testing, Exploit Development Guides, Collection Manipulators, Data Structure Implementations.
Open-source alternatives to balloonwj/cppguide include: freertos/freertos — FreeRTOS is a real-time operating system for embedded devices that provides a kernel for predictable task execution.… eventmachine/eventmachine — EventMachine is a reactor-pattern network framework for Ruby that provides an asynchronous I/O library for performing… containers/bubblewrap — Bubblewrap is a Linux sandbox runner that creates lightweight, isolated execution environments for running untrusted… antirez/smallchat — Smallchat is a minimal implementation of a concurrent network server and TCP-based chat system designed as a… federico-busato/modern-cpp-programming — This project is a comprehensive educational resource and programming course covering C++ language semantics and… anthonycalandra/modern-cpp-features — This project is a comprehensive collection of reference materials, including a language cheatsheet, a standard library…