A curated list of awesome computing/programming resources.
- Artificial intelligence
- Bioinformatics
- Blogs
- Books
- Bootloaders
- C
- Compilation
- Computer Graphics
- Conferences
- Containers
- Courses
- Distributed Computing
- Documentation
- Editors
- Education
- Embedded Systems
- Emulation
- Encoding
- Filesystems/storage
- Games
- Golang
- Graphs/charts/diagrams
- GUI
- Hacks
- Hardware
- History
- Jokes
- Languages
- Linux
- Networking
- Operating Systems
- People
- Programming
- Repositories
- Research papers
- Rust
- Security
- Search Engines
- Shell
- Systems
- Text editors/processing
- Tools
- Virtualization
- scikit-learn - Simple and efficient machine learning tools in Python
- huggingface - The platform where the machine learning community collaborates on models, datasets, and applications.
- llm.c - LLM training in simple, raw C/CUDA
- napkin - Turns your text into visuals so sharing your ideas is quick and effective
- gamma - AI design partner for effortless presentations, websites, social media posts, and more
- bolt - AI-powered web development platform which allows developers to build, run, edit, and deploy full-stack web apps directly from their browser without writing any code
- ahaslides - The all-in-one AI platform for interactive and impactful presentations
- heygen - AI Video Generator, no Camera Needed. HeyGen AI turns text to video in only a few minutes.
- elevenlabs - Create the most realistic speech with our AI audio platform. Pioneering research in Text to Speech and AI Voice Generator.
- teachablemachine - Train a computer to recognize your own images, sounds, & poses. A fast, easy way to create ML models for your sites, apps, and more.
- Julia Evans - Julia Evans' blog (mostly systems topcis)
- Christine Dodrill - Christine Dodrill's blog (web and backend services devops)
- Mathieu Ropert - A blog about C++ with a bit of a French touch
- The Overflow - The Stackoverflow Blog
- Drew DeVault - Drew DeVault is the creator of the Hare language, founder of SourceHut, author of the Wayland book, etc.
- confessions of a code addict - Passionate software engineer with a knack for turning complex ideas into simple solutions; insights and experiences from over a decade in the tech industry.
- Brent's Website - Brent's Website (some Assembly required)
- Ariadne's Space - Ariadne's Space, pulling at the threads of complexity...
- SystemsApproach book - Computer Networks: A Systems Approach
- POSIX-UEFI - Dependency-free POSIX compatibility layer and build environment for UEFI
- The rEFInd Boot Manager - A boot manager for computers based on EFI and Unified EFI (UEFI).
- bootboot - BOOTBOOT has the opposite philosophy than GRUB: a set of simple and small loaders which provide the same boot environment for your kernel on different 64-bits platforms.
- easyboot - Easyboot is an all-in-one boot manager and bootable disk image creator that can load various OS kernels and Multiboot2 compliant kernels in various binary formats.
- simpleboot - Easyboot's little brother, simpler, which loads a single kernel only.
- limine - Modern, advanced, portable, multiprotocol bootloader and boot manager.
- Managing EFI Boot Loaders for Linux - Resources on EFI boot, secure boot, boot loaders and managers.
- UEFI boot - UEFI boot: how does that actually work, then?
- Plop Boot Manager - The Plop Boot Manager is a small program to boot different operating systems.
- The Syslinux Project - The SYSLINUX Project is a suite of lightweight MBR boot loaders for starting up PCs with the Linux kernel.
- Linux on UEFI - Linux on UEFI: A Quick Installation Guide
- GOP - Programming EFI Graphics Output Protocol (GOP) services
- GNU-EFI - GNU-EFI is a very lightweight developing environment to create UEFI applications using a system's native GCC.
- GRUB rescue on UEFI - GRUB rescue on UEFI based systems
- awesome-c - A curated list of awesome C frameworks, libraries, resources and other shiny things.
- Collections-C - Library of generic data structures.
- PIC, PIE and Sanitizers - PIC, PIE and Sanitizers
- libmill - Libmill is a library that introduces Go-style concurrency to C.
- coroutines C - Coroutines in C.
- SectorC - SectorC: A C Compiler in 512 bytes.
- matrix oo - Sample matrix implementation illustrating object-oriented techniques in C99.
- Brent’s C programming rules - Brent’s C programming rules
- Godbolt - Compile some code and watch the generated assembly for different programming languages.
- llvm backend cpu0 - Creating an LLVM Backend for the Cpu0 Architecture
- emscripten - Emscripten is a complete compiler toolchain to WebAssembly, using LLVM
- disasm.pro - Online dissassembler for many architectures
- llvm backend - Writing an LLVM Backend
- qbe - QBE is a compiler backend that aims to provide 70% of the performance of industrial optimizing compilers in 10% of the code.
- scratchapixel - Mathematics and Physics for Computer Graphics
- simple2d - Small, open-source graphics engine providing essential 2D drawing, media, and input capabilities (C)
- orx - Open source, portable, lightweight, plugin-based, data-driven and extremely easy to use 2D-oriented game engine (C)
- csfml - Simple and Fast Multimedia Library to ease the development of games and multimedia applications (C)
- thebookofshaders - This is a gentle step-by-step guide through the abstract and complex universe of Fragment Shaders
- GPU arch explained - GPU architecture types explained (Immediate-Mode vs Tile-Based rendering)
- raylib - raylib is a simple and easy-to-use library to enjoy videogames programming.
- lodes computer gfx tutorial - Lode's Computer Graphics Tutorial
- automatic1111 - Stable Diffusion AI is a latent diffusion model for generating AI images
- iopaint - Image inpainting tool powered by SOTA AI Model. Remove any unwanted object, defect, people, etc. from your pictures.
- Awesome CS Courses - Awesome Computer Science Courses
- fosdem - FOSDEM talks archives. Free and Open source Software Developers' European Meeting (FOSDEM) is a non-commercial, volunteer-organized European event centered on free and open-source software development.
- Docker internals - Docker Internals, a deep dive into Docker for engineers interested in the gritty details
- Under the hood of Docker - Under the hood of Docker
- Containers 500LOC - Linux containers in 500 lines of code
- rootless docker - Run the Docker daemon as a non-root user
- containers from scratch - Containers from scratch
- containerd - An open and reliable container runtime
- runc - CLI tool for spawning and running containers
- x11docker - Run GUI applications and desktops in docker and podman containers.
- openfaas - Serverless Functions Made Simple
- raft - The Raft Consensus Algorithm
- raft go - Golang implementation of the Raft consensus algorithm
- tldr pages - Simplified and community-driven man pages.
- zettlr - Zettlr: A Markdown editor for the 21st century
- AMC - Create and manage multiple choice questionnaires (MCQ), with automated marking.
- TinyGo - A Go compiler for microcontrollers
- MicroPython - Implementation of Python 3 for microcontrollers which includes a small subset of the Python standard library
- elinux - Embedded Linux Wiki
- FreeRTOS - FreeRTOS is a real-time operating system for microcontrollers
- uC-OS3 - µC/OS-III is a highly portable, ROMable, scalable, preemptive, real-time, deterministic, multitasking kernel for CPU, MPU and DSP.
- embedded - The resource for everything embedded systems designers and developers need to do their jobs
- build an embedded Linux system - So you want to build an embedded Linux system?
- synthos - Synthesize your own optimized, custom real time operating system (RTOS)
- BBC microbit - The BBC micro:bit is a pocket-sized computer that introduces you to how software and hardware work together
- BBC microbit hardware - Detailed description of the BBC micro:bit's hardware
- linux emb yocto - Linux embarqué avec Yocto Project
- Linux Yocto Cooker Imbriqué - Imbriquer des systèmes Linux avec Yocto Cooker
- U-Boot programming - U-Boot programming tutorial
- rauc - Safe and secure software updates for embedded Linux
- Linux userspace examples - Repository providing Linux application examples for common communication protocols: SPI, I2C, UART
- Zephyr project - Zephyr is a small RTOS for connected, resource-constrained and embedded devices supporting multiple architectures.
- NuttX - Apache NuttX is a highly scalable RTOS featuring small footprint and standards compliance (UNIX, POSIX, ANSI).
- advanced qemu - Advanced configuration for QEMU
- DOSBox-X - Open-source DOS/Win3.x/Win9x emulator for running DOS/windows applications and games. It is much more flexible and provides more features than DOSBox.
- dosbox-x options - DOSBox-X's Command-Line Options
- unicode - The Absolute Minimum Every Software Developer Must Know About Unicode in 2023.
- qemu ceph rbd perf - Performance tuning of QEMU on Ceph rbd storage
- ceph rbd snapshots - Ceph rbd snapshots
- ceph cheatsheet - Ceph Cheatsheet
- ext4 explained - Ext4 filesystem explained: data blocks, super blocks, inode structure
- ntfs cluster alloc - Disk Cluster Allocation Behavior in Windows and NTFS
- seaweedfs - SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files!
- btrfs - BTRFS official documentation
- timeshift - System restore tool for Linux. Creates filesystem snapshots using rsync+hardlinks, or BTRFS snapshots.
- vectorvfs - VectorVFS transforms your Linux filesystem into a vector database by leveraging the native VFS extended attributes
- bevy - A refreshingly simple data-driven game engine built in Rust
- godot - Godot is a cross-platform, free and open-source game engine
- armory - Armory is an open-source 3D game engine with full Blender integration
- ogre - OGRE is a scene-oriented, flexible, open-source 3D engine
- o3de - O3DE is an open-source, multi-platform 3D engine
- panda3d - Panda3D is an open-source, completely free-to-use engine for realtime 3D games
- phaser - Phaser is a free and fast 2D game framework for making HTML5 games
- doomgeneric - Doom is already portable but with doomgeneric it is possible with just a few functions
- awesome-go - A curated list of awesome Go frameworks, libraries and software
- go-101 - Go 101 is a series of books on Go programming
- echo - Echo is a high performance, extensible, minimalist Go web framework
- chi - A lightweight, idiomatic and composable router for building Go HTTP services
- gin - The fastest full-featured web framework for Go
- webrpc - webrpc is a schema-driven approach to writing backend services for modern Web apps and networks
- go documentation - Official Go documentation
- Effective Go - Effective Go short book
- Go by Example - Go by Example is a hands-on introduction to Go using annotated example programs
- Resty - Simple HTTP and REST client library for Go
- Req - Simple Go HTTP client with Black Magic
- Fyne - Cross platform GUI in Go inspired by Material Design
- gotk3 - Go bindings for GTK3
- golang tutorials - Golang tutorial series
- go for C dev - Go for C programmers
- Organizing Go code - Organizing Go code
- Golang Goroutine Scheduler - Understanding the Golang Goroutine Scheduler GPM Model
- tview - Terminal UI library with rich, interactive widgets (even "graphics")
- reflection go - Reflection in Go: Use cases and tutorial
- common go mistakes - 100 Common Go Mistakes
- slice gotchas - Why appending to slice in Golang is dangerous? Common Slice Gotchas
- asciiflow - ASCIIFlow is a client-side only web based application for drawing ASCII diagrams. Git repository here.
- nuklear - A single-header ANSI C immediate mode cross-platform GUI library.
- raylib-nuklear - Nuklear immediate mode GUI for raylib
- destreamer - destreamer, save Microsoft Stream videos for offline enjoyment
- pihole - Block ads for all devices inside your network with a Raspberry Pi
- pihole setup - How To Set Up Pi-hole
- yt-dlp - A feature-rich command-line audio/video downloader
- piper - The Piper Computer Kit is the ultimate DIY computer-building experience. Build a REAL computer from start to finish.
- how dram works - How does Computer Memory Work?
- tiny tapeout - Tiny Tapeout is an educational project that makes it easier and cheaper than ever to get your designs manufactured on a real chip!
- Pessimists Archive - Pessimists Archive is a project to jog our collective memories about the hysteria, technophobia and moral panic that often greets new technologies, ideas and trends
- scigen - An Automatic Computer Science Paper Generator
- turnoff us - webcomic that explores the worlds of programming, operating systems, and tech professional life
- xkcd - A webcomic of romance, sarcasm, math, and language
- Language benchmarks Programming language and compiler benchmarks.
- Hare language - Hare is statically-typed systems programming language designed to be simple, stable, and robust.
- Zig language - Zig is a general-purpose programming language and toolchain for maintaining robust, optimal and reusable software.
- V language - V is a statically typed compiled programming language designed for building maintainable software.
- Linux Kernel Monkey Log - Greg Kroah-Hartman's blog (Linux kernel maintainer)
- Linux Kernel in a Nutshell - The "Linux kernel in a nutshell" free book from O'Reilly
- Greg K-H's Linux Stuff - Greg K-H's Linux Stuff (slides, talks, udev, hotplug, usb, etc.)
- NixOS - NixOS is a GNU/Linux distribution that aims to improve the state of the art in system configuration management (reliable and atomic upgrades, rollbacks, etc.)
- Guix - Guix is a GNU/Linux distribution that supports transactional upgrades, rollbacks, unprivileged package management, etc.
- vramfs - VRAM based file system for Linux
- Linux kernel teaching - Collection of lectures and labs on the Linux kernel
- Grml Live Linux - Debian based Linux Live system
- Slax - Slax is a compact, fast, modern and customizable Linux distro that can be generated into an ISO image.
- cubic - Cubic is a GUI wizard to create a customized Live ISO image for Ubuntu and Debian based distributions.
- monogon - Monogon OS is open-source, secure, API-driven, minimal, based on Linux and Kubernetes, with a clean userland rebuilt entirely from scratch in pure Go and eliminates decades worth of legacy code and unnecessary complexity.
- mkusb - mkusb is a simple, safe tool to create a bootable drive from an iso image or a compressed image file.
- ubuntu-autoinstall-generator-tools - A script to generate a fully-automated ISO image for installing Ubuntu onto a machine without human interaction.
- binfmt_misc - Kernel feature that allows you to invoke almost every program by simply typing its name in the shell (e.g. compiled Java or Python programs).
- IPFS - A peer-to-peer hypermedia protocol designed to make the web faster, safer, and more open
- sshuttle - Transparent proxy server that works as a poor man's VPN. Forwards over ssh.
- Genode - The Genode OS Framework is a tool kit for building highly secure special-purpose operating systems
- Plan9 - Plan 9 from Bell Labs is a distributed OS designed to make a network of heterogeneous and geographically separated computers function as a single system
- Inferno - Inferno was created to bring ideas of Plan to a wider range of devices and networks
- Inferno doc - Inferno documentation
- HelenOS - HelenOS is a portable microkernel-based multiserver operating system designed and implemented from scratch
- Serenity OS - SerenityOS is a love letter to '90s user interfaces with a custom Unix-like core
- x86-bare-metal-examples - Dozens of minimal operating systems to learn x86 system programming
- Rust RISC-V OS - The Adventures of OS: Making a RISC-V Operating System using Rust
- OS in Rust - Writing an OS in Rust
- managarm - Pragmatic microkernel-based OS with fully asynchronous I/O
- tilck - A Tiny educational Linux-Compatible kernel
- AxleOS - Axle OS is a hobby microkernel and userspace
- egos-2000 - With only 2k lines of code, egos-2000 implements every component of an OS for education; it supports RISC-V boards and QEMU.
- Debian Live - The Debian Live project produces the framework used to build live systems based on Debian
- gopher-os - A proof of concept OS kernel written in Go
- Multicians - Presents the story of the Multics OS for people interested in the system's history
- Little book OSdev - The little book about OS development is a practical guide to writing your own x86 operating system.
- Bredan mult-tasking - Tutorial describing how to implement software multi-tasking and task switching for x86.
- Unix clone in a month - Writing a Unix clone in about a month.
- osdev-notes - A book that explore how to write an Operating System from scratch.
- darwin-xnu - Apple’s Darwin OS and XNU Kernel Deep Dive
- osle - https://shikaan.github.io/osle/
- Asterinas - Asterinas adopts the novel framekernel OS architecture, which unleashes the full power of Rust to bring the best of both monolithic kernels and microkernels.
- Ghostery - Powerful and easy-to-use privacy browser extension, block ads and trackers.
- uBlock Origin - Open-source wide-spectrum content blocker with CPU and memory efficiency.
- Fabrice Bellard - Fabrice Bellard, the author of QEMU, ffmpeg
- programming books - Programming books (huge number of resources on many programming languages)
- LeetCode - LeetCode is the best platform to help you enhance your skills, expand your knowledge and prepare for technical interviews.
- meson build - Meson is an open source build system meant to be both extremely fast, and as user friendly as possible
- ttt-bench - Benchmark comparing the speed of many languages on a Tic-Tac-Toe solver
- Benchmarks Game Compare the performance of many languages across many tests
- ncurses howto - NCURSES Programming HOWTO
- wizard zines - Programming zines by Julia Evans
- sourcehut - SourceHut is a 100% open source, not owned by company, git forge.
- google research - Papers published by Google Research in a wide range of fields.
- The Rust Programming Language - Book "The Rust Programming Language book"
- awesome-embedded-rust - Curated list of resources for Embedded and Low-level development in Rust
- The Embedded Rust Book - The Rust Programming Language (book)
- awesome-rust - A curated list of awesome Rust frameworks, libraries, resources and other shiny things.
- cheats.rs - Rust Language Cheat Sheet.
- 24daysofrust - The "24 days of Rust" article series.
- Learning Rust With Entirely Too Many Linked Lists - Good / bad implementations of lists to learn Rust.
- Actix - Rust's powerful actor system and most fun web framework
- Rocket - Web framework that makes it simple to write fast, secure web applications
- Polymorphism in Rust - Polymorphism in Rust
- google search op - Google Search Operators: The Complete List.
- Google Hacking DB - Google Hacking Database.
- urandom myths - Myths about /dev/urandom
- revers engineering - Security research blog
- apparmor guide - The Comprehensive Guide To AppArmor
- openssh priv key - Public key cryptography: OpenSSH private keys
- ssh tunneling - SSH Tunneling Explained
- keycloak - Open Source Identity and Access Management For Modern Applications and Services (Single Sign-On)
- capsudo - capsuso: rethinking sudo with object capabilities
- fzf - A command-line fuzzy finder.
- oh-my-zsh - Manage ZSH configuration with plugins.
- z - Jump in directories based on 'frecency'.
- explainshell.com - Write down a command-line to see the help text that matches each argument.
- tldr - Simplified man pages with examples.
- bat - Syntax highlighting cat
- shellsheck - finds bugs in your shell scripts.
- shfmt - A shell parser, formatter, and interpreter (sh/bash/mksh)
- gocrazy - Replace Linux' core system layer by a pure and safe Go implementation
- The TTY demystified - The TTY demystified
- collectd - The system statistics collection daemon.
- graphite - Store numeric time-series data and render graphs of this data on demand.
- grafana - The open platform for beautiful analytics and monitoring.
- sysstat - Performance monitoring tools for Linux
- fosdem19 - FOSDEM (Free and Open source Software Developers' European Meeting) 2019 talks and papers
- supervisord - Supervisor: A Process Control System
- pic shared libs - Position Independent Code (PIC) in shared libraries
- ELF 101 - The 101 of ELF files on Linux: Understanding and Analysis
- Evolution of the x86 context switch in Linux - Evolution of the x86 context switch in Linux
- Context Switching on x86 - Context Switching on x86
- Beginners Guide to Udev - Beginners Guide to Udev in Linux
- Introduction to asynchronous IO - A tiny introduction to asynchronous IO
- systemd historical and technical retrospective - systemd, 10 years later: a historical and technical retrospective
- The hidden early history of Unix - The hidden early history of Unix
- Systemd essentials - Systemd Essentials: Working with Services, Units, and the Journal
- AppImageKit - AppImageKit is a concrete implementation of the AppImage format
- FAI - FAI is a tool for unattended mass deployment of Linux
- bios keys - Liste des touches accès au BIOS ou Boot menu par constructeur
- hello world - Hello World under the microscope
- Cubic - Custom Ubuntu ISO Creator
- OSTree - OSTree is an upgrade system for Linux-based operating systems that performs atomic upgrades of complete filesystem trees
- modern-unix - A collection of modern/faster/saner alternatives to common unix commands
- kerrisk talks - Michael Kerrisk Linux/kernel conferences' talks
- zsync2 - zsync is designed for file distribution where only the new parts of the file are downloaded.
- Textidote - Correction tool for LaTeX: spelling, grammar, etc.
- Basic Markdown Syntax - Basic Markdown Syntax
- Typst - Typst is a new open-source typesetting system that is powerful and easy to learn, inspired by LaTeX
- Polylux - Polylux: package for Typst to create presentation slides
- Touying - Touying is a powerful and efficient package for creating presentation slides in Typst
- Quarto - An open-source scientific and technical publishing system
- presenterm - Create presentations in markdown format and run them from your terminal
- osboxes.org - OS images ready to use with VirtualBox or VMware.
- gitignore.io - Create useful .gitignore files for your project.
- Cool, but obscure unix tools - A little collection of cool unix terminal/console/curses tools
- ImHex - A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM
- ARM virtualization - An in-depth look into the ARM virtualization extensions
- QuickEmu - Quickly create and run highly optimised desktop virtual machines with just two commands
- Firecracker - Secure and fast microVMs for serverless computing
- NOVA - Research project aimed at constructing a secure virtualization environment with a small trusted computing base
- NOVA microhypervisor - Source code of the NOVA microhypervisor
- NoVM - novm is a legacy-free, type 2 hypervisor written in Go. Its goal is to provide an alternate, high-performance Linux hypervisor for cloud workloads.
- xen guide - Xen Project Beginners Guide
- xen modes - Xen Modes: What Color Is Your Xen?
- Ravada - Free, easy-to-use & deploy VDI solution. Ravada is an open-source project that allows users to connect to a virtual desktop.
- MMU virt via Intel EPT - MMU Virtualization via Intel EPT: Implementation
- hypervisor-from-scratch - Series of tutorials about implementing an hypervisor
- vmm from scratch - Hypervisor from scratch using Intel VT-x
- embvm-core - Embedded Virtual Machine Core Project
- virtio driver - Virtio driver implementation example
- hypervisor - A very simple hypervisor using the KVM API (Patrick Dumais)
- KVM hypercall - A Deep Dive in KVM Hypercall
- Nanos - Nanos is a new kernel designed to run one and only one application in a virtualized environment
- spice-gtk-tutorial - Tutorial for creating a VM Viewer with Spice-GTK
- go-spice - Pure Go implementation of the Spice protocol
- Hypervisor-From-Scratch - Mmulti-part series of tutorials "Hypervisor From Scratch"
- vbox - VirtualBox source code (mirror)