11 مستودعات
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.
This project is a ray tracing engine and C++ rendering project designed to simulate the physical behavior of light to generate 2D images from 3D scenes. It serves as a computer graphics tutorial and educational implementation intended to teach the fundamental mathematical and algorithmic principles of 3D graphics programming. The implementation focuses on the foundations of light transport and scene geometry. It utilizes Whitted-style recursive raytracing to simulate reflections and employs Lambertian diffuse shading to calculate surface brightness. The engine handles 3D scene rendering thro
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.