- 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: 29 customer reviews
- Amazon Best Sellers Rank: #144,875 in Books (See Top 100 in Books)
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.
To get the free app, enter your mobile phone number.
Linkers and Loaders (The Morgan Kaufmann Series in Software Engineering and Programming) 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
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
Browse award-winning titles. See more
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
This is a surprisingly small book for the amount of information that it contains. I'd recommend it for those that have to dabble in the low level guts of systems programming, and for those that would like to understand in more depth some of the tools we rely on as programmers without necessarily knowing the details of how they work.
This isn't an easy book to read. I've done a once through it myself to get high level overview of a number of the concepts and plan to refer to specific portions of it again in detail as required in some of my upcoming work.
But this book is seriously dated and some parts are too hard to understand. I found the chapter 7 of "Computer Systems: A Programmer's Perspective" better than this one whole book.
See what I just did there?
Seriously though, it's far from an exhaustive reference of every build structure for every platform (good luck finding one that is), but it covers most of the things necessary to string a real project together of greater scope than a semester project. An understanding of compilers is fairly important for getting this book. If you put together anything more complex than "link UI to database and you're done here," read this book so someone doesn't have to explain why your project isn't building.