Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: run an executable object file p, we can type its name to the Unix shell’s command line: unix> ./p Since p does not correspond to a built-in shell command, the shell assumes that p is an executable object file, which it runs for us by invoking some memory-resident operating system code known as the loader. Any Unix program can invoke the loader by calling the execve function, which we will describe in detail in Section 8.4.6. The loader copies the code and data in the executable object file from disk into memory, and then runs the program by jumping to its first instruction, or entry point. This process of copying the program into memory and then running it is known as loading. Every Unix program has a run-time memory image similar to the one in Figure 7.13. On Linux systems, the code segment always starts at address 0x08048000. The data segment follows at the next 4-KB aligned address. The run-time heap follows on the first 4-KB aligned address past the read/write segment and grows up via calls to the malloc library. (We will describe malloc and the heap in detail i...
View Full Document

This note was uploaded on 09/02/2010 for the course ELECTRICAL 360 taught by Professor Schultz during the Spring '10 term at BYU.

Ask a homework question - tutors are online