Rating:  Summary: Too many omissions to be useful, too general to instruct Review: Despite its name and cover copy, this book is simply an introduction to object file formats. The actual discussion of linkers and loaders explains only the basic concepts (as others have pointed out, the coverage of advanced concepts such as dynamic linking is scant.) Thereafter, Levine traipses through a variety of object file formats and explains their layouts and superficially their differences. Linking in Java is given a mere couple of pages--a clear afterthought. This despite being a topic of some complexity and uniquely different from traditional linking and loading. Finally, a serious complaint: the book and its cover both trumpet a "linker construction project in Perl" that you can download from the author's website. A year after publication, this code is still not posted. When I contacted the author, he said he had been "too busy" to write the code and doubted he would ever get it posted. I find this kind of thing really dishonest. But even that notwithstanding, this book is just not very good.
Rating:  Summary: not exactly what I was expecting. Review: For what this book is, it is good. but, for what I expected it to be, it is a little lackluster. I was expecting a book that would explain linking and loading, provide code examples, and teach the subject systematically. What this book is however, is a simple technical reference. It talks about what things are, and the particulars of all the different file formats and architectures. It provides no code (and no pseudo-code) to demonstrate any of the concepts.
The book does however provide several excercises at the end of each chapter that will test the programmer, and it also has a main project: each chapter prompts the reader to construct, and add to a sample linker, which the book claims should be written in Perl, although perl is never talked about in the book, and no perl code is ever provided. Since Perl code is never used in the problems, and no solutions in perl are provided in the book (they are on the website, however), it would work just as well for a programmer to use any language that they felt comfortable with, such as C/C++ or Java.
my feelings are mixed. on one hand this book is an excellent reference on a subject that rarely sees any light. if I may quote a passage: "But all the linker writers in the world could probably fit in one room, and half of them already have copies [of this book]." Clearly the audience for this topic isnt particularly large, and so it seems that linkers and loaders will remain a bit of a black art, even though this book does shed some light on the most basic concepts involved. However, this book only contains concepts, and it asks the reader to view external sources for the specifics, and it asks the programmer to have a firm grasp on their knowledge of programming, but also computer architecture.
I give this book 4 stars because it is one of the best (one of the only) books on the topic, but I hope that future versions of this book (or even a competing title) will shed more light, and provide more specific examples (including specific code examples) on this confusing topic.
Rating:  Summary: Good resource Review: I am very excited when I discovered this book from amazon. This book covered an important practical area of knowledge for software developers which was not mentioned elsewhere. This book is really very helpful to understand ROUGHLY how current linker and loader works if you just have a vague idea of how they works like me. On the other hand the author try to cover too much so that reader is lost before they really get the hight level picture of exactly how various technique in different chapters play together, though the author's wide knowlegde in this area is amazing. I found I still need to read the specifications of ELF format and read the book again to gain the high level picture. I believe the book can be more helpful to an average software developer if the author treatment of ELF and PE is in greater detail that it is in the book. The treatment about C++ is very interesting. If there are second edition, hope to see more about this subject.
Rating:  Summary: Very Good Review: I learned a lot about object files, loading and linking from reading this book.
Rating:  Summary: Shines a light on an obscure subject Review: I picked up this book to delve into interesting problems with a loader that I work with and was amazed at the great story told of what happens to your code after it goes through that compiler and becomes an object. It's not done yet, folks. This book covers a broad range of topics, after first explaining the basics and architecture gotchas, to all the phases from the back end of the compiler to a program running in memory. Three example platforms are used to illustrate this journey: Intel x86 and 32-bit Windows, UltraSPARC and Solaris, and the IBM 360/370. However, it touches upon a great deal other challenges and formats. Some might consider the symbolic journey from source code to running program to be equivalent to Conrad's "Heart of Darkness" but Levine's book makes it more like a guided tour at a Disney Theme park. There are wonderful examples and code snippets. Clear diagrams and excellent writing. My only complaint about this book is that the back cover makes a lot of noise about Java, but the material inside is pretty paltry alongside the more developed material on C, FORTRAN, and C++ issues. Java is really not that complicated or important to Linkers and Loaders.
Rating:  Summary: A Respectiable Failure of a Book Review: I purchased this book so that I might learn more about the linking process. I had hoped that I could write my own simple linker to help facilitate my understanding. Interestingly enough, this is exactly what the book advertises. Unfortunately this book only served as a mild introduction to several object file formats. Like mathematicians need formulas to understand certain processes, programmers need code to see what is actually is transpiring within the computer. This book does not contain anything technical enough that could actually be helpful in writing your own linker (providing you already understand object file formats). If this book was entitled "Introduction to Object Files" then I may have given it 5 stars. The book also has several references to writing a linker in PERL, but the website has not changed since it was published in October of 1999. No code has yet been posted and has left me with the feeling of being ripped off. The books website.... contains a draft version of the book. I'd suggest you simply read that and save your money. I don't think its fair to release half a product at full price. Being a student, money doesn't come by easily for me. I am certain I will never buy a book from Jonh R. Levine again.
Rating:  Summary: an introduction, but not much more. Review: If you already know something about loaders and linkers, then this book is not for you. It covers the basics, but then it stops just when things are getting interesting. The book describes several executable file formats, but it always stops just when the topic is becoming interesting. In summary, a decent introduction, but not much more.
Rating:  Summary: More of a pamphlet on linkers and loaders than a book Review: If you're just looking for a piece of literature to get you started thinking about understanding linkers, this is the book for you. However, if you actually want to write your own linker, you'd best find another book. This book covers all of the popular object and executable file formats such as COFF, ELF, and OMF, but it never really goes in depth or gives any example code, which is exactly what a programmer needs to really get what's going on. Even some pseudocode would've been nice. The only thing I particularly enjoyed about this book was the author's sense of humor, which is a rare thing in the realm of technical books. John Levine pokes fun at himself several times throughout the book, acknowledging that linker programmers are a rare breed indeed - Too bad he couldn't have written a more complete book on linkers, I would've given him a much better review.
Rating:  Summary: More of a pamphlet on linkers and loaders than a book Review: If you're just looking for a piece of literature to get you started thinking about understanding linkers, this is the book for you. However, if you actually want to write your own linker, you'd best find another book. This book covers all of the popular object and executable file formats such as COFF, ELF, and OMF, but it never really goes in depth or gives any example code, which is exactly what a programmer needs to really get what's going on. Even some pseudocode would've been nice. The only thing I particularly enjoyed about this book was the author's sense of humor, which is a rare thing in the realm of technical books. John Levine pokes fun at himself several times throughout the book, acknowledging that linker programmers are a rare breed indeed - Too bad he couldn't have written a more complete book on linkers, I would've given him a much better review.
Rating:  Summary: Very superficial, OK as an introduction Review: Nothing much to add to that. Well written, good illustrations, all's good, but too superficial and cursory. Unfortunately, short of reading gnu source code, it's the only info source on the topic, so one has to be grateful for what one can get, I guess. For what it is, the book is OK.
|