Skip to content

Computer Fundamentals

November 2, 2023
April 14, 2023

floating-point-number
unicode

Computer Science - YouTube
How do computers read code? - YouTube compiling source code to machine code
Back to Basicss - YouTube

Programming Languages - YouTube
Hardware Basics - YouTube
Operating System Basics - YouTube
Basics of OS | Chapter-1 | Operating System - YouTube

Imperative vs Declarative Scenarios in User Stories • Ben Mabey
Threads vs. Processes: A Look At How They Work Within Your Program

The Bits And Bytes Of Binary - YouTube
How a Computer Works - from silicon to apps - YouTube

Computerphile
Multi Programming - Computerphile - YouTube
OS Context Switching - Computerphile - YouTube
Multithreading Code - Computerphile - YouTube
Multiple Processor Systems - Computerphile - YouTube
GUI Programming Introduction - Computerphile - YouTube
GUI: Under the Hood - Computerphile - YouTube

An Analysis of Hash Map Implementations in Popular Languages
Why Linked Lists vs Arrays isn’t a real choice - YouTube
Hash Tables, Associative Arrays, and Dictionaries (Data Structures and Optimization) - YouTube

Computer History

Toppr: Better learning for better results
History of Computers: Parts, Networking, Operating Systems, FAQs

【亦】唠唠计算机与 AI 的童年:大器晚成!六一儿童节特别篇 - YouTube history of computer
Intel predicted the future - YouTube Intel's education material from 1996

GeekLogic / 极客逻辑 - YouTube
XMF-I Restoration: A Chinese Apple II Clone 35 Years Ago / 极限修复!35 年前清华大学研制点错科技树的中文电脑 - YouTube

Dave's Garage - YouTube Microsoft Windows history

Linux Terminal and Console Explained For Beginners - LinuxBabe
What is the Difference Between the Shell, Terminal, and Console in Linux | TatOG Explains - YouTube

Turing Machines

learn-to-code#Halting problem

Computerphile
Alan Turing and Enigma - YouTube also on decidability
Turing Machines Collection - Computerphile - YouTube

Turing Machine Alternative (Counter Machines) - Computerphile - YouTube

Turing Machines - How Computer Science Was Created By Accident - YouTube
Turing machines explained visually - YouTube
Making a computer Turing complete - YouTube

How program runs

reverse-engineering#ELF
reverse-engineering#PE format

CppCon 2018: Matt Godbolt “The Bits Between the Bits: How We Get to main()” - YouTube ELF

Chris's Wiki :: blog/linux/32BitProgramOn64BitSystem

Recursion

everyone needs to stop using recursion (seriously) - YouTube recursion grows the stack

What on Earth is Recursion? - Computerphile - YouTube
EXTRA BITS: Recursion and the Stack - Computerphile - YouTube
Programming Loops vs Recursion - Computerphile - YouTube
EXTRA BITS: Loops, Ackermann & Recursion - Computerphile - YouTube
Tail Recursion Explained - Computerphile - YouTube
Recursion 'Super Power' (in Python) - Computerphile - YouTube

Race Condition

Safety and Speed Issues with Threads. (pthreads, mutex, locks) - YouTube
Making variables atomic in C - YouTube

Concurrency and Parallelism

go-lang#Concurrency
python-notes#Concurrency
rust-lang#Async/Future

Concurrency:

Parallelism:

Embarrassingly parallel - Wikiwand

Concurrency is not parallelism - The Go Blog
The Way of the Gopher. Making the Switch from Node.js to… | by Alexandra Bueno | Digg Data | Medium

You Keep Using That Word: Asynchronous And Interprocess Comms - Sam Newman - NDC Oslo 2023 - YouTube

Asynchronous vs Multithreading and Multiprocessing Programming (The Main Difference) - YouTube
What Color is Your Function? – journal.stuffwithstuff.com the chasm between sync and async code
What Color Is Your Function | Prime Reacts - YouTube

Zig's I/O and Concurrency Story - King Protty - Software You Can Love 2022 - YouTube
Linux's epoll, BSD's kqueue, none of them worked for file IO
Windows IOCP, proactive completion based IO, no extra syscall for polling state, no batch submission
non of them worked great for file IO, use thread pool
Linux io-uring, proactive completion based IO, no extra syscall for polling state, batch submission, kernel space thread pool
porting io-uring to zig in user space
per thread ring buffer use by many

io_uring: So Fast. It's Scary. - YouTube

Multitasking vs Multithreading vs Multiprocessing - YouTube
Fork and Pthreads - A Guide To Get You Started with Multiprocessing - YouTube
Is it concurrent or parallel? - YouTube
Concurrency vs Parallelism - YouTube

Seven Concurrency Models in Seven Weeks: When Threads Unravel by Paul Butcher | The Pragmatic Bookshelf
Thinking Concurrently: How Modern Network Applications Handle Multiple Connections | Linux Journal
还在疑惑并发和并行? - laike9m's blog
async-await: Cooperative vs Preemptive scheduling

Parallel vs Concurrent in Node.js
Concurrent JavaScript: It can work! | WebKit
Concurrency model and Event Loop - JavaScript | MDN

Concurrency in modern programming languages: Introduction | Technorage
Concurrency in modern programming languages: Rust vs Go vs Java vs Node.js vs Deno | Technorage

The Little Book of Semaphores – Green Tea Press

Memory Hierarchy/Memory Management

How Computer Memory Works - YouTube
What's Virtual Memory? - Computerphile - YouTube

How does Computer Memory Work? 💻🛠 - YouTube
Building the Bits and Qubits - YouTube

Memory, Cache Locality, and why Arrays are Fast (Data Structures and Optimization) - YouTube
The Origins of Process Memory | Exploring the Use of Various Memory Allocators in Linux C - YouTube

What's a Memory Allocator Anyway? - Benjamin Feng - YouTube

🚀 Demystifying memory management in modern programming languages | Technorage
🚀 Visualizing memory management in Golang | Technorage
🚀 Visualizing memory management in V8 Engine (JavaScript, NodeJS, Deno, WebAssembly) | Technorage

Garbage Collection

c-sharp#Garbage Collection
go-lang#Garbage Collection
nodejs-notes#Garbage Collection

Garbage Collection (Mark & Sweep) - Computerphile - YouTube

Endianness

Endianness - Wikiwand
Number format - Microsoft MakeCode

'0xA0 0xB0' in memory could be:
signed LE: -20320
unsigned LE: 45216
signed BE: -24400
unsigned BE: 41136

f =  open('test.bin','wb')
f.write(b'\xA0\xB0')
f.close()