In this book we will create a programming language together.
We'll start with 0 lines of code and end up with a fully working interpreter for the Monkey* programming language.
Step by step. From tokens to output. All code shown and included. Fully tested.
David MacKay has put the textbook he wrote online for everyone to download in a variety of formats. If you find it useful, consider buying a copy.
The full text of _The Handbook of Applied Cryptography_, one of the best textbooks available in the field. The original authors have gotten permission from the publisher to put the text online as sets of PostScript and .pdf files for anyone to download and share.
Homepage for a pair of textbooks on quantum mechanics that heavily use multimedia presentations to explain the complex concepts (well, all of them).
A Creative Commons handbook that teaches the legal, social, and technical aspects of open data. Teaches not only what you can do with an open data set, but how to go about getting datasets opened to analysis. If you're looking for a hands-on nitty-gritty book about mining open data, however, this isn't it.
Ross Anderson put the entire second edition of _Security Engineering_ on his website for free download. It's been very highly rated and recommended. Each chapter comes in its own PDF so be prepared to use a downloader to grab it all.
A free and libre textbook of OS design and implementation on the x86 architecture. The full book can be read here or downloaded as a PDF from this site, or you can check out the book from its Github repository (https://github.com/littleosbook/littleosbook)
Marvin Minsky's classic text, free to read on the web.
A free to download ebook that talks about the design and implementation of a rumpkernel.
The classic text _Structure and Interpretation of Computer Programs_ from MIT has been put online under a Creative Commons License.
An online book that describes how to code a texteditor from scratch as an exercise. programming howto textbook
github page for a FOSS textbook that teaches you how to write an OS from scratch. Reading hardware datasheets and official documentation, system organization, very little sample code to get you solving problems on your own. programming How to debug on the bare metal using gdb and QEMU. Requires knowledge of C and ideally the Linux environment. Has a reference to a sample OS which illustrates certain concepts.
An online book that talks about the linux kernel, how it boots up, and the theory and practice behind the subsystems. OS operatingsystem architecture textbook