Shop Costumes Learn more nav_sap_SWP_6M_fly_beacon $5 Albums All-New Fire TV Stick with Voice Remote Grocery Introducing Handmade New Kitchen Scale from AmazonBasics Amazon Gift Card Offer redoaks redoaks redoaks  Amazon Echo Starting at $49.99 Kindle Voyage AutoRip in CDs & Vinyl Shop Now Learn more
Linkers and Loaders and over one million other books are available for Amazon Kindle. Learn more

Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your email address or mobile phone number.

Linkers and Loaders (The Morgan Kaufmann Series in Software Engineering and Programming) 1st Edition

24 customer reviews
ISBN-13: 978-1558604964
ISBN-10: 1558604960
Why is ISBN important?
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
Sell yours for a Gift Card
We'll buy it for $15.23
Learn More
Trade in now
Have one to sell? Sell on Amazon
Buy new
In Stock.
Ships from and sold by Gift-wrap available.
List Price: $67.95 Save: $18.80 (28%)
34 New from $49.05
Linkers and Loaders (The ... has been added to your Cart
More Buying Choices
34 New from $49.05 24 Used from $33.61
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student

Save up to 80% on Textbook Rentals Rent Textbooks
$49.15 FREE Shipping. In Stock. Ships from and sold by Gift-wrap available.

Frequently Bought Together

  • Linkers and Loaders (The Morgan Kaufmann Series in Software Engineering and Programming)
  • +
  • Advanced C and C++ Compiling
  • +
  • Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
Total price: $152.26
Buy the selected items together

Editorial Reviews 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.


"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

See all Editorial Reviews

Best Books of the Month
Best Books of the Month
Want to know our Editors' picks for the best books of the month? Browse Best Books of the Month, featuring our favorite new books in more than a dozen categories.

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: 7.6 x 0.6 x 9.5 inches
  • Shipping Weight: 1.4 pounds (View shipping rates and policies)
  • Average Customer Review: 4.0 out of 5 stars  See all reviews (24 customer reviews)
  • Amazon Best Sellers Rank: #118,290 in Books (See Top 100 in Books)

More About the Author

See my tediously corporate home page at and my blog at Then rush back and buy lots of books, please.

Customer Reviews

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.
Sorry, we failed to record your vote. Please try again
Report abuse
24 of 24 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.
Sorry, we failed to record your vote. Please try again
Report abuse
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.
Sorry, we failed to record your vote. Please try again
Report abuse
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.
Sorry, we failed to record your vote. Please try again
Report abuse
24 of 30 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.
Sorry, we failed to record your vote. Please try again
Report abuse

Most Recent Customer Reviews

Set up an Amazon Giveaway

Amazon Giveaway allows you to run promotional giveaways in order to create buzz, reward your audience, and attract new followers and customers. Learn more
Linkers and Loaders (The Morgan Kaufmann Series in Software Engineering and Programming)
This item: Linkers and Loaders (The Morgan Kaufmann Series in Software Engineering and Programming)
Price: $49.15
Ships from and sold by

Want to discover more products? Check out these pages to see more: programming, inside the java virtual machine