Why are executables called "image files"?

2k views Asked by At

I'm reading the PE format document. In the document, the word "image" appears many times and seems always comes along with the word "executable". However, it doesn't explain why "executable" is called an "image file".

There is a list of page entries on Wikipedia to several terminologys contains "image" such as "Disk image", "ISO image", even a link to "Executable", but still it doesn't explain the meaning of "image" in such contexts.

After googling, I found This website that gives a reasonable explination of "image":

(1) In computer science an image is an exact replica of the contents of a storage device (a hard disk drive or CD-ROM for example) stored on a second storage device. See also disk image.

So, say an "ISO image" is an exact replica of the contents of a disc, then an "executable image" is an exact replica of what? Why are executables called "image files"?

2

There are 2 answers

0
Ugne On

One of the main architects of Windows NT (this includes all current releases of Windows) Dave Cutler also worked on various DEC operating systems in the past, such as VMS and RSX-11, therefore Windows NT is structured very similarly to those old DEC systems and uses similar terminology. In VMS/RSX-11 executable files are called "images", this comes from the 1960s computer terminology, back then the term "executable file" wasn't popular at all and many different terms existed.

0
Lewis Kelsey On

An executable image of a program is the program captured in a state that is executable. It is a frozen image, just an image, a still, of the program on disk that can be loaded as is and control can be passed to it, brought to life from that point on. An image implies that it's not only an image as in a snapshot of the program state but one that is ready to be executed and control can be passed to it and it can correctly operate and do its own thing. The state of the program half way through execution would not be an image because .data sections will have changed to values that will cause false behaviour if control is passed to the entry point.