Programming Books C Java PHP Python Learn more Browse Programming Books
Linkers and Loaders and over one million other books are available for Amazon Kindle. Learn more
Buy New
$44.11
Qty:1
  • List Price: $67.95
  • Save: $23.84 (35%)
In Stock.
Ships from and sold by Amazon.com.
Gift-wrap available.
Add to Cart
Trade in your item
Get a $7.00
Gift Card.
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See all 2 images

Linkers and Loaders (The Morgan Kaufmann Series in Software Engineering and Programming) Paperback – October 25, 1999

ISBN-13: 978-1558604964 ISBN-10: 1558604960 Edition: 1st

Buy New
Price: $44.11
30 New from $34.95 22 Used from $19.68
Amazon Price New from Used from
Kindle
"Please retry"
Tankobon Hardcover
"Please retry"
$68.85
Paperback
"Please retry"
$44.11
$34.95 $19.68
Unknown Binding
"Please retry"

Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student




Frequently Bought Together

Linkers and Loaders (The Morgan Kaufmann Series in Software Engineering and Programming) + How Debuggers Work: Algorithms, Data Structures, and Architecture + Reversing: Secrets of Reverse Engineering
Price for all three: $105.90

Buy the selected items together

NO_CONTENT_IN_FEATURE

Shop the new tech.book(store)
New! Introducing the tech.book(store), a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Product Details

  • Series: The Morgan Kaufmann Series in Software Engineering and Programming
  • Paperback: 256 pages
  • Publisher: Morgan Kaufmann; 1 edition (October 25, 1999)
  • Language: English
  • ISBN-10: 1558604960
  • ISBN-13: 978-1558604964
  • Product Dimensions: 0.6 x 7.2 x 9 inches
  • Shipping Weight: 1 pounds (View shipping rates and policies)
  • Average Customer Review: 3.9 out of 5 stars  See all reviews (23 customer reviews)
  • Amazon Best Sellers Rank: #120,642 in Books (See Top 100 in Books)

Editorial Reviews

Amazon.com Review

Written for any programmer who works with compiled code, Linkers and Loaders surveys today's hardware platforms with a tour of how code is linked and executed on IBM mainframes, Unix, and Windows. This handy title fills a valuable niche for anyone who wants to understand how programs are built and run on today's computing systems.

It's the cross-platform perspective that distinguishes this book. The author's wide-ranging perspective on IBM 370 mainframes, RISC platforms like the SUN SPARC and, of course, Microsoft Windows makes this book a commendable reference on the internals of linkers and program execution in each environment. There's also a digestible guide to the computer architecture (including registers, instruction formats, and memory addressing) for each platform. (Unix programmers will be pleased that the book has more information on non-Windows platforms than on Windows itself.) For C++ programmers, this text gives you a glimpse into the internals of such language features as macros, templates, and name mangling, and how linkers deal with them at build time.

The book closes with useful material on static libraries and dynamic linking, plus a short tour of Java and its class loader (which can resolve classes on the fly as they are downloaded over the Internet). Short exercises are provided for each chapter, making this a useful resource for both classroom and self-study on what is an often overlooked topic. --Richard Dragan

Topics covered: History of linkers and loaders, application binary interfaces (ABIs), computer architecture basics, big- and little-endian memory addresses, register and instruction formats for IBM 370, SPARC and Intel x86, paging and virtual memory, position independent code (PIC), Intel x86 segmentation, embedded architectures, object files for DOS COM and EXE files, Unix a.out, Unix ELF, IBM 360 object format, Microsoft Portable Executable (PE) format, Intel Object Module Format (OMF), storage allocation, linking details for C++, symbol management, name mangling, weak and strong references, debugging information, library formats, COFF and ELF formats, relocation, loading and overlays, bootstrap loading, shared libraries, dynamic linking for Unix ELF and Microsoft Windows DLLs, advanced linking techniques for C++, and linking in Java.

Review

"I enjoyed reading this useful overview of the techniques and challenges of implementing linkers and loaders. While most of the examples are focused on three computer architectures that are widely used today, there are also many side comments about interesting and quirky computer architectures of the past. I can tell from these war stories that the author really has been there himself and survived to tell the tale."-Guy Steele

More About the Author

See my tediously corporate home page at http://www.johnlevine.com and my blog at http://weblog.johnlevine.com. Then rush back and buy lots of books, please.

Customer Reviews

It's rare to find a book on such an obscure subject, much less such a well-written inclusive one.
Ryan Joseph
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.
JK Oregon
The book does a great job describing exactly what it is that linkers/loaders need to do and how they do it.
J. A. Sandoval

Most Helpful Customer Reviews

45 of 46 people found the following review helpful By Joshua R. Poulson on January 11, 2000
Format: Paperback
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.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
22 of 22 people found the following review helpful By Andrew Whitworth on January 4, 2005
Format: Paperback
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.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
33 of 37 people found the following review helpful By oberon46 on April 19, 2001
Format: Paperback
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.
2 Comments Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
11 of 11 people found the following review helpful By John M. Cooper on September 5, 2000
Format: Paperback
The description of linking, loading, and various object formats is very informative. The style of writing is such that I was able to read it at one sitting (quite an accomplishment for a technical book :) ). But the book is seriously incomplete without a discussions of IBM's LX 32-bit executable, object, and DLL formats, and the differences between LX and PE, especially as it pertains to dynamic linking. Also, if you're going to discuss OMF objects, it seems impossible to me to skip NE executables, objects, and DLL formats--the jump from DOS 2.0 (OMF) to Windows NT (PE) is simply too great without a parallel discussion of NE. Finally, more coverage of incremental linking would be good. But, if you confine yourself to a.out, COFF, PE, or pre-NE OMF, this book's contents will interest you.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
23 of 29 people found the following review helpful By JK Oregon on March 2, 2001
Format: Paperback
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.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Customer Images

Most Recent Customer Reviews

Search

What Other Items Do Customers Buy After Viewing This Item?