Skip to content

Links to varies resources regarding mostly Programming (System Programming, Kernel, OS, Algorithms, Rendering etc)

Notifications You must be signed in to change notification settings

kkrt00/Programming_Resources

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Programming_Resources

Links to varies resources regarding mostly Programming (System Programming, Kernel, OS, Algorithms, Rendering etc)
Many links also include discussion on HackerNews (HKN links), that additionally expands information about those resources.

Table of Contents

Table of contents generated with markdown-toc

====================

Low Level Programming


Compilers

Small scripting language in C LINK

TinyCC, has small busybox and gmake compilation step LINK HKN

Elk: A low footprint JavaScript engine for embedded systems  LINK HKN

Small JS engine for embedded devices LINK HKN

C based Javascript interpreter for low memory embedded devices LINK

LISP with GC in 436 bytes LINK HKN

A work-in-progress C compiler from scratch HKN LINK

Compilers are hard LINK HKN

Bootstrapping GCC from machine code LINK

List of links for creating compilers and interpreters HKN

First C compiler HKN

Standalone compilation hack library for C HKN LINK

Small C compiler - will have a book written about how to make it: LINK

Full Fortran in WASM LINK

Creating interpreters: LINK

CPU optimization blog LINK  

Kernels, emulators and OS programming

How to Write a Computer Emulator  HKN LINK

x86 Bare Metal Examples: Minimal operating systems, learn x86 system programming (also discussion and learning materials about OS dev and hardware access) LINK HKN

Writing a register based VM in less than 125 lines of C code  LINK HKN

OS from scratch in C with utilities LINK

Quite advanced OS written in Assembly LINK LINK

Interesting projects and compiler (examples of small allocators, operating systems etc) LINK

Linux executable walkthrough LINK

QEMU Internals HKN

Open source DOS with repository: LINK

MS-DOS original source code (assembly): LINK  

MS-DOS programs and sources: HKN

Tons of info about emulators with resources: HKN

Making OS in Rust for RISC-V LINK

OS in RUST LINK LINK

Operating system in ASM LINK

Faux86: A portable, open-source 8086 emulator for bare metal Raspberry Pi (2019) HKN

Bootstrap for cortex-M series microcontroller. LINK HKN

Low Level Programming course and materials: LINK   LINK  

Zig

Zig advent of code 2021 pro LINK

Trending Zig on github LINK

ZLD linker with examples of zig c++ LINK

Zig Vulkan headers: LINK

C/C++

C programming learning materials links/cheatsheet LINK

Modern C book (K&R C programming book modern replacement) LINK

Simple JSON parser in C LINK

Writing programs with NCURSES LINK HKN

VC++ bulding tools without Visual Studio: LINK  

Forth and others

Check about Forth, bootstrapping lang for low memory devices HKN

--

Small, low memory programs

C

Media Players in C, more on favourited on github (mostly in C) LINK LINK

MPC fork thats actively being worked on (C++) LINK

Terminal-based Music Player (fully open sourced) LINK

Single-file distributable Web Server with Lua and SQLite LINK HKN

Small SSH server (tinyssh, dropbear) HKN

List of utilities with descriptions! (from DOS and win95 times, mostly without code) LINK  

Writting PPM files (image using text format) with C code (nice to combine with STB libraries to save as jpg/png) or pipe into media player LINK HKN LINK LINK HKN

Writing a SQLite clone from scratch in C  LINK HKN

Micro-Max, a 133-line Chess Source LINK

Simple C based HTTP server by SQLLite in one file HKN

Pretty nice Text Editor with only 2000 lines of C code and 4000 Lua LINK

Dos Navigator port LINK

Fast small browser Badwolf LINK

Ultra small web server with Sqlite DB included - 350kb in exe LINK  LINK 

Tiny contenarized http server (100kb) LINK

Lwan - high-performance & scalable web server LINK

Ultra lightweight containers runner and manager (also for Rpi) LINK HKN

Debugging

How to use GDB HKN LINK

Extreme debugging LINK HKN

Application Reverse Engineering (An opinionated guide on how to reverse engineer software (margin.re)) LINK HKN

GUI

Ultra lightweight GUI library LINK

Small multiplatform UI in C LINK

Assembly

C to Assembly parser in browser!!! LINK 

NASM Assembly Language Tutorials LINK

A mini assembler for x86-64 (C)   LINK

Disassembly challenges LINK

Flat Assembler -  assembler compiler and a lot of resources  LINK

A lot of useful resource for Assembly: HKN

Writing IL (.NET Assembly) LINK  

x64 assembly blog LINK

Assembly application example (put it onto USB) LINK  

Standalone libraries with single header (STB like)

C single header libraries (Sean Barrett) LINK LINK

Zig gamedev and graphics library with no dependecies LINK

Libwebsockets a powerful and lightweight pure C library LINK HKN 

Modern TinyGL implementation with some multithreading support LINK

TinyGL is intended to be a very small implementation of a subset of OpenGL * for embedded systems or games. (no hw acceletation) LINK

PortableGL is an implementation of OpenGL 3.x core in clean C99 as a single header library LINK HKN

Bloat-free C++ GUI library LINK

C headers for really nice libraries LINK  

Electronics / computers from scratch / FPGA

Creating 386 motherboard from scratch HKN LINK

Ben Eater's channel (creating simple computers) LINK

Micro code, cpu simulator LINK

80486 architecture document LINK

Making in Python: Geohot/twitchcore: A RISC-V core, first in Python, then in Verilog, then on FPGA  HKN LINK LINK

Simple 16-bit CPU LINK

Designing a RISC-V CPU, Part 1: Learning hardware design as a software engineer  HKN

FPGA open source project for hardware emulation LINK

From Nand to Tetris - full course of creating a computer LINK HKN

Understanding the computer architecture: HKN LINK

Simple computer with programmed CPU LINK

Making ultra simple CPU HKN

GPU architecture walkthrough: LINK

BIOS history LINK

=================

General Programming

Javascript / WEB

Good web site for JS training LINK 

JS ES6 feature set with examples to execute: LINK 

In browser free notepad data:text/html, <title>Quick Note</title>

Small web frameworks (HTMX, HTML) LINK LINK HKN

Winamp in the browser LINK

Hosting SQLite databases on GitHub Pages or any static file hoster HKN LINK

Bongo cat HKN

Modern CSS walkthrough/tutorial: LINK

CSS animations LINK

Synth maker in html5 LINK

JSON Parser with Typescript's Type system LINK

SQL DB with TypeScript Type system HKN

JS Asynchronous mechanics LINK 

Nice Javascript game - a lot useful code: LINK  

Nice site to get console like visuals written in JS: LINK

Sandbox javascript: LINK 

GraphQL LINK  

Powershell

Remote Desktop coded in Powershell LINK

Rust

Rewritting toy blockchain to Rust LINK

Sample, basic (hello type) video codec implementation in RUST LINK

Rust weekly magazine with publications from blogs etc LINK

Rust project to debug IoT Watch via RPi with VSCode LINK  

WebAssembly

WebAssembly from Scratch: From FizzBuzz to DooM HKN LINK

Net C#

C# DeAssembly tool LINK LINK

Python

Small IDE for Python LINK Python sandbox in WASM HKN LINK

Python programming web based sandbox, hosting and IDE: LINK   

Code execution visualization (python): LINK 

General links to programming language pages:

Nim LINK

Zig LINK Zig pastebin LINK Zig forums LINK

C C Language Cheat Sheet LINK  

GO Go playground powered by WASM that runs in the browser  HKN

Others

Decompressing a Gzip File by Hand HKN

Quick Java programming exercise:  LINK  

TCL guide from MIT HKN

Regex best tricks LINK HKN

Websocketd – It's like CGI, twenty years later, for WebSockets LINK  HKN

Microservices with .NET Core LINK  

Projects

Game of life Conway LINK LINK

Challenging projects every programmer should try: HKN Build your own X (programming projects with examples done in the past) LINK

Deep learning/Neural Networks

Neural Network From Scratch LINK HKN

Deep learning Basics 11 part series: LINK

Interesting Libraries

Community tools and libraries HKN

====================

Graphics and game programming

Graphics / Shaders

Grafica Obscura – Collected Computer Graphics Hacks (technical notes, pictures and essays) LINK

Shader School - An introduction to GLSL shaders that runs in your web browser HKN

Michael Abrash's Graphics Programming Black Book LINK

How to read Shader assembly HKN

Computer Graphics from Scratch: HKN LINK

A perceptual color space for image processing (turning color to grey gradient) LINK

Game engines

MicroStudio now supports microScript, Python, JavaScript and Lua (simple IDE like PICO-8) HKN

GameEngine from scratch LINK

RTS engine in C LINK

Quake3 engine copycat LINK LINK HKN

Graphics engines / renderers

Building a PS1 style retro 3D renderer LINK HKN

Small toy renderer in C LINK

Commanche voxel terrain gen in 20 lines LINK

2d graphic game library in Rust LINK

Raytracing

RayTracing in One Weekend LINK

From NAND to Raytracer HKN

Nvidia's RTGI source code: LINK  

Games

Small 2D shooter in C without any dependencies LINK HKN

Trackmania open source clone: LINK

Flight sim in C++ LINK

Multiplayer game that you write in assembly like language LINK

Procedural

Roguelike tutorials HKN

Simple Dungeon Map Generation (also notes to technical procedural generation talks) HKN LINK

Server/Client architecture

Client game-server architecture: LINK

Graphics libraries

Resources and tools for assets

Free sounds and music for games and videos HKN

Others

Programming visualization engine kinda LINK

Frink calc and lang for physics calcutations with units explained in detail HKN

Graphics Programming Weekly discussion: HKN HKN

FPS in Unity book LINK

GPU access via code in Linux LINK

Vectors: LINK  

====================

Algorithms

General

POSIX Threads Programming HKN LINK

Algorithmic complexity by examples LINK  

MIT Introduction to Algorithms LINK

Sorting algorithm (Einstein) in java LINK  

V language - memory management LINK  

Libdill: Structured Concurrency for  LINK HKN

Text Editing

The Craft of Text Editing LINK

====================

Operating Systems

Windows

Windows services: LINK LINK LINK

Debloaded  Windows 10 - Tiny10 - created with NTlite LINK

Nano98: Windows 98 that boots and runs under 5M (also a lot of tips for small Win) HKN

Optimizing windows startup: LINK

Big WSL Guide LINK  

Moving WSL installation: LINK  

WSL - custom distro tutorial (ArchLinux in example) based on docker image LINK 

Linux Apps ported to Windows with MinGW: LINK 

Microsoft Win32 full documentation LINK

OpenSSH in windows - create a server on laptop and connect from PC, use then bash console LINK   LINK  

Linux

Bash/Linux Cheatsheet LINK LINK

Linux Offline HowTo documentation repo: LINK

Memory read on Linux (top, htop, free) HKN LINK

Alpine Linux 3.15 (a lot useful posts): HKN

X Window System on a Floppy (tiny linux, tinylinux) HKN

XFCE Windows 95 theme LINK

Setup of Alpine via 2 USB (in the example for a Fileserver) LINK

Awesome description of GNU core utils LINK

Getting better with Linux (10 projects) LINK HKN

Linux's MAN via REST LINK

NixOS introduction and review: LINK

SSH cheatsheet LINK

Linux productivity Tools: HKN

Piping video from one linux to another linux via SSH (my case passing video from laptop to RPi connected to TV) LINK   LINK  LINK  LINK  

Visual guide to SSH tunneling HKN

Direct linux binaries: LINK  

Linux Networking 101 LINK  

Linux 101 from IBM?! LINK   LINK 

Running apps without WM and DE LINK

Dissecting a GPU bug in Linux LINK  

Yocto linux - custom linux for embedded hw LINK

New type of Docker packaging, more like VM (DX11) LINK

Terminals tools and programming

Easy way for creating SSH based command line applications (whole repo of tools) LINK

ASCII escape codes and how to use them to display stuff in terminal without ncurses LINK

Recording terminal session: LINK

Convert images to Terminal color output: LINK HKN

AWK tutorial and exercises LINK

AWK overview LINK

Book and discussion about AWK: HKN

The Linux shell commands handbook LINK

Bash utils LINK

Linux terminal tools guide (pdf) HKN LINK

fzf is a general-purpose command-line fuzzy finder   LINK

TLP linux power management LINK

Easy tunneling LINK

Logging to WM via SSH (X server) LINK  

turn logs output into tree structure LINK

W3M, Oddilo - light-weight Linux browser LINK

best terminal applications: LINK  

Other tools/programs

USB Formatting utilities HKN

Reducing container size LINK

===================

EMBEDDED

Using kindle as RaspberryPi display LINK

Installing Linux on Xperia Z3 Compact LINK  

FreeRTOS - Real-time operating system for microcontrollers LINK  

Highly efficient Box86 x86 emulator for non x86 platforms like ARM LINK

RaspberryPi

Backup and restore USB with linuxvia Win32 Disc Imager in windows LINK  

installation setup via DD LINK 

====================

Others:

Zig

C

Others

Useful tools/programs

File sharing LINK LINK

Small, passive open source Anti-Vir app LINK

Small hints/links

C/C++ quotes! LINK  

News site that aggregates data from different news sites and display them as pure html LINK

youtube-dl alternative LINK

Good and cheap dedicated hosting: LINK

Oasis Linux - Statically linked (nice browser) HKN

Search Engine with a public API (Gigablast) LINK HKN

Google Searcher for Papers and Publications LINK

Basic English LINK

JSON design business card LINK

Achieving 11M IOPS and 66 GB/S IO on a Single ThreadRipper Workstation HKN LINK (10.39M Storage I/O Per Second From One Thread)

Learn x in y minutes LINK

Best hacker news posts HKN

VPN + Local network guide LINK  

Great tool for creating gifs from any view LINK LINK

Site with a lot of APIs LINK

RDP specification: LINK  

Custom CPU design: LINK  

Azure free account - full VMs for free for 750h LINK   

Mermaid - Graph creator via syntax LINK

Thread about Firewalls HKN

Github search  LINK LINK

Random walkthrough GIT LINK

Real Hacking Games: LINK 

Books

Effective C book - BUY! LINK

Book on practical electronics design HKN

Ebooks of Compilers and C LINK

Book 3D Math Primer for Graphics and Game Development. LINK

Books about creating operating systems (with homework and examples): LINK

Operating system from scratch: LINK

Linux Device Driver books LINK 

The Architecture of Open Source Applications LINK

Programming from the ground up - book (assembly and C) HKN LINK (for Rust) HKN LINK

Learning tools / CS Cources

Teach Yourself Computer Science HKN LINK LINK

IT related book notes: LINK  

Math and Science docs compilation github LINK HKN

MIT 6.172: Performance Engineering of Software Systems  HKN

Computer Science textbooks that are freely available online HKN LINK

Ossu/computer-science: Path to a free self-taught education in Computer Science LINK

Algorithm Design and Analysis Course: LINK

Math learning resources: HKN

Geometric Algebra: LINK HKN

Mathematics Cheat Sheet HKN LINK

Probability, Mathematical Statistics, Stochastic Processes LINK

Mathematical exercises: LINK   below one with bio/chemistry twist LINK  

AI course Finish university: LINK 

All physics 101 materials: LINK

Teaching yourself Demoscene in 14 days HKN

What happens when: LINK

Busy Beaver problem HKN

Animating mechanical engines: LINK HKN

A search engine that favors text-heavy sites and punishes modern web design (good for academic entries) HKN

BLOGS

blog: LINK LINK   LINK

Nice blog with technical examples: LINK

Optimization blog LINK  

Atomics in AArch64 in a blog LINK HKN

TCP optimization (blog): LINK

Anatomy of a program in memory (screenshots messed up) LINK

Conferences

FOSDEM - Open Source Conference LINK

Conference about cybersecurity LINK  

Others

New physics model: LINK

About

Links to varies resources regarding mostly Programming (System Programming, Kernel, OS, Algorithms, Rendering etc)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published