The POSIX loader is a component of the POSIX subsystem. It manages system global, user-specific or session-specific program caches of variable size where ready-to-run core images of POSIX programs are stored and copied to memory for execution. Load processes in POSIX can be speeded up considerably with the POSIX loader. An ample description of the POSIX loader is contained in the section “POSIX loader”.
Setting up program caches
When POSIX starts, no program caches are set up. The global program cache is set up implicitly in accordance with the entries in the POSIX information file. The global program cache can also be set up later by the super user with the posdbl command. The user-specific and session-specific program caches are set up by the current user with the aid of the pdbl command.
Storage in a program cache
After the program caches have been set up, POSIX programs are stored in a program cache in the following way:
Implicitly: At the first call of a (non-builtin) POSIX command (basic shell and extended shell), the program is loaded via BLS. Its core image is stored in the global program cache, loaded into memory and subsequently started.
Explicitly: POSIX programs may be stored in the global program cache (by the super user with the posdbl command) or in a user-specific/session-specific program cache (by the user with the pdbl command).
Loading during a program call
Each time a (non-builtin) POSIX command is called via the exec system call, the following conditions are tested in the specified order:
Was the task created by fork?
Is debugging deactivated for the program?
Is the corresponding core image stored in a program cache?
If one of the conditions does not apply, the program is loaded in the “classic" manner via BLS and is subsequently started. Otherwise, the program stored in a program cache is directly copied to memory and started. Bypassing BLS means the program is not completely embedded in the BS2000 program environment. The resulting restrictions are described in the section “Loader process”.