Hello, I've been doing some research on the history of disassembly lately, tools
available historically, today, and what sorts of developments have been made regarding
utilities and systems for taking a machine-code binary and working it back to some
semblance of source code.
So in the early days UNIX had das(I), a PDP-11 disassembler I believe written by Ken
(he's OWNER in the manual) with very little information other than "it
exists". Fast forward to the UNIX 4.1 manual in 1981 for the 3B20S and there is
dis(1), a 3B20 disassembler. Other such manuals feature dis(1) versions for other 3B
targets.
Was a disassembler ever considered part of the standard binary objects toolkit with the
assembler, linker, etc. or was that the sort of thing that was more niche and therefore
just kinda cropped up when/if someone decided to write one? Were there legal concerns to
be grappled with when producing a disassembler? Were such tools ever shipped or did they
only appear in the manuals as they were technically up in the code base, just not commonly
distributed or used? Also, was there any thought given during the development of C to
producing "decompilers" as has been becoming more common lately? Or was it a
foregone conclusion that C to assembly is a "lossy" conversion and going the
other direction couldn't be fully automated.
Thank you for any insights!
- Matt G.