<Table> <Tr> <Td> </Td> <Td> This article needs additional citations for verification . Please help improve this article by adding citations to reliable sources . Unsourced material may be challenged and removed . (June 2008) (Learn how and when to remove this template message) </Td> </Tr> </Table> <Tr> <Td> </Td> <Td> This article needs additional citations for verification . Please help improve this article by adding citations to reliable sources . Unsourced material may be challenged and removed . (June 2008) (Learn how and when to remove this template message) </Td> </Tr> <P> In computer systems a loader is the part of an operating system that is responsible for loading programs and libraries . It is one of the essential stages in the process of starting a program, as it places programs into memory and prepares them for execution . Loading a program involves reading the contents of the executable file containing the program instructions into memory, and then carrying out other required preparatory tasks to prepare the executable for running . Once loading is complete, the operating system starts the program by passing control to the loaded program code . </P> <P> All operating systems that support program loading have loaders, apart from highly specialized computer systems that only have a fixed set of specialized programs . Embedded systems typically do not have loaders, and instead the code executes directly from ROM . In order to load the operating system itself, as part of booting, a specialized boot loader is used . In many operating systems the loader is permanently resident in memory, although some operating systems that support virtual memory may allow the loader to be located in a region of memory that is pageable . </P>

Who loads the program from disc to the memory