Home
Main website
Display Sidebar
Hide Ads
Recent Changes
View Source:
Library
Edit
PageHistory
Diff
Info
LikePages
You are viewing an old revision of this page.
View the current version
.
''Note: if you are looking for books, software etc to borrow, see WlugLibrary.'' A [Library] is basically a piece of pre-compiled code, usually a set of functions, used by many programs. It is therefor made available as a separate entity so the code can be reused between them. [BinaryExecutable]s can be linked against a library either statically or dynamically. Static linking means that the library is bound to the executable at [CompileTime] (or more precisely, link time), and the library is embedded in the BinaryExecutable. This has a number of drawbacks: the memory footprint of the program both on disk and in memory increases, because statically linked libraries cannot be shared, and it has to be relinked (which usually means it needs to be recompiled) for bug fixes in a library to propagate to the programs using it. However, some programs like the [Kernel] and the linker must be statically linked since the dynamic linker is not available at the time of their execution. Also, static linking also reduces load time of an executable and hardens executables against a cracker using library preload to tamper with their operation. It may therefor be wise to link a select set of binaries statically, at least on exposed hosts. Dynamic linking on the other hand happens at [RunTime] and is the common form of linking. It requires the [Library] to take a special form, called SharedLibrary for obvious reasons on most systems, and commonly stored in files named __lib''foo''.so.''m.n.o''__ where ''foo'' is the name of the SharedLibrary and ''m.n.o'' is an optional version number. Only [Windows] invents its own terminology and calls them [DLL]s.
4 pages link to
Library
:
Linux
StandardTemplateLibrary
GeneralPublicLicense
MALLOC_CHECK_