Fabien Sanglard
Fabien Sanglard deverves his own section here. He published 3 amazing, beautiful books: Game Engine Black Book: Wolfenstein 3D, Game Engine Black Book: DOOM and The Book of CP-System.
I didn't read these books — I devoured them.
The first two cover the history of idSoftware, including some fun facts about John Carmack, John Romero and other members of the company; and then dig deep into the software of Wolfestein 3D and DOOM, the two games that completely revolutionized 3D graphics in PCs and the First Person Shooter genre.
Book of CP-System covers the history, software and hardware of Capcom's famous arcade machines and their games.
You can download them for free as PDFs or buy them from Amazon, TheBookPatch and PlayStore.
He also accepts donations.
- Get Game Engine Black Book: Wolfenstein 3D,2nd Edition
- Get Game Engine Black Book: DOOM
- Get The Book of CP-System
If you like these, there's a book that is, in a way, closely related: Michael Abrash' Graphics Programming Black Book — for free at GitHub.
Verbatim from Sanglard's Wolfestein 3D book:
In the early 90s, Michael Abrash’s writings were one of the rare sources of high quality information when it came to computer graphics and assembly programming.
He published two highly regarded books ("Zen of Assembly Language" in 1990 and "Zen of Code Optimization" in 1994) but it is through his column "Ramblings in Realtime" published monthly in Dr. Dobb’s Journal that he achieved notoriety.
In 1997 most of Michael Abrash’s work plus new articles about the Quake engine were compiled into the Graphics Programming Black Book. The title and dimension of this book are an homage to Mr Abrash’s masterpiece.
Many game programmers of that era, including John Carmack, learned a few techniques from Michael Abrash.
Most of these tricks have little to no value in a world of vertex and fragment shaders, but their historical significance cannot be overstated.
Linux, Unix and GNU
Love it or hate it (but honestly, who could not love it!), Linux and GNU came to completely change the world.
Rebel Code — The Inside Story of Linux and the Open Source Revolution
This book is amazing. It's purely prose. Nothing technical here. No code. Just history.
It goes over the entire history of Linux, Free Software, Open Source, from nothing to being the most used OS, running on almost every device on earth, and exploding into a billion-dollar industry.
It's available at Amazon.
A Quarter Century of Unix
Another history book, this time focused on Unix exclusively. 100% recommend it.
It's available for free on Unix Heritage Wiki.
The Linux Bible by Christopher Negus
Chris Negus is a principal technical writer for Red Hat, Inc. In more than a decade with Red Hat, Chris has taught hundreds of IT professionals to become Red Hat Certified Engineers (RHCEs), and he has written scores of documents on everything from Linux to virtualization to cloud computing and containerization.
This book starts by introducing Linux basics to newcomers, moves onto becoming a Linux power user and then a sys admin, and finally digs into cloud development (such a AWS and OpenStack), virtual machines, containers, Ansible and Kubernetes.
The Linux Programming Interface by Michael Kerrisk
This book is widely regarded as one of the best in the Linux ecosystem, and it was recommended, among others, by the famous Lennart Poettering in a FOSDEM interview in 2011, for his then-upcoming talk, systemd, beyond init.
So, get yourself a copy of The Linux Programming Interface, ignore everything it says about POSIX compatibility and hack away your amazing Linux software.
Poettering is the author of Avahi, PulseAudio and systemd.
Although this book is a bit old, having been published in 2010, back when the most recent version of the Linux kernel was 2.6, it still stands relevant.
Because the developers of both the Linux kernel and glibc are committed to maintaining ABI compatibility, virtually all of the details provided in TLPI should remain accurate in the future.
The author maintains a list of changes introduced to the kernel and glibc since the book was published at Linux and glibc API changes.
Linux Device Drivers
The 3rd edition of this book is the de-facto standard reference book for building kernel modules. It's available under the terms of the Creative Commons Attribution-ShareAlike 2.0 license.
You can download it for free from LWN.net.
LDD3 is current as of the 2.6.10 kernel, which is definitely dated.
The Linux Kernel Module Programming Guide
Another freely available book on kernel development. This one is modern, and might make a good replacement for LDD3.
Cryptography
Applied Cryptography by Bruce Schneier and Cryptography Engineering by Niels Ferguson, Bruce Schneier and Tadayoshi Kohno are definitely a bit old (published in 1993 and 2010!), but great resources nonetheless.
The Joy of Cryptography by Mike Rosulek, available for free, and David Wong's Real-World Cryptography, are two modern and friendly books. Both published in 2021.
Architecture
You can't go wrong with Clean Code by Robert C. Martin.
Blockchains / Cryptocurrencies
The "Mastering" series by Andreas M. Antonopoulos is probably the best resource in this field.
You can get the these for free at GitHub:
Mastering Bitcoin is pretty technical, focusing on low-level aspects. If you'd only read one of these three, go for this one.
Mastering Ethereum focuses more on developing smart contracts and the Solidity programming language rather than the low level details.
Mastering Lightning seems to be somewhere in the middle in complexity.
Etc
Code: The Hidden Language of Computer Hardware and Software
This absolute beauty of a book walks you through understanding and building a CPU, all the way from relays, vacuum tubes and transistors, and eventually implementing [a model of] the legendary Intel 8080.
It requires almost no previous knowledge and is extremely entertaining. I can't recommend it enough.
On this topic I also highly recommend Ben Eater's Building an 8-bit breadboard computer!.