Original group

Deep understanding of computer system

Briefly introduced, this book includes two parts of knowledge: composition principle and operating system. After the completion of the second and third chapters, the reverse is the introduction. In China, there are few books about compilation and C language comparative teaching, which is very practical. Because assembly is rarely used to write programs now, it is mainly used for decompilation; C language is mainly used for embedded development, and developers often need to check the corresponding assembly code for performance reasons. However, this knowledge is only an introduction. If you want to really step into the door of reverse, you still need to look at the books out of the snow.

The fourth and fifth chapters are about instruction set and architecture. They are very simple and easy to understand. They don’t need the basis of data and electricity to understand. One of the disadvantages is that it uses y86 as a teaching tool. Although y86 is much simpler than x86, it still belongs to CISC. There are 12 basic instruction types, which is a headache. In addition, this part of lab involves HDL, but the related syntax needs to be looked at by oneself, which is also a little insufficient.

There is nothing to be fastidious about the part of the operating system. In order to make the process, concurrency, IO and network less abstract, POSIX API is specially used for demonstration, which is quite simple. Of course, an introductory book can’t be so detailed. If you need it, you need to see APUE.

In addition, this book seems to have missed two very important topics. The original part of the group is less than the bus, and the operating system part is less than the file system, so we should read other books to supplement it.

Computer composition and design

A book by President Stanford. If you can’t stand the fuss of y86 in CSAPP, take a look at this one. There is a simple MIPS for teaching, which only needs to remember and implement 5 kinds of instructions, simple.


Deep understanding of computer system

Modern operating system

A standard OS textbook mainly involves process, concurrency and lock, IO, virtual storage and file system.

30 day self-made operating system

Different from the previous one, this book does not involve some basic concepts of operating system design, but involves some knowledge of boot and kernel. It is very valuable to teach you to implement an operating system from scratch.


computer network

Computer networks: top-down approach

The former is bottom-up, the latter is top-down. They can complement each other. In addition, don’t read Xie Xiren’s book any more. It’s all collected by his postgraduates chapter by chapter, which is of little value.

TCP / IP detailed volume 1: Protocol

Detailed volume 2 of TCP / IP: Implementation

TCP / IP detailed volume 3: TCP transaction protocol, HTTP, NNTP and UNIX domain protocol

As the authoritative guide of TCP / IP, these three books are quite obscure.

HTTP authority Guide

As a developer, we just need to focus on the transport layer and the application layer. Understanding HTTP is extremely beneficial for a web developer. At least, it can sort out the context of the request and avoid writing out the jump to jump implementation.

Graphic HTTP

Graphic TCP/IP

If you can’t see the big parts above, look at these two books below. Sometimes the illustrations are really effective.