Feilong’s Programmer Booklist-Origin, OS, Network


Original group

Deep Understanding of Computer Systems

Briefly, this book includes two parts: the principle of composition and the knowledge of operating system. After the second and third chapters are finished, the reverse is the introduction. Few textbooks in China have comparative teaching of assembly and C language. Such teaching method is very practical. Because assembly is seldom used to write programs nowadays, it is mainly used for decompilation; while C language is mainly used for embedded development, developers often need to look at the corresponding assembly code for performance reasons. However, this knowledge is only an introduction, if you want to really step into the reverse door, you still need to look at the snow out of those books.

The fourth and fifth chapters after that deal with instruction set and architecture. They are very simple and easy to understand. They can be understood without the need for the basis of electricity counting. One of the drawbacks 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 are very painful. In addition, this part of lab involves HDL, but the relevant grammar needs to be seen by oneself, which is also slightly inadequate.

There is nothing to be criticized about the operating system. In order to be less abstract, process, concurrency, IO and network use POSIX API specifically to demonstrate, which is quite superficial. Of course, an introductory book can’t be so detailed. If you need it, you need to read “apue”.

In addition, this book seems to have missed two important topics, the original part is less bus, the operating system part is less file system, so it should be read other books to make up for it.

Computer Composition and Design

A book by President Stanford. If you can’t stand the tediousness of y86 in csapp, take a look at this one. There’s a simple MIPS for teaching. Just remember and implement five instructions. Simple.


Deep Understanding of Computer Systems

Modern Operating System

A regular OS textbook mainly involves process, concurrency and lock, IO, virtual memory and file system.

30-day Homemade Operating System

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


computer network

Computer Network: Top-down Approach

The former is bottom-up and the latter is top-down. They can complement each other. In addition, don’t read Xie Xiren’s book, which he let his graduate students compile chapter by chapter, without much value.

TCP/IP Detailed Volume 1: Protocol

TCP/IP Detailed Volume 2: Implementation

TCP/IP Details Volume 3: TCP Transaction Protocol, HTTP, NNTP and UNIX Domain Protocol

As an authoritative guide to TCP/IP, these three books are still obscure and difficult to understand.

HTTP Authoritative 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 you can sort out the context of the request and avoid writing about the jumping realization.

Graphic HTTP

Graphic TCP/IP

If you can’t read most of the above, look at the following two books, illustrations sometimes work wonderfully.