On Wed, 21 Aug 2002, at 10:10am, [EMAIL PROTECTED] wrote:
> Okay, I'll buy that, but why create a linker that only supports 5
> character function names?

  Okay, some Google searches eventually tracked down this explanation:

  Way back when 16 kilobytes was a lot of memory, a method for encoding five
characters into a single 32-bit machine word was developed.  It was called
"Radix-50", or "RAD50".  The 50 is octal, or 40 decimal.  The character set
was 26 monocase letters, 10 digits, three special characters, and a null (a
total of 40).  This encoding was used in the linkers of various DEC PDP
operating systems, which is where Unix was born.

  (That could, of course, be incorrect, but I did find references to
Radix-50/RAD50 in some old DEC migration documentation.)

> I guess I don't fully understand the role of linkers, if this should be an
> obvious thing :)

  A compiler/assembler turns source code into object code modules.  Those
modules are not working programs yet; they have symbolic names instead of
addresses for variables and functions in many places.  You then need to link
the modules together, which includes replacing symbolic names with machine
addresses everywhere.  The output of the linking process is an executable
program.

  Run-time dynamic linking makes things more complex.  *hand wave*

-- 
Ben Scott <[EMAIL PROTECTED]>
| The opinions expressed in this message are those of the author and do not |
| necessarily represent the views or policy of any other person, entity or  |
| organization.  All information is provided without warranty of any kind.  |

_______________________________________________
gnhlug-discuss mailing list
[EMAIL PROTECTED]
http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss

Reply via email to