Linkers and Loaders"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 Whatever your programming language, whatever your platform, you probably tap into linker and loader functions all the time. But do you know how to use them to their greatest possible advantage? Only now, with the publication of Linkers & Loaders, is there an authoritative book devoted entirely to these deep-seated compile-time and run-time processes. The book begins with a detailed and comparative account of linking and loading that illustrates the differences among various compilers and operating systems. On top of this foundation, the author presents clear practical advice to help you create faster, cleaner code. You'll learn to avoid the pitfalls associated with Windows DLLs, take advantage of the space-saving, performance-improving techniques supported by many modern linkers, make the best use of the UNIX ELF library scheme, and much more. If you're serious about programming, you'll devour this unique guide to one of the field's least understood topics. Linkers & Loaders is also an ideal supplementary text for compiler and operating systems courses. Features: * Includes a linker construction project written in Perl, with project files available for download. * Covers dynamic linking in Windows, UNIX, Linux, BeOS, and other operating systems. * Explains the Java linking model and how it figures in network applets and extensible Java code. * Helps you write more elegant and effective code, and build applications that compile, load, and run more efficiently. |
Other editions - View all
Common terms and phrases
32-bit address a.out address space aligned architecture base register bits bss segment bytes Chapter char code and data COFF common blocks compiler computers create csect data addresses data segment debug defined disk dynamic linking ELF file exported FIGURE fixups Fortran global symbol gram handle initial input file Intel jump table line numbers link-time linker needs loader location zero malloc mangled mapped ment module multiple object code object file object format offset operating system output file overlay page table pointer position-independent code procedure program header program loader pseudo-registers read-only reference relative relink relocatable relocation entries relocation types routine run-time segment number shared libraries single source file SPARC stack starts startup static stored stub library symbol table table entry target address template text segment tion undefined UNIX systems unsigned long variables virtual memory Windows