Executable files also contain instructions for the operating system to prepare the code and data, mostly located in "section headers". Theoretically, the program headers can specify arbitrary mappings between file sections and virtual address pages. The data pointed to by program headers both are in consecutive file sections and should be mapped to consecutive virtual pages.