|WikiProject Computing||(Rated Start-class, Low-importance)|
What a "loader" is
A "loader" can also be a piece of code that handles loading the rest of a long program into memory, e.g. on 1980s home computers like Commodore 64 and ZX Spectrum where there might be music or graphical effects during a (several minutes long) loading from cassette tape. This deserves a mention. 184.108.40.206 01:16, 1 February 2007 (UTC)
does not loader comes after linking for programs for loading to program memory area for execution?
A loader is simply a part of operating system that is responsible for loading programs from executables to memory, prepare them for execution and then execute them. It is usually a part of the operating system's kernel and usually is loaded at system boot time and stays in memory until reboot/shutdown/poweroff (some operating systems with a pageable kernel may have the loader in the pageable part of the kernel and thus the loader may be swapped out of memory sometimes). Each operating system that supports program loading must have one (there are some embedded operating systems in highly specialized computers that have no program loading capabilities and thus no loaders, for example the operating system that runs on the computer that controls your HIFI). The thing described in the article is called "linking loader" and I also have seen name "program interpreter" (from the 'readelf' program) or "helper program for shared library executables" that refers to a component of the loader that performs the shared library linking performed at runtime.
I didn't updated the article since a lot of investigation needs to be done, especially to identify the sources and the proper names for the various loader types.
--Jozue 19:44, 24 January 2007 (UTC)
Not always "part of an operating system"
Needs much more work
Terminology: I could do with some help in clarifying usage of English terms. The process of either starting executables or loading libraries and binding them into processes often involves umpteen other stages, and I would like to discover what the consensus is about how many stages of the process are considered part of a loader itself. Examples might be; in Windows NT, checking the exe or library is permitted to run against the rules of software restriction policies (SRP), checking the exe's acl for both read and execute permissions, checking certificates in the case of a device driver or where SRP requires certificate checks.
Amplifying the article: Loading device drivers is not mentioned and it certainly should be. There should be clear mentions of library loading, executable loading in process startup, device drivers and also loaders in a non-o/s context such as virtual machine interpreters or programming language interpreters which load and pre-parse or JIT-compile code. We should also mention the case of systems where decompression of the exe is carried out, and talk about systems where a loader has to check that dependencies can be satisfied before execution even starts, such as where required libraries are declared in the exe data structures.