11 repository-uri
University-level courses covering computer architecture, operating systems, and distributed systems.
Explore 11 awesome GitHub repositories matching part of an awesome list · Systems Programming. Refine with filters or upvote what's useful.
This project is an educational curriculum designed to teach the fundamentals of operating system development and low-level systems programming. It provides a structured sequence of lessons and code samples that guide users through building a functional kernel and bootloader from scratch, enabling a practical understanding of how software interacts directly with computer hardware. The repository distinguishes itself by focusing on the core mechanics of bare-metal execution. It covers the implementation of essential system components, including assembly-based bootloaders that transition process
Comprehensive guide to building a simple operating system.
This project is a low-dependency engine designed for training large language models using native C and CUDA. It provides a bare-metal environment for tensor computation, allowing for the execution of neural network operations directly on hardware accelerators without the overhead of high-level software abstractions. The framework distinguishes itself by implementing manual gradient backpropagation and custom hardware-specific kernels, providing granular control over memory mapping and computational precision. It supports distributed training across multiple graphics processors and compute nod
High-performance implementation of large language models in C.
Tinyrenderer is a C++ library designed as an educational tool for building a 3D graphics pipeline from scratch. It provides a software-defined rendering environment that executes all geometric transformations and rasterization tasks on the central processor, intentionally avoiding reliance on external hardware acceleration or graphics libraries. The project serves as a pedagogical resource for understanding the fundamental mathematical principles of computer graphics. It enables users to implement custom shader pipelines and core rendering techniques, such as barycentric coordinate calculatio
Implement a software-based 3D renderer from the ground up.
This project is an educational resource and technical reference for building operating systems from scratch. It provides a comprehensive guide to mastering x86 architecture and implementing core kernel components by writing code that executes directly on hardware without the support of standard libraries or operating system abstractions. The materials focus on low-level systems engineering, teaching users how to interpret technical datasheets to manage hardware resources. It covers the fundamental mechanics of bare-metal programming, including the use of assembly language to define execution
Comprehensive guide to building an operating system from scratch.
This is an open-source, crowd-sourced wiki textbook that teaches Linux system programming in C. It covers the core operating system concepts of process management through the fork-exec-wait model, dynamic memory allocation using implicit free list heap allocators, inode-based file systems, inter-process communication via pipes and shared memory, POSIX threads with synchronization primitives, signal-based asynchronous notification, virtual memory with page table translation, and runtime diagnostics using Valgrind and GDB. The textbook distinguishes itself by providing practical, implementation
Practical systems programming assignments and lab materials.
Acest proiect este un motor de ray tracing și un proiect de randare C++ conceput pentru a simula comportamentul fizic al luminii pentru a genera imagini 2D din scene 3D. Servește drept tutorial de grafică pe calculator și implementare educațională menită să predea principiile matematice și algoritmice fundamentale ale programării graficii 3D. Implementarea se concentrează pe fundamentele transportului luminii și geometriei scenei. Utilizează raytracing recursiv de tip Whitted pentru a simula reflexiile și folosește umbrirea difuză Lambertiană pentru a calcula luminozitatea suprafeței. Motorul gestionează randarea scenelor 3D prin testarea intersecției sferă-plan și un graf de scenă orientat pe obiecte. Generează imagini finale folosind eșantionarea pixel-grid și calcule iterative ale luminii pentru a determina culoarea fiecărui pixel.
Build a basic ray tracing engine in C++.
This project is a pedagogical implementation of a hash table in C, built from scratch using open addressing and linear probing for collision resolution. It serves as a computer science algorithm demo, demonstrating how to construct a fundamental key-value store at a low level. The implementation covers the core operations of an associative array: inserting a key-value pair, looking up a value by its key, and deleting a pair. It uses a hash function to compute storage locations, maps hash values to array indices with the modulo operator, and resolves collisions by scanning sequentially through
Learn to implement a hash table data structure.
A brief computer graphics / rendering course
Create a 3D game engine with physics and rendering.
486 lines of C++: old-school FPS in a weekend
Develop a 2D raycasting engine for retro-style graphics.
The first chapters of Retro Rampage are now available as a video tutorial series, produced by the great folks at objc.io (with Yours Truly as guest presenter).
A retro-style game engine implementation.
ECE 459: Programming for Performance, Winter 2015
Techniques for profiling and rearchitecting high-performance software systems.