Category: Programming
-
Linkers part 4
Shared Libraries We’ve talked a bit about what object files and executables look like, so what do shared libraries look like? I’m going to focus on ELF shared libraries as used in SVR4 (and GNU/Linux, etc.), as they are the most flexible shared library implementation and the one I know best. Windows shared libraries, known…
-
Linkers part 3
Continuing notes on linkers. Address Spaces An address space is simply a view of memory, in which each byte has an address. The linker deals with three distinct types of address space. Every input object file is a small address space: the contents have addresses, and the symbols and relocations refer to the contents by…
-
Linkers part 2
I’m back, and I’m still doing the linker technical introduction. Shared libraries were invented as an optimization for virtual memory systems running many processes simultaneously. People noticed that there is a set of basic functions which appear in almost every program. Before shared libraries, in a system which runs multiple processes simultaneously, that meant that…
-
Linkers part 1
I’ve been working on and off on a new linker. To my surprise, I’ve discovered in talking about this that some people, even some computer programmers, are unfamiliar with the details of the linking process. I’ve decided to write some notes about linkers, with the goal of producing an essay similar to my existing one…
-
Cutting Without Measuring
We’re having our front steps replaced. They are made of concrete with embedded tiles (the old steps were badly cracked, and had to be removed anyhow when we had our foundation rebuilt). We were able to salvage about half the tiles from the old steps as they were destroyed, and managed to find matching new…