Join 3,418 readers in helping fund MetaFilter (Hide)

Detailed Computer Books
December 31, 2008 9:44 AM   Subscribe

Does anyone know of some good Computer books that really talk about the structure of computers and how they work in depth? Like file systems, boot process, assembly, hardware details like how the processor works, BIOS, and all that good stuff
posted by CZMR to Computers & Internet (18 answers total) 39 users marked this as a favorite
Ah, I forgot to add Networking books, that's an interesting subject that I'd also like to learn more about
posted by CZMR at 9:47 AM on December 31, 2008

Code: The Hidden Language of Computer Hardware and Software is a really awesome book about this subject. It starts with explanations of basic codes, like morse, then mechanical switches, then lightbulbs, then lots of lightbulbs, etc., right on up to microprocessors. It's beautiful.
posted by odinsdream at 9:54 AM on December 31, 2008 [1 favorite]

these two books opened up all the black boxes for me. hennessey in particular.
posted by sergeant sandwich at 9:55 AM on December 31, 2008

I don't know any specific books, but How Stuff Works is pretty good if you just want to reference any random question you have about how a specific part works in depth. Wikipedia is pretty good for filling in the gaps.

A lot of those things can be learned by doing. Try dual booting a Linux distribution, and you'll likely find yourself becoming more familiar with a good number of those things.

This probably isn't the best answer, though, and I understand the appeal of a paper book. However, keep in mind technology changes fast, and at any given moment, the industry is moving over to new standards/architectures, so the long cycles needed to write, publish, sell, and revise books tend to keep them out of sync with the industry by a significant amount.
posted by mccarty.tim at 9:58 AM on December 31, 2008

Here is a link to a free pdf call How Computers Work
posted by tman99 at 10:02 AM on December 31, 2008

The classic undergraduate textbook for this is Structured Computer Organization by Tanenbaum. Each chapter builds up computers systems a layer at a time. Digital logic, integrated circuits, motherboards, operating systems, networks, etc.

A new copy is textbook-gouging priced at $105, but you can easily find copies in libraries, used bookstores, and (depending on your ethics) online. Older editions will mostly still be useful.
posted by Nelson at 10:17 AM on December 31, 2008

Other than Operating System Concepts, which sergeant sandwich linked to, and not really including textbooks:

Inside the Machine for a broad introduction to microprocessors.

The Design and Implementation of the 4.4 BSD Operating System and Understanding the Linux Kernel for kernel information.

I found Practical File System Design with the Be File System to be interesting when it first came out, although I can't recall how relevent it would be today. Still worth getting from the library, though.

TCP/IP Illustrated for networking. You can pick up volume III of the series for information on higher level protocols like HTTP.
posted by cmonkey at 10:25 AM on December 31, 2008

Oh, and The Art of Computer Virus Research and Defense is good if you want to understand viruses and worms.
posted by cmonkey at 10:33 AM on December 31, 2008

FYI, you're probably going to find File Systems stuff in Operating Systems Books and assembly/processor stuff in a Computer Organization books.

You might get it all detailed in one big book, but do you really want to lug that thing around? :)

At my college, for my intro to OS class, we read Modern Operating Systems by Andrew S. Tanenbaum, which I thought was a great and easy read.

We had another book for Computer Organization and Assembly, but it was terrible, so I don't want to waste your time by recommending it. :(
posted by nikkorizz at 10:54 AM on December 31, 2008 [1 favorite]

It is old at this point, but not much has changed since it was published except the price, so I'll recommend Inside Microsoft Windows 2000 as a good in-depth book about operating systems. If I recall correctly, it also discusses some of the key areas where Windows differs from Linux.
posted by McGuillicuddy at 10:57 AM on December 31, 2008

Inside Windows 2000 covers how NT works internally. It's a nice contrast to the UNIX stuff, and well written. D&I of BSD is also quite good. Computer Organization & Design is a nice software angle on hardware - i.e., what do you need to know about hardware when you're writing code? You can also order the Intel developer's manuals for free (free shipping, too!), which are always a good geek thing to have around (they were much more impressive when the instruction set reference was combined into a 2" thick volume). I'm afraid I don't know any lower level than that.
posted by devilsbrigade at 10:57 AM on December 31, 2008

80X86 IBM PC and Compatible Computers: Assembly Language, Design, and Interfacing tells you exactly how normal x86 PCs work from the hardware to the assembly programming level. It covers pretty much everything in your question except the file system stuff, which is part of the operating system and would be covered in an OS book. A couple caveats about the book: it will not hold your hand at all, and it doesn't cover the latest x86-64 processors.
posted by zsazsa at 11:13 AM on December 31, 2008

Another vote for "Inside the Machine" - I'm already familiar with how stuff works but I really enjoyed it (and "Code" as well).

I'm currently learning a lot by reading books from the late 70s and early 80s about assembly language and OSes on 8-bit processors (specifically CP/M on a Z80). I was able to pick up a stack of good titles for less than $50 by buying them used through Amazon.

Another good way to learn about how computers work is to build your own. I'm not talking about putting a motherboard into a case, but about getting out a soldering iron. In ~3 months I went from "never having touched a soldering iron before" to building a simple Z80-based single-board system, and shortly thereafter an Apple I clone. There's nothing more exciting than applying power and being able to program in BASIC on a computer that you assembled yourself.

My next project (it languished in a box on a shelf for over a year) is putting together a P112 single-board Z80 computer. It's the size of a 3.5" floppy drive and runs CP/M 2.2.

Another good book that covers the "basic electronics" parts of things is Forrest Mims' Getting Started in Electronics.
posted by mrbill at 11:39 AM on December 31, 2008 [2 favorites]

Seconding odinsdream's reference of Code. You don't say how much you do know about the innards of computers, and if you're not a programmer, engineer, or mathematician, the compsci textbooks will probably confuse more than englighten. Code, OTOH, assumes nothing and walks you right through the whole stack, from electricity up to windowed apps, at an amazing level of detail. I found it worthwhile, and I was already taking compsci classes when I read it.
posted by fatbird at 4:22 PM on December 31, 2008

A lot of your question brings to mind a course I took at MIT called 6.004. It starts you at the theoretical idea of a "bit" level and moves you up from there through transistors, gates, circuits all the way up to a basic operating system. We had a lab where you had to (virtually) build your own processor out of individual transistors. We also learned how machine code runs on that, some assembly, and worked on parts of an extremely simple OS in assembly.

Looking through the web site now I see that a lot of lecture slides are freely available, and a really great PDF that explains it, too. There were also supplemental materials we used that aren't on there, so I don't know exactly how useful it all is, but it's worth checking out.
posted by losvedir at 5:20 PM on December 31, 2008 [1 favorite]

The MS SQL Server Unleashed book does an excellent job explaining how SQL Server stores data on disk, and how it deals with it in memory. Of course, this only really applies if you want to learn how databases work in addition to operating systems.
posted by krisak at 9:52 PM on December 31, 2008

In depth, you say?

Computer Architecture: A Quantitative Approach, 4th Edition

From Amazon:
"If Neil Armstrong offers to give you a tour of the lunar module, or Tiger Woods asks you to go play golf with him, you should do it. When Hennessy and Patterson offer to lead you on a tour of where computer architecture is going, they call it Computer Architecture: A Quantitative Approach, 4th Edition. You need one. Tours leave on the hour."

- Robert Colwell, Intel lead designer
posted by tracert at 3:17 AM on January 1, 2009

The Architecture of Computer Hardware, Systems Software, & Networking: An Information Technology Approach by Irv Englander is, frankly, dull dull dull, but very thorough.

Windows® Internals: Including Windows Server 2008 and Windows Vista, Fifth Edition
by Mark Russinovich (Author), David A. Solomon (Author), and Alex Ionescu (Contributor) is a very thorough look at, well, Windows internals.
posted by Multicellular Exothermic at 8:31 AM on December 28, 2009

« Older My blinker on my 2000 Dodge Ne...   |  Give me reasons NOT to jailbre... Newer »
This thread is closed to new comments.