root/trunk/docs/terms.html

Revision 252, 4.0 kB (checked in by aldacron, 2 years ago)

[Docs]
* tweaked the style sheet to make code snippets easier on the eyes
* updated/clarified/corrected/cleaned up the the following documentation files:
credit.html
index_a.html
loading.html
selective.html
terms.html

  • Property svn:mime-type set to text/html
  • Property svn:mim-type set to text/html
Line 
1 <html lang="en">
2 <head>
3     <title>Terminology</title>
4     <link rel="stylesheet" type="text/css" href="styles.css">
5 </head>
6 <body>
7 <hr>
8 <hr>
9 <h2 align="center">Terminology</h2>
10 <hr>
11 <hr>
12
13 <h3>Introduction</h3>
14 When discussing Derelict in the
15 <a href="http://www.dsource.org/forums/viewforum.php?f=19&sid=d6f86cfb804d7c8727af1f58cd327d2c">project forums</a>
16 or elsewhere, it is important to understand the terminology that often surfaces
17 in such discussions. This will also be helpful in better understanding the Derelict
18 documentation. Following is a list of terms which could potentially be misunderstood
19 and their meaning when used in relation to Derelict.
20
21 <h4>Shared Library</h4>
22 This term is a platform-agnostic way of describing a library which is dynamically
23 loaded at run time and can be used simultaneously by multiple programs. On Windows,
24 such libraries are referred to as "Dynamic Link Libraries", or "DLLs", and have
25 the .dll file extension. On Linux and other Unix-like platforms, such libraries
26 are referred to as "Shared Object Libraries" or "Shared Objects" and have the
27 file extension of .so. This also includes the "Frameworks" found on Mac.
28
29 <p>
30 When this term is used in relation to Derelict, it can be considered to refer to
31 any of the above library formats. When you need to refer to a specific
32 format, you should use the format name instead of the term "Shared Library".
33 </p>
34
35 <h4>Static Libraries</h4>
36 Static libraries are the traditional form of distribution for archived object
37 files. On Windows, such libraries are called "Libraries" and have the extension
38 .lib. On Linux and other Unix-like platforms, such libraries are called "object
39 archives", "archives", "libraries", and several other terms, all of which have
40 the file extension .a and usually have the prefix "lib" prepended to the file
41 name.
42
43 <p>
44 Static libraries are compiled into the application at compile time, rather
45 than being loaded at run time. Because the library is compiled into the executable,
46 no other executable can share the same compilation.
47 </p>
48
49 <h4>Import Libraries, or Static Import Libraries</h4>
50 An import library is a library which automates the process of loading a shared
51 library. On Windows, when you create a DLL most compilers also create a static
52 library by the same name. This library is the DLL's import library. By compiling
53 this library into your executable, the application will be bound to the DLL and
54 the DLL will be loaded at run time by the OS.
55 <p>
56 Linux and other Unix-like platforms handle this differently. Rather than link
57 to a separate, static import library, you link to the .so itself. In otherwords,
58 the .so doubles as a shared library and as an import library. Even though you
59 are linking to the .so at compile time, the library itself is still loaded at
60 run time.
61 </p>
62
63 <h4>Dynamic Linkage</h4>
64 The term "dynamic linkage" usually refers to linking with an import library. As
65 described above, the import library may be a static library (as on Windows), or
66 may be the shared library itself (as on Linux).
67
68 <h4>Static Linkage</h4>
69 The term "static linkage" refers to linking with a static library at compilation
70 time: .lib on Windows and .a on Linux. Technically speaking, an import library
71 on Windows must be "statically linked", but the term is normally not applied to
72 import libraries.
73
74 <h4>Dynamic Loading</h4>
75 In the context of Derelict, "dynamic loading" refers to the normal method of
76 loading a shared library at run time: you link with an import library and the
77 operating system loads the library when the application starts. You, as the
78 programmer, need do nothing programmatically to load the shared library.
79
80 <h4>Manual Loading</h4>
81 In the context of Derelict, "manual loading" refers to bypassing the normal
82 method of loading a shared library at run time: you do not link with an import
83 library and, instead, load the shared library programmatically through
84 operating system API calls. This is Derelict's mode of operation and is the
85 reason why you must call methods like Derelict*.load().
86 </body>
87 </html>
Note: See TracBrowser for help on using the browser.