views:

189

answers:

7

I'm an undergraduate on CS for one year,have learned some programming languages, C, python, etc. I know a bit of TCP/IP protocol stack, and have been using linux for half a year.

What disappoints me is that after these studies,I still have little idea about how the computer system really works? I think that OS and computer architecture is a must, and I just read the book computer systems:a programmer's perspective. This book is so hard to follow that I only read the first 6 chapters (without the CH4,processor),and got stuck when reading chapters on linkers.

Is there any good book that can guide me through learning the system better by myself. I hope the book to be both comprehensive and comprehensible, thank you all in advance.

+1  A: 

I found an early edition of Modern Operating Systems by Andrew S Tanenbaum useful for that, but I don't know if the recent edition holds the standard.

Brian Rasmussen
+1  A: 

In addition to Tenenbaum's Modern Operating Systems, I also recommend his Computer Networks book.

Roee Adler
+2  A: 

Tenenbaum's Modern Operating Systems is good but for basic understanding Operating System Concepts by Avi Silberschatz, Peter Baer Galvin, Greg Gagne is really good.

aJ
+1  A: 

I would recommend the following books for getting up to speed with Network Programming , TCP/IP and understanding how it works through examples ( in the following order )

  1. Pocket Guide to TCP/IP Sockets (C Version)
  2. Effective TCP/IP Programming: 44 Tips to Improve Your Network Programs
  3. Unix Network Programming, Volume 1: The Sockets Networking API (3rd Edition)

Also, Robert Love's book on the linux kernel is decent: Linux Kernel Development

You'll get an overview of how various parts of the kernel are implemented.

Robert S. Barnes
+1  A: 

Start with Structured Computer Organisation by Tanenbaum. It brings you through the computer stack, from transistor all through to application - in very simple and easy to understand steps. Then, go read the other stuff by him on networking and operating systems. That should give you a pretty complete understanding.

sybreon
transistors..does that mean I should have some electronic engineering knowledge background?
yfel
Not necessary as it is a very brief/high-level view of transistors. It doesn't got into the nitty-gritty equations and models.
sybreon
one more question,can I just skip reading Structured Computer Organization and reading his OS book directly?thanks
yfel
The two books cover different topics. I would recommend the SCO book for getting a good overview of how the hardware and software interacts. It will help when you read the OS book. Also, the SCO book is not too difficult to read. The writing is actually quite enjoyable.
sybreon
thanks!!!!thanks!!!!(char-length limit..)
yfel
+1  A: 

A more specific free one :

The Linux device drivers 3

fa.
A: 
Oskar Duveborn