Implementations Dynamic linker




1 implementations

1.1 microsoft windows
1.2 unix-like systems using elf, , darwin-based systems

1.2.1 systems using elf
1.2.2 macos , ios


1.3 xcoff-based unix-like systems
1.4 os/360 , successors





implementations
microsoft windows

dynamic-link library, or dll, microsoft s implementation of shared library concept in microsoft windows , os/2 operating systems. these libraries have file extension dll, ocx (for libraries containing activex controls), or drv (for legacy system drivers). file formats dlls same windows exe files – is, portable executable (pe) 32-bit , 64-bit windows, , new executable (ne) 16-bit windows. exes, dlls can contain code, data, , resources, in combination.


data files same file format dll, different file extensions , possibly containing resource sections, can called resource dlls. examples of such dlls include icon libraries, having extension icl, , font files, having extensions fon , fot.


unix-like systems using elf, , darwin-based systems

in unix-like systems, of machine code makes dynamic linker external executable operating system kernel loads , executes first in process address space newly constructed result of calling exec or posix_spawn functions. @ link time, path of dynamic linker should used embedded executable image.


when executable file loaded, operating system kernel reads path of dynamic linker , attempts load , execute other executable binary; if attempt fails because, example, there no file path, attempt execute original executable fails. dynamic linker loads initial executable image , dynamically-linked libraries on depends, , starts executable. result, pathname of dynamic linker part of operating system s application binary interface.


systems using elf

in unix-like systems use elf executable images , dynamic libraries, such solaris, 64-bit versions of hp-ux, linux, freebsd, netbsd, openbsd, , dragonfly bsd, path of dynamic linker should used embedded @ link time .interp section of executable s pt_interp segment. in systems, dynamically loaded shared libraries can identified filename suffix .so (shared object).


the dynamic linker can influenced modifying behavior during either program s execution or program s linking, , examples of can seen in run-time linker manual pages various unix-like systems. typical modification of behavior use of ld_library_path , ld_preload environment variables, adjust runtime linking process searching shared libraries @ alternate locations , forcibly loading , linking libraries otherwise not be, respectively. example zlibc, known uncompress.so, facilitates transparent decompression when used through ld_preload hack; result, possible read pre-compressed (gzipped) file data on bsd , linux systems if files not compressed, allowing user add transparent compression underlying filesystem, although caveats. mechanism flexible, allowing trivial adaptation of same code perform additional or alternate processing of data during file read, prior provision of said data user process has requested it.


macos , ios

in apple darwin operating system, , in macos , ios operating systems built on top of it, path of dynamic linker should used embedded @ link time 1 of mach-o load commands in executable image. in systems, dynamically loaded shared libraries can identified either filename suffix .dylib or placement inside bundle framework.


the dynamic linker not links target executable shared libraries places machine code functions @ specific address points in memory target executable knows @ link time. when executable wishes interact dynamic linker, executes machine-specific call or jump instruction 1 of well-known address points. executables on macos , ios platforms interact dynamic linker during execution of process; known executable might interact dynamic linker, causing load more libraries , resolve more symbols, hours after launches. reason macos or ios program interacts dynamic linker due both apple s cocoa , cocoa touch apis , objective-c, language in implemented (see main articles more information).


the dynamic linker can coerced modifying of behavior; however, unlike other unix-like operating systems, these modifications hints can (and are) ignored dynamic linker. examples of can seen in dyld s manual page. typical modification of behavior use of dyld_framework_path , dyld_print_libraries environment variables. former of previously-mentioned variables adjusts executables search path shared libraries, while latter displays names of libraries loaded , linked.


apple s macos dynamic linker open-source project released part of darwin , can found in apple s open-source dyld project.


xcoff-based unix-like systems

in unix-like operating systems using xcoff, such aix, dynamically-loaded shared libraries use filename suffix .a.


the dynamic linker can influenced modifying behavior during either program s execution or program s linking. typical modification of behavior use of libpath environment variable. variable adjusts runtime linking process searching shared libraries @ alternate locations , forcibly loading , linking libraries otherwise not be, respectively.


os/360 , successors

dynamic linking assembler language programs in ibm os/360 , successors done typically using link macro instruction containing supervisor call instruction activates operating system routines makes library module linked available program. library modules may reside in steplib or joblib specified in control cards , available specific execution of program, in library included in linklist in parmlib (specified @ system startup time), or in link pack area specific reentrant modules loaded @ system startup time.





cite error: there <ref group=lower-alpha> tags or {{efn}} templates on page, references not show without {{reflist|group=lower-alpha}} template or {{notelist}} template (see page).







Comments

Popular posts from this blog

History Arab separatism in Khuzestan

Cyberspace as an Internet metaphor Cyberspace

Discography Little Pattie