Customer Reviews


22 Reviews
5 star:
 (17)
4 star:
 (3)
3 star:    (0)
2 star:
 (1)
1 star:
 (1)
 
 
 
 
 
Average Customer Review
Share your thoughts with other customers
Create your own review
 
 
Only search this product's reviews

The most helpful favorable review
The most helpful critical review


42 of 44 people found the following review helpful:
5.0 out of 5 stars Everything you need to know as a programmer
What a splendid book! I wish I had gone to CMU and take this course. This book is written by CMU professors after teaching Computer Systems course for few years. This book covers broad spectrum of topics from Operating Systems, Compilers, Computer Architecture, Assembly Level Programming, Kernel internals, Linkers, etc from a programmer's perspective (as the title aptly...
Published on March 24, 2005 by Subbaiah N. Venkata

versus
0 of 4 people found the following review helpful:
2.0 out of 5 stars Not for beginners
My department makes us read this book alongside an intro C Programming guide and it is PAINFUL.

Avoid, unless you already know what you are dealing with.
Published 9 months ago by NICK


‹ Previous | 1 2 3 | Next ›
Most Helpful First | Newest First

42 of 44 people found the following review helpful:
5.0 out of 5 stars Everything you need to know as a programmer, March 24, 2005
This review is from: Computer Systems: A Programmer's Perspective (Hardcover)
What a splendid book! I wish I had gone to CMU and take this course. This book is written by CMU professors after teaching Computer Systems course for few years. This book covers broad spectrum of topics from Operating Systems, Compilers, Computer Architecture, Assembly Level Programming, Kernel internals, Linkers, etc from a programmer's perspective (as the title aptly says).

I am searching for words to describe the usefulness of this book. In my experience, I have had hard time learning some of the topics where Operating systems, Processor and Compilers intersect. For example, Linkers and Loaders, program disassembly using reverse-engineering, virtual memory in Kernel etc. After all the hard work, I found the right book which grinds all the famous books in different areas and gives the right juice for the real programmers to taste and digest.

Those famous books are:
[1] Computer Organization and Design Second Edition : The Hardware/Software Interface by David A. Patterson, John L. Hennessy
[2] UNIX Internals: The New Frontiers by Uresh Vahalia
[3] Linux Kernel Development by Robert Love
[4] Linkers and Loaders by John R. Levine
[5] GNU Binutils (GAS, objdump, ar, nm etc) Documentation

Excellent job. I really appreciate the work and content of this book.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


12 of 14 people found the following review helpful:
4.0 out of 5 stars Nice Book!, May 25, 2005
By 
This review is from: Computer Systems: A Programmer's Perspective (Hardcover)
I just completed a college course using this textbook... the course was tough, but the book was very good and useful. This is one textbook I won't be selling any time soon!

The practice problems provided in the book were usually very good, and the programming problems distributed with it were fun and educational, including topics like Buffer Overflows, Memory Optimizations, and Debugging with GDB, among others.

There are *some* problems with this book, but it doesn't suffer from the devastating flaws that plague most computer science textbooks. Some sections lack thorough explanations and examples, and the writting is a bit unclear at times. Some solutions to the practice problems are vague and don't really provide much insight on how to solve the problems. Luckily, these flaws only creep up in a few places.

Compared to most technical textbooks, however, this one really shines. It's not quite perfect, so I think 4 stars is appropriate.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5 of 5 people found the following review helpful:
4.0 out of 5 stars Needs a good instructor to go along with it, May 8, 2006
This review is from: Computer Systems: A Programmer's Perspective (Hardcover)
An excellent reference, but it is an embarassment of riches, and as such it can't completely cover every area exhaustively. This would probably be extremely frustrating for a casual reader to absorb. I used this as a text book for a class with an extremely good instructor who backed up the material in the book very well. As such, the class and the book were a joy.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4 of 4 people found the following review helpful:
5.0 out of 5 stars Densely packed and valuable, March 21, 2010
This review is from: Computer Systems: A Programmer's Perspective (Hardcover)
This book is a very unusual one because it explains computer architecture from the standpoint of the C/C++ programmer. That is, its object is to allow the programmer to understand how the architecture of the computer on which he/she programs effects the performance and execution of these programs. Things such as virtual memory, parallelization, optimization, and even logical and mathematical operations are effected by the architecture of the computer itself. For example - big endian versus little endian machines. You'd believe you wouldn't have to think about how your computer is organized at this level - that is one of the reasons you program in a high level language anyways, right? Wrong. If you have data stored in big endian format that is mathematically operated upon in a little endian machine, or vice versa, you will wind up with something quite different from what you intended. That's the kind of information this book gets into.

Some have labeled this book as "hard". It really is not hard as much as it is densely packed with knowledge. You need to take each concept within each chapter and think about it before you go on to the next. If you do this you'll not only get much out of it during your initial read, you'll have a valuable reference for some time to come.

To get the most of this book you should already be a capable C/C++ programmer and you should also know the building blocks of a computer. The book goes over these things very quickly but it really is not enough if you start out knowing nothing about these subjects. Highly recommended.

The following is the proposed table of contents for the second edition:
1 A Tour of Computer Systems 1

I Program Structure and Execution 25
2 Representing and Manipulating Information 29
3 Machine-Level Representation of Programs 145
4 Processor Architecture 317
5 Optimizing Program Performance 449
6 The Memory Hierarchy 531

II Running Programs on a System 619
7 Linking 623
8 Exceptional Control Flow 667
9 Virtual Memory 741

III Interaction and Communication Between Programs 819
10 System-Level I/O 823
11 Network Programming 847
12 Concurrent Programming 893

A Error Handling 957
A.1 Error Handling in Unix
Systems 957
A.2 Error-Handling
Wrappers 959
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4 of 4 people found the following review helpful:
5.0 out of 5 stars Great book, February 14, 2010
Amazon Verified Purchase(What's this?)
This review is from: Computer Systems: A Programmer's Perspective (Hardcover)
This book teaches you everything you need to know about computer systems from a programmer's perspective.
Complete with detailed examples and exercises, this book has it all. The information contained in this book makes you think about programming in an entirely new light.
Highly recommended.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


19 of 26 people found the following review helpful:
5.0 out of 5 stars Bryant and O'Hallaron created a great course, December 16, 2003
This review is from: Computer Systems: A Programmer's Perspective (Hardcover)
OK, I haven't actually read this book, but I took Bryant and O'Hallaron's course in 1998 (the first semester it was offered, I think) and was a TA for it a year later. They saw the need for a new course for CS undergrads who were coming in and learning C++ and Java without really understanding the guts of the machine. Their course taught things like bit-level representation of numbers (including two's complement and IEEE floating-point), assembly language, virtual memory, memory allocation, caching and its effect on performance, and the basics of TCP/IP. It was a great course--very informative and a lot of fun--and since there was nothing else like it out there, they had to write this book to go along with it.

I'm sure the book lives up to the course--and if not, you can rate this review "very unhelpful!" (I did read drafts of the chapters while I was a TA, so I hope I know what I'm talking about!)

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5 of 7 people found the following review helpful:
5.0 out of 5 stars it's the shiznit, February 21, 2003
By 
David Wang (Pittsburgh, PA United States) - See all my reviews
This review is from: Computer Systems: A Programmer's Perspective (Hardcover)
This book covers everything from basic C programming to IA32 assembly language to the ridiculously mundane IEEE representation of floating point numbers to threads.

This is a great resource for engineers who are interested in comprehensive, hands-on, and rigorous understanding of system-level programming.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


2 of 3 people found the following review helpful:
4.0 out of 5 stars Detailed, July 14, 2009
Amazon Verified Purchase(What's this?)
This review is from: Computer Systems: A Programmer's Perspective (Hardcover)
This book was purchased as a Graduate level text book. The book is very useful and detailed. It is dry, but it is a text book. I can see my self refering to this book for future classes or during my career.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


5.0 out of 5 stars Good book, November 9, 2011
This review is from: Computer Systems: A Programmer's Perspective (Hardcover)
The quality is nice. Besides, the book is really one of the most outstanding book concerned with computer systems. I really like to read such books
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


32 of 34 people found the following review helpful:
5.0 out of 5 stars I love this book, November 18, 2003
This review is from: Computer Systems: A Programmer's Perspective (Hardcover)
Have it on my desk since I bought for my computer architecture course (Csci 2021, Univ. of Minnesota - Twin Cities). Such a cool book to learn how computer hardware and software *really* work together, and why finding that out, could make us a more valuable computer scientist/programmer. Also provides a great hand to get you ready for advanced classes like Operating Systems, Compilers. My favorite chapter in the book is about Caches. It's unbelievable to first find out how much cached really matter! Thanks Prof. Bryant and O'Hallaron.

I think the first 7 chapters are what the most important to understand and grasp. Rest of the chapters are important too but they usually will overlap with other topics/classes like operating systems. Also, chapter 4 goes in more detail in processor architecure like pipelined CPU and will probably help more to the computer engineer; although computer scientists do learn a lot out of it and will help write code to exploit modern pipelined CPU's, like the deeply pipelined, Pentium 4. But I think the first 7 chapters are the ones, that sets this book aside from the others. You will need access to LINUX, as most of the discussions rotate around it like the virtual address space, assembly code - GAS and so on use the linux implementations.

After reading, you will be able tp convert decimal nos to binary and even floating point nos to binary format very easily. You will also learn more about twos complement operations and integer and floating point arithmetic, able to understand assembly code (GAS: GNU Assembler code), how procedures are implemented using stacks array allocation, debugging, embedding assembly code in C programs, more about CPU instruction sets and hardware control language and their implementations, pipelining, optimizing programs and expoliting caches, understanding modern CPU's, various storage technologies, linking, symbol tables, object files, shared object files, and more.

Don't forget to visit the book's website before buying the book. It is <http://csapp.cs.cmu.edu>

Here is a brief look about what it is all about!
Chapter 1: A Tour of Computer Systems
Chapter 2: Representing and Manipulating Information
Chapter 3: Machine-Level Representation of Programs
Chapter 4: Processor Architecture [MORE FOR COMPUTER ENGINEERS!]
Chapter 5: Optimizing Program Performance
Chapter 6: The Memory Hierarchy [COOL ONE!]
Chapter 7: Linking
Chapter 8: Exceptional Control Flow
Chapter 9: Measuring Program Execution Time
Chapter 10: Virtual Memory
Chapter 11: System-Level I/O
Chapter 12: Network Programming
Chapter 13: Concurrent Programming

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


‹ Previous | 1 2 3 | Next ›
Most Helpful First | Newest First

This product

Computer Systems: A Programmer's Perspective
Computer Systems: A Programmer's Perspective by Randal E. Bryant (Hardcover - August 23, 2002)
Used & New from: $24.16
Add to wishlist See buying options