Computer Systems: A Programmer's Perspective
L**E
Very good one.
A nice book. The condition is good and fast shipping.
T**G
Great book
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.
A**R
Seems like it is well written and will be helpful
Cheap book. Seems like it is well written and will be helpful. Hardcover came as advertised.
A**R
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 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) DocumentationExcellent job. I really appreciate the work and content of this book.
C**E
Densely packed and valuable
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 1I Program Structure and Execution 252 Representing and Manipulating Information 293 Machine-Level Representation of Programs 1454 Processor Architecture 3175 Optimizing Program Performance 4496 The Memory Hierarchy 531II Running Programs on a System 6197 Linking 6238 Exceptional Control Flow 6679 Virtual Memory 741III Interaction and Communication Between Programs 81910 System-Level I/O 82311 Network Programming 84712 Concurrent Programming 893A Error Handling 957A.1 Error Handling in UnixSystems 957A.2 Error-HandlingWrappers 959
G**V
I love this book
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 <[...]Here is a brief look about what it is all about!Chapter 1: A Tour of Computer SystemsChapter 2: Representing and Manipulating InformationChapter 3: Machine-Level Representation of ProgramsChapter 4: Processor Architecture [MORE FOR COMPUTER ENGINEERS!]Chapter 5: Optimizing Program PerformanceChapter 6: The Memory Hierarchy [COOL ONE!]Chapter 7: LinkingChapter 8: Exceptional Control FlowChapter 9: Measuring Program Execution TimeChapter 10: Virtual MemoryChapter 11: System-Level I/OChapter 12: Network ProgrammingChapter 13: Concurrent Programming
M**U
Impressive
Postage was a killer. Sent to my son in the USA. The item was dispatched a mile from his home but was charged nearly £16 postage. The book is great. My son builds his own robots, prohrams, makes his own boards and programs his chips. He was super happy and really enjoyed reading it.
J**U
Interesting and good
I got this book for my second year in my Informatic Study in Germany. The English wasn't hard to understand and it helped me a lot at my time in the university.
R**H
Five Stars
Excellent: hard work reading but one of a kind!
Trustpilot
Hace 2 meses
Hace 2 meses