The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Tuesday, August 18, 2015

We can link modules into a program with a linker, so where's the tool to link programs into a system?

I'm at work, and I'm looking at all the components that comprise “Project: Wolowizard” and how tedious it is to configure everything properly to work. Then I look at “Project: Sippy-Cup” and all the compoents and how tedious it is to configure everything properly to work. And then I had an odd thought.

Back when I was coding on an 8-bit computer with 16K of memory, if my program got too big (and I'm talking assembly language here) I could break it up into individual files, but I had to manage, by hand, all the memory addresses of each file and function. For example, one file might start assembling at address 4,096, function FOO might start at address 5,133, and the end of that file might be at address 6,218. That meant the next file had to start at address 6,219 (which meant making sure to tell the assembler that) and that I had to define the address of FOO in the second file as being 5,133.

Later on, when I had a computer running a real operating system (well, it was MS-DOS, which some claim isn't an operating system, but a non-reentrant interrupt handler with delusions of being a real operating system but I digress) I could take individual files, compile (or assemble) them separately and not care what addresses were what, leaving that up to another program to link everything together into a single program (it's called a “linker”). No longer did I have to worry about what address function FOO would start—that was taken care of by other bits of software. I could even include bits of output produced by other programmers (called libraries—bits of precompiled code ready to be linked into a program) automatically.

What I'm missing now is the linker for “Project: Wolowizard” or “Project: Sippy-Cup” as a whole. The piece of software that will take the various programs (each of which are comprised of multiple files compiled and then linked together into an executable) and “link” them up (in this case, configure all the components) for me automatically.

I'm wondering if it's even possible for such a tool in the general sense to exist.

Obligatory Picture

[It's the most wonderful time of the year!]

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site: http://boston.conman.org/, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

http://boston.conman.org/2000/08/01

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2019 by Sean Conner. All Rights Reserved.