home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 November / CMCD1104.ISO / Software / Complet / Apache / apache_2.0.52-win32-x86-no_ssl.msi / Data.Cab / F277665_dso.xml.ko < prev    next >
Extensible Markup Language  |  2004-05-07  |  11KB  |  273 lines

  1. <?xml version="1.0" encoding="EUC-KR" ?>
  2. <!DOCTYPE manualpage SYSTEM "./style/manualpage.dtd">
  3. <?xml-stylesheet type="text/xsl" href="./style/manual.ko.xsl"?>
  4. <!-- English Revision: 1.3.2.5 -->
  5.  
  6. <!--
  7.  Copyright 2003-2004 The Apache Software Foundation
  8.  
  9.  Licensed under the Apache License, Version 2.0 (the "License");
  10.  you may not use this file except in compliance with the License.
  11.  You may obtain a copy of the License at
  12.  
  13.      http://www.apache.org/licenses/LICENSE-2.0
  14.  
  15.  Unless required by applicable law or agreed to in writing, software
  16.  distributed under the License is distributed on an "AS IS" BASIS,
  17.  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  18.  See the License for the specific language governing permissions and
  19.  limitations under the License.
  20. -->
  21.  
  22. <manualpage metafile="dso.xml.meta">
  23.  
  24.   <title>╡┐└√░°└»░┤├╝ (DSO) ┴÷┐°</title>
  25.  
  26.   <summary>
  27.     <p>╛╞╞──í └Ñ╝¡╣÷┤┬ ░ⁿ╕«└┌░í ╕≡╡Γ╡Θ└╗ ╝▒┼├╟╧┐⌐ ╝¡╣÷┐í ╞≈╟╘╟╥
  28.     ▒Γ┤╔└╗ ░ß┴ñ╟╥ ╝÷ └╓┤┬ ╕≡╡Γ╚¡╡╚ ╟┴╖╬▒╫╖Ñ└╠┤┘. ╝¡╣÷╕ª ──╞─╟╥╢º
  29.     <code>httpd</code> ╜╟╟α╞─└╧┐í ┴ñ└√└╕╖╬ ╕≡╡Γ└╗ ──╞─└╧╟╥
  30.     ╝÷ └╓┤┘. ╛╞┤╧╕Θ ╕≡╡Γ└╗ <code>httpd</code> ╜╟╟α╞─└╧░·
  31.     ║╨╕«╟╧┐⌐ ╡┐└√░°└»░┤├╝(Dynamic Shared Objects, DSO)╖╬ ──╞─└╧╟╥
  32.     ╝÷ └╓┤┘. DSO ╕≡╡Γ└║ ╝¡╣÷╕ª ──╞─└╧╟╥╢º ──╞─└╧╟╧░┼│¬, Apache
  33.     Extension Tool (<a href="programs/apxs.html">apxs</a>)└╗
  34.     ╗τ┐δ╟╧┐⌐ │¬┴▀┐í ──╞─└╧╟╧┐⌐ ├▀░í╟╥ ╝÷ └╓┤┘.</p>
  35.  
  36.     <p>└╠ ╣«╝¡┤┬ DSO ╕≡╡Γ ╗τ┐δ╣²░· ╣Φ░µ └╠╖╨└╗ ╝│╕φ╟╤┤┘.</p>
  37.   </summary>
  38.  
  39.  
  40. <section id="implementation"><title>▒╕╟÷</title>
  41.  
  42. <related>
  43. <modulelist>
  44. <module>mod_so</module>
  45. </modulelist>
  46. <directivelist>
  47. <directive module="mod_so">LoadModule</directive>
  48. </directivelist>
  49. </related>
  50.  
  51.     <p>╛╞╞──í ╟┘╜╔┐í ┴ñ└√└╕╖╬ ──╞─└╧╟╪╛▀╟╥
  52.     <module>mod_so.c</module>╢≤┤┬ ╕≡╡Γ└║ ╛╞╞──í ╕≡╡Γ└╗
  53.     └╨╛ε╡Θ└╠▒Γ└º╟╤ DSO╕ª ┴÷┐°╟╤┤┘.
  54.     └╠ ╕≡╡Γ└║ <module>core</module>╕ª ┴ª┐▄╟╧░φ DSO░í
  55.     ╡╔ ╝÷ ╛°┤┬ └»└╧╟╤ ╕≡╡Γ└╠┤┘. ╜╟┴ª╖╬ ┤┘╕Ñ ╕≡╡τ ╛╞╞──í ╕≡╡Γ└║
  56.     <a href="install.html">╝│─í ╣«╝¡</a>┐í╝¡ ╝│╕φ╟╤
  57.     <code>configure</code>└╟ <code>--enable-<em>module</em>=shared</code>
  58.     ┐╔╝╟└╗ ╗τ┐δ╟╧┐⌐ DSO╖╬ ──╞─└╧╟╥ ╝÷ └╓┤┘. ╕≡╡Γ└╗
  59.     <code>mod_foo.so</code>┐═ ░░└╠ DSO╖╬ ──╞─└╧╟╤╚─ <code>httpd.conf</code>
  60.     ╞─└╧┐í <module>mod_so</module>└╟
  61.     <directive module="mod_so">LoadModule</directive> ╕φ╖╔╛ε╕ª
  62.     ╗τ┐δ╟╧┐⌐ ╝¡╣÷ ╜├└█╜├ ╚ñ└║ └τ╜├└█╜├ ▒╫ ╕≡╡Γ└╗ └╨╛ε╡Θ└╧ ╝÷
  63.     └╓┤┘.</p>
  64.  
  65.     <p>╛╞╞──í ╕≡╡Γ(╞»╚≈ ┴ª╗∩└┌░í ╕╕╡τ ╕≡╡Γ)╖╬ ╗τ┐δ╟╥ DSO ╞─└╧└╗ ╜▒░╘
  66.     ╕╕╡Θ▒Γ└º╟╪ <a href="programs/apxs.html">apxs</a> (<em>APache
  67.     eXtenSion</em>)╢≤┤┬ ╗⌡╖╬┐ε ┴÷┐° ╟┴╖╬▒╫╖Ñ└╠ └╓┤┘. └╠ ╟┴╖╬▒╫╖Ñ└║
  68.     ╛╞╞──í ╝╥╜║ ╞«╕« <em>╣█┐í╝¡</em> DSO╖╬ ╗τ┐δ╟╥ ╕≡╡Γ└╗
  69.     ──╞─└╧╟╥╢º ╗τ┐δ╟╤┤┘. ░││Σ└║ ╜▒┤┘. ╛╞╞──í╕ª ╝│─í╟╥╢º
  70.     <code>configure</code>┐═ <code>make install</code>└╠
  71.     ╛╞╞──í C ╟∞┤⌡╞─└╧└╗ ╝│─í╟╧░φ, DSO ╞─└╧└╗ ──╞─└╧╟╧▒Γ└º╟╤
  72.     ╟├╖í╞√ ╞»└»└╟ ──╞─└╧╖» ┐╔╝╟░· ╕╡─┐ ┐╔╝╟└╗ <code>apxs</code>
  73.     ╟┴╖╬▒╫╖Ñ┐í ▒Γ╖╧╟╤┤┘. ▒╫╖í╝¡ <code>apxs</code>╕ª ╗τ┐δ╟╧┤┬ ╗τ┐δ└┌┤┬
  74.     ╛╞╞──í ╣Φ╞≈║╗ ╝╥╜║ ╞«╕«╛°└╠, ╢╟ DSO ┴÷┐°└╗ └º╟╤ ╟├╖í╞√ ╞»└»└╟
  75.     ──╞─└╧╖» ┐╔╝╟┐═ ╕╡─┐ ┐╔╝╟┐í ╜┼░µ└╗ ╛▓┴÷╛╩░φ └┌╜┼└╟ ╛╞╞──í
  76.     ╕≡╡Γ ╝╥╜║╕ª ──╞─└╧╟╥ ╝÷ └╓┤┘.</p>
  77. </section>
  78.  
  79. <section id="usage"><title>╗τ┐δ╣² ┐Σ╛α</title>
  80.  
  81.     <p>Apache 2.0└╟ DSO ▒Γ┤╔┐í ┤δ╟╤ ┬¬░φ ░ú╖½╟╤ ┐Σ╛α└╠┤┘:</p>
  82.  
  83.     <ol>
  84.       <li>
  85.         <em>╣Φ╞≈║╗┐í └╓┤┬</em> ╛╞╞──í ╕≡╡Γ└╗ ──╞─└╧╟╧░φ ╝│─í╟╧┤┬
  86.         ░µ┐∞. ┐╣╕ª ╡Θ╛ε <code>mod_foo.c</code>╕ª DSO
  87.         <code>mod_foo.so</code>╖╬:
  88.  
  89. <example>
  90. $ ./configure --prefix=/path/to/install --enable-foo=shared<br />
  91. $ make install
  92. </example>
  93.       </li>
  94.  
  95.       <li>
  96.         <em>┴ª╗∩└┌░í ╕╕╡τ</em> ╛╞╞──í ╕≡╡Γ└╗ ──╞─└╧╟╧░φ ╝│─í╟╧┤┬
  97.         ░µ┐∞. ┐╣╕ª ╡Θ╛ε <code>mod_foo.c</code>╕ª DSO
  98.         <code>mod_foo.so</code>╖╬:
  99.  
  100. <example>
  101. $ ./configure --add-module=module_type:/path/to/3rdparty/mod_foo.c --enable-foo=shared<br />
  102. $ make install
  103. </example>
  104.       </li>
  105.  
  106.       <li>
  107.         ░°└» ╕≡╡Γ└╗ <em>│¬┴▀┐í ╗τ┐δ╟╧▒Γ└º╟╪</em> ╛╞╞──í╕ª ▒╕╝║╟╧┤┬
  108.         ░µ┐∞:
  109.  
  110. <example>
  111. $ ./configure --enable-so<br />
  112. $ make install
  113. </example>
  114.       </li>
  115.  
  116.       <li>
  117.         <em>┴ª╗∩└┌░í ╕╕╡τ</em> ╛╞╞──í ╕≡╡Γ└╗ ──╞─└╧╟╧░φ ╝│─í╟╧┤┬
  118.         ░µ┐∞. <a href="programs/apxs.html">apxs</a>╕ª ╗τ┐δ╟╧┐⌐
  119.         ╛╞╞──í ╝╥╜║ ╞«╕« <em>╣█┐í╝¡</em> <code>mod_foo.c</code>╕ª
  120.         DSO <code>mod_foo.so</code>╖╬:
  121.  
  122. <example>
  123. $ cd /path/to/3rdparty<br />
  124. $ apxs -c mod_foo.c<br />
  125. $ apxs -i -a -n foo mod_foo.la
  126. </example>
  127.       </li>
  128.     </ol>
  129.  
  130.     <p>╕≡╡τ ░µ┐∞ └╧┤▄ ░°└» ╕≡╡Γ└╠ ──╞─└╧╡╟╕Θ, <code>httpd.conf</code>┐í
  131.     <directive module="mod_so">LoadModule</directive> ┴÷╜├╛ε╕ª
  132.     ╗τ┐δ╟╧┐⌐ ╛╞╞──í░í ▒╫ ╕≡╡Γ└╗ └╨╛ε╡Θ└╠░╘ ╕╕╡τ┤┘.</p>
  133. </section>
  134.  
  135. <section id="background"><title>╣Φ░µ┴÷╜─</title>
  136.  
  137.     <p>╟÷┤δ└√└╬ └»┤╨╜║╖∙┐í┤┬ <em>╡┐└√░°└»░┤├╝</em> (DSO)└╟
  138.     ╡┐└√ ╕╡┼╖/╖╬╡∙(dynamic linking/loading)└╠╢≤░φ ╟╧┐⌐, ╞»║░╟╤
  139.     ╟ⁿ╜─└╟ ╜╟╟α─┌╡σ ┴╢░ó└╗ ╕╕╡Θ╛ε ╜╟╟α┴▀└╬ ╜╟╟α╟┴╖╬▒╫╖Ñ└╟
  140.     ┴╓╝╥░°░ú┐í └╨╛ε╡Θ└╠┤┬ ╕┌┴° ▒Γ┤╔└╠ └╓┤┘.</p>
  141.  
  142.     <p>║╕┼δ ╡╬░í┴÷ ╣µ╣²└╕╖╬ └╨╛ε╡Θ└╧ ╝÷ └╓┤┘. ╟╧│¬┤┬ ╜╟╟α╟┴╖╬▒╫╖Ñ└╠
  143.     ╜├└█╟╥╢º <code>ld.so</code>╢≤┤┬ ╜├╜║┼█ ╟┴╖╬▒╫╖Ñ└╠ └┌╡┐└╕╖╬
  144.     └╨╛ε╡Θ└╠┤┬ ░µ┐∞░φ, ┤┘╕Ñ ╟╧│¬┤┬ ╜╟╟α┴▀└╬ ╟┴╖╬▒╫╖Ñ└╠
  145.     <code>dlopen()/dlsym()</code> ╜├╜║┼█╚ú├Γ╖╬ └»┤╨╜║ ╖╬┤⌡(loader)└╟
  146.     ╜├╜║┼█ └╬┼═╞Σ└╠╜║└╗ ╗τ┐δ╟╧┐⌐ ┴≈┴ó └╨╛ε╡Θ└╠┤┬ ░µ┐∞┤┘.</p>
  147.  
  148.     <p>├╣╣°┬░ ░µ┐∞ DSO╕ª ║╕┼δ <em>░°└»╢≤└╠║Ω╖»╕«(shared libraries)</em>
  149.     ╚ñ└║ <em>DSO ╢≤└╠║Ω╖»╕«</em>╢≤░φ ║╬╕ú╕τ, ╞─└╧└║
  150.     <code>libfoo.so</code>│¬ <code>libfoo.so.1.2</code> ░░└║
  151.     └╠╕º└╗ ░í┴°┤┘. └╠╡Θ└║ ╜├╜║┼█ ╡≡╖║┼Σ╕«(║╕┼δ <code>/usr/lib</code>)┐í
  152.     └╓░φ, ──╞─└╧╜├ ╕╡─┐ ╕φ╖╔╛ε┐í <code>-lfoo</code>╕ª ┴╓╛ε
  153.     ╜╟╟α╞─└╧░· ┐¼░ß╟╤┤┘. └╠╖╕░╘ ┴≈┴ó ╜ß┴╪ ╢≤└╠║Ω╖»╕«┤┬ ╜╟╟α╞─└╧┐í
  154.     ┬ⁿ┴╢╡╟┐⌐╝¡, ╟┴╖╬▒╫╖Ñ└╠ ╜├└█╟╥╢º ╕╡─┐ ┐╔╝╟ <code>-R</code>╖╬
  155.     ┴≈┴ó ┴÷┴ñ╟╤ ░µ╖╬, ╚»░µ║»╝÷ <code>LD_LIBRARY_PATH</code>╖╬
  156.     ┴÷┴ñ╟╤ ░µ╖╬ ╚ñ└║ <code>/usr/lib</code>┐í╝¡ └»┤╨╜║ ╖╬┤⌡░í
  157.     <code>libfoo.so</code>╕ª ├ú└╗ ╝÷ └╓┤┘. ▒╫╖»╕Θ ╜╟╟α╟┴╖╬▒╫╖Ñ└╟
  158.     (╛╞┴≈ ╕°├ú└║(unresolved)) ╜╔║╝(symbol)└╗ DSO┐í╝¡ ├ú░╘╡╚┤┘.</p>
  159.  
  160.     <p>DSO┤┬ ║╕┼δ ╜╟╟α╟┴╖╬▒╫╖Ñ└╟ ╜╔║╝└╗ ├ú┴÷╛╩▒Γ ╢º╣«┐í (DSO░í
  161.     └τ╗τ┐δ░í┤╔╟╤ └╧╣▌└√└╬ ─┌╡σ ╢≤└╠║Ω╖»╕«└╠╣╟╖╬) ├ú▒Γ┤┬ ┐⌐▒Γ╝¡
  162.     │í│¡┤┘. └»┤╨╜║ ╖╬┤⌡░í ╜╔║╝ ├ú▒Γ╕ª ┐╧└ⁿ╚≈ ┤π┤τ╟╧╣╟╖╬ ╜╟╟α╟┴╖╬▒╫╖Ñ└╠
  163.     ┴≈┴ó DSO┐í╝¡ ╜╔║╝└╗ ├ú└╗ ╟╩┐Σ░í ╛°┤┘. (╗τ╜╟ <code>ld.so</code>╕ª
  164.     ║╬╕ú┤┬ ─┌╡σ┤┬ ┴ñ└√└╠ ╛╞┤╤ ╕≡╡τ ╜╟╟α╟┴╖╬▒╫╖Ñ┐í ╕╡┼⌐╡╟┤┬ ╜╟╟α╜├
  165.     ╜├└█─┌╡σ└╟ └╧║╬┤┘.) ░°┼δ╡╚ ╢≤└╠║Ω╖»╕« ─┌╡σ╕ª ╡┐└√└╕╖╬ └╨╛ε╡Θ└╠┤┬
  166.     └σ┴í└║ ╕φ╚«╟╧┤┘. ╢≤└╠║Ω╖»╕« ─┌╡σ░í ╕≡╡τ ╟┴╖╬▒╫╖Ñ┐í ┴▀║╣╟╪╝¡
  167.     └·└σ╡╟┤┬ ┤δ╜┼ <code>libc.so</code>┐═ ░░└║ ╜├╜║┼█ ╢≤└╠║Ω╖»╕«┐í
  168.     ╟╤╣°╕╕ └·└σ╡╟▒Γ ╢º╣«┐í ╡≡╜║┼⌐ ░°░ú└╠ └²╛α╡╚┤┘.</p>
  169.  
  170.     <p>╡╬╣°┬░ ░µ┐∞ DSO╕ª ║╕┼δ <em>░°└»░┤├╝(shared objects)</em>
  171.     ╚ñ└║ <em>DSO ╞─└╧</em>└╠╢≤░φ ║╬╕ú░φ, (▒╘─ó╗≤ └╠╕º└║
  172.     <code>foo.so</code>└╠┴÷╕╕) ╞─└╧└╟ ╚«└σ└┌┤┬ └┌└»╖╙┤┘. └╠
  173.     ╞─└╧╡Θ└║ ║╕┼δ ╟┴╖╬▒╫╖Ñ └┌├╝ ╡≡╖║┼Σ╕«┐í └º─í╟╧░φ ╜╟╟α╟┴╖╬▒╫╖Ñ┐í
  174.     └┌╡┐└╕╖╬ ┐¼░ß╡╟┴÷ ╛╩┤┬┤┘. ┤δ╜┼ ╜╟╟α╟┴╖╬▒╫╖Ñ└║ ╜╟╟α╜├
  175.     <code>dlopen()</code>└╗ ╗τ┐δ╟╧┐⌐ DSO╕ª ┴╓╝╥░°░ú┐í
  176.     ┴≈┴ó └╨╛ε╡Θ┐⌐╛▀ ╟╤┤┘. └╠╢º ╜╟╟α╟┴╖╬▒╫╖Ñ└║ DSO┐í╝¡ ╜╔║╝└╗
  177.     ├ú┴÷ ╛╩┤┬┤┘. ┤δ╜┼ ╛╒┐í╝¡ ║╗ └»┤╨╜║ ╖╬┤⌡┤┬ └┌╡┐└╕╖╬ ╜╟╟α╞─└╧░·
  178.     ╜╟╟α╞─└╧└╠ └╠╣╠ └╨╛ε╡Θ└╬ DSO ╢≤└╠║Ω╖»╕«(╞»╚≈ ╟╫╗≤ ┴╕└τ╟╧┤┬
  179.     <code>libc.so</code>└╟ ╕≡╡τ ╜╔║╝)┐í╝¡ DSO└╟ (╛╞┴≈ ╕°├ú└║)
  180.     ╜╔║╝└╗ ├ú┤┬┤┘. ▒╫╖í╝¡ DSO┤┬ ╕╢─í ├│└╜║╬┼═ ╜╟╟α╟┴╖╬▒╫╖Ñ┐í
  181.     ┴ñ└√└╕╖╬ ╕╡┼⌐╡╚░═░· ░░└╠ ╜╟╟α╞─└╧└╟ ╜╔║╝└╗ ╛╦░╘╡╚┤┘.</p>
  182.  
  183.     <p>DSO└╟ API╕ª └╠┐δ╟╧▒Γ└º╟╪╝¡ ╕╢┴÷╕╖└╕╖╬ ╜╟╟α╟┴╖╬▒╫╖Ñ└║
  184.     <code>dlsym()</code>└╕╖╬ DSO┐í╝¡ ╞»┴ñ ╜╔║╝└╗ ├ú╛╞╝¡, ╛╒└╕╖╬
  185.     ╗τ┐δ╟╧▒Γ└º╟╪ ╡≡╜║╞╨─í(dispatch) ╟Ñ <em>╡ε</em>┐í └·└σ╟╤┤┘.
  186.     ┤┘╕Ñ ╕╗╖╬ ╜╟╟α╟┴╖╬▒╫╖Ñ└║ ╗τ┐δ╟╥ ╕≡╡τ ╜╟║╝└╗ ┴≈┴ó ├ú╛╞╛▀╟╤┤┘.
  187.     └╠╖▒ ▒╕┴╢└╟ └σ┴í└║ ╟┴╖╬▒╫╖Ñ└╟ └╧║╬╕ª ╟┴╖╬▒╫╖Ñ└╠
  188.     ╟╩┐Σ╟╥╢º▒ε┴÷ └╨╛ε╡Θ└╠┴÷ ╛╩╛╞╡╡ (▒╫╖í╝¡ ╕▐╕≡╕«╕ª │╢║±╟╧┴÷
  189.     ╛╩░╘) ╡╚┤┘┤┬ ┴í└╠┤┘. ▒Γ║╗ ╟┴╖╬▒╫╖Ñ└╟ ▒Γ┤╔└╗ ╚«└σ╟╧▒Γ└º╟╪
  190.     ╟╩┐Σ╟╤ ░µ┐∞ └╠ ║╬║╨└╗ ╡┐└√└╕╖╬ └╨╛ε╡Θ└╧ ╝÷ └╓┤┘.</p>
  191.  
  192.     <p>└╠╖▒ DSO ▒╕┴╢░í └┌┐¼╜║╖┤░╘ ║╕└╠┴÷╕╕, ├╓╝╥╟╤ ╛ε╖┴┐ε ┴í└╠
  193.     ╟╤░í┴÷└╓┤┘. ╟┴╖╬▒╫╖Ñ└╗ ╚«└σ╟╧▒Γ└º╟╪ DSO╕ª ╗τ┐δ╟╥╢º DSO░í
  194.     ╜╟╟α╟┴╖╬▒╫╖Ñ└╟ ╜╔║╝└╗ ├ú┤┬ └╧└╠┤┘. ┐╓? DSO░í ╜╟╟α╟┴╖╬▒╫╖Ñ└╟
  195.     ╜╔║╝└╗ "┐¬└╕╖╬ ├ú┤┬ ░═"└║ (╢≤└╠║Ω╖»╕«┤┬ └┌╜┼└╗ ╗τ┐δ╟╧┤┬ ╟┴╖╬▒╫╖Ñ┐í
  196.     ┤δ╟╪ ╕≡╕Ñ┤┘┤┬) ╢≤└╠║Ω╖»╕« ╝│░Φ┐í ╣▌╟╧╕τ, ╕≡╡τ ╟├╖í╞√┐í╝¡
  197.     ┴÷┐°╡╟┴÷╛╩░φ ╟Ñ┴╪╚¡╡╟┴÷╡╡ ╛╩╛╥▒Γ ╢º╣«└╠┤┘. ╜╟┴ª╖╬ ╜╟╟α╞─└╧└╟
  198.     └ⁿ┐¬╜╔║╝(global symbol)└║ ║╕┼δ └═╜║╞≈╞«(export)╡╟┴÷ ╛╩▒Γ╢º╣«┐í
  199.     DSO░í ╗τ┐δ╟╥ ╝÷ ╛°┤┘. DSO╕ª ╗τ┐δ╟╧┐⌐ ╜╟╟α┴▀ ╟┴╖╬▒╫╖Ñ└╗ ╚«└σ╟╧╖┴╕Θ
  200.     ╕╡─┐┐í░╘ ╕≡╡τ └ⁿ┐¬╜╔║╝└╗ └═╜║╞≈╞«╟╧╡╡╖╧ ░¡┴ª╟╧┤┬ ░═└╠ ┴╓╡╚
  201.     ╟╪░ß├Ñ└╠┤┘.</p>
  202.  
  203.     <p>░°└»╢≤└╠║Ω╖»╕«┤┬ DSO ╣µ╜─└╟ ╝│░Φ┐°─ó┤δ╖╬ └ⁿ╟ⁿ└√└╠▒Γ╢º╣«┐í
  204.     ┐ε┐╡├╝┴ª░í ┴ª░°╟╧┤┬ ░┼└╟ ╕≡╡τ ┴╛╖∙└╟ ╢≤└╠║Ω╖»╕«░í ╗τ┐δ╟╤┤┘.
  205.     ╣▌┤δ╖╬ ╕╣└║ ╟┴╖╬▒╫╖Ñ└║ ╟┴╖╬▒╫╖Ñ└╗ ╚«└σ╟╧▒Γ└º╟╪ ░°└»░┤├╝╕ª
  206.     ╗τ┐δ╟╧┴÷ ╛╩┤┬┤┘.</p>
  207.  
  208.     <p>1998│Γ ╜╟╟α┴▀ ╜╟┴ª╖╬ ▒Γ┤╔└╗ ╚«└σ╟╧▒Γ└º╟╪ DSO ▒╕┴╢╕ª ╗τ┐δ╟╤
  209.     ╝╥╟┴╞«┐■╛ε ╞╨┼░┴÷┤┬ (XS ▒╕┴╢┐═ DynaLoader ╕≡╡Γ└╗ ╗τ┐δ╟╤)
  210.     Perl 5, Netscape Server <em>╡ε</em>└╕╖╬ ╡σ╣░╛·┤┘. ╛╞╞──í┤┬
  211.     └╠╣╠ ▒Γ┤╔└╗ ╚«└σ╟╧▒Γ└º╟╪ ╕≡╡Γ ░││Σ└╗ ╗τ┐δ╟▀░φ ┐▄║╬ ╕≡╡Γ└╗
  212.     ╛╞╞──í ╟┘╜╔▒Γ┤╔┐í ┐¼░ß╟╧▒Γ└º╟╪ │╗║╬└√└╕╖╬ ╡≡╜║╞╨─í╕±╖╧└╗
  213.     └╠┐δ╟╤ ┴ó▒┘╣µ╣²└╗ ╗τ┐δ╟▀▒Γ╢º╣«┐í 1.3 ╣÷└ⁿ║╬┼═ └╠ ┤δ┐¡┐í ╟╒╖∙╟▀┤┘.
  214.     ▒╫╖í╝¡ ╛╞╞──í┤┬ ╜╟╟α┴▀ ╕≡╡Γ└╗ └╨╛ε╡Θ└╠┤┬╡Ñ DSO╕ª ╗τ┐δ╟╧╡╡╖╧
  215.     ┐ε╕φ┴÷┐÷┴│┤┘.</p>
  216. </section>
  217.  
  218. <section id="advantages"><title>└σ┤▄┴í</title>
  219.  
  220.     <p>╛╒┐í╝¡ ╕╗╟╤ DSO╕ª ╗τ┐δ╟╧╕Θ ┤┘└╜░· ░░└║ └σ┴í└╠ └╓┤┘:</p>
  221.  
  222.     <ul>
  223.       <li>╜╟┴ª ╝¡╣÷ ╟┴╖╬╝╝╜║░í ──╞─└╧╜├ <code>configure</code>
  224.       ┐╔╝╟┤δ╜┼ <code>httpd.conf</code>└╟ <directive
  225.       module="mod_so">LoadModule</directive>└╗ ╗τ┐δ╟╧┐⌐ ╜╟╟α┴▀┐í
  226.       ░ß╟╒╡╟╣╟╖╬ ╝¡╣÷ ╞╨┼░┴÷ ╜╟╟α└╠ ┤⌡ └»┐¼╟╧┤┘. ┐╣╕ª ╡Θ╛ε ╟╤╣°└╟
  227.       ╛╞╞──í ╝│─í╕╕└╕╖╬ ┤┘╕Ñ ╝¡╣÷(╟Ñ┴╪ ╣÷└ⁿ░· SSL ╣÷└ⁿ, ├╓╝╥╚¡
  228.       ╣÷└ⁿ░· ▒Γ┤╔├▀░í ╣÷└ⁿ [mod_perl, PHP3] <em>╡ε</em>)╕ª ╜╟╟α╟╥
  229.       ╝÷ └╓┤┘.</li>
  230.  
  231.       <li>╝¡╣÷┤┬ ╝│─í╚─┐í╡╡ ┴ª╗∩└┌░í ╕╕╡τ ╕≡╡Γ└╗ ╗τ┐δ╟╧┐⌐ ╜▒░╘
  232.       ╚«└σ╟╥ ╝÷ └╓┤┘. ├╓╝╥╟╤ ▒Γ╛≈└╟ ╞╨┼░┴÷ ┴ª└█└┌┤┬ ╛╞╞──í ╟┘╜╔
  233.       ╞╨┼░┴÷┐═ ║░╡╡╖╬ PHP3, mod_perl, mod_fastcgi <em>╡ε</em>└╗
  234.       ├▀░í ╞╨┼░┴÷╖╬ ╕╕╡Θ ╝÷ └╓╛ε╝¡ ┼½ └╠╡µ└╠┤┘.</li>
  235.  
  236.       <li>DSO┐═ <code>apxs</code>╕ª ░í┴÷░φ ╛╞╞──í ╝╥╜║ ╞«╕« ╣█┐í╝¡
  237.       └█╛≈╟╧░φ <code>apxs -i</code>┐═ <code>apachectl restart</code>
  238.       ╕φ╖╔╛ε╕╕└╕╖╬ ╟÷└τ ░│╣▀╟╤ ╕≡╡Γ└╟ ╗⌡ ╣÷└ⁿ└╗ ╜╟╟α┴▀└╬ ╛╞╞──í
  239.       ╝¡╣÷┐í ╣▌┐╡╟╥ ╝÷ └╓╛ε╝¡ ┤⌡ ╜▒░╘ ╛╞╞──í ╕≡╡Γ└╗ ░│╣▀╟╥ ╝÷
  240.       └╓┤┘.</li>
  241.     </ul>
  242.  
  243.     <p>DSO┤┬ ┤┘└╜░· ░░└║ ┤▄┴í└╠ └╓┤┘:</p>
  244.  
  245.     <ul>
  246.       <li>╟┴╖╬▒╫╖Ñ└╟ ┴╓╝╥░°░ú┐í ─┌╡σ╕ª ╡┐└√└╕╖╬ └╨╛ε╡Θ└╠┤┬ ▒Γ┤╔└╗
  247.       ┴÷┐°╟╧┴÷╛╩┤┬ ┐ε┐╡├╝┴ª░í └╓▒Γ ╢º╣«┐í ╕≡╡τ ╟├╖í╞√┐í╝¡ DSO╕ª
  248.       ╗τ┐δ╟╥ ╝÷ ╛°┤┘.</li>
  249.  
  250.       <li>└»┤╨╜║ ╖╬┤⌡░í ╜╔║╝└╗ ├ú╛╞╛▀╟╧▒Γ ╢º╣«┐í ╝¡╣÷ ╜├└█└╠
  251.       ╛α 20% ┴ñ╡╡ ┤╩╛ε┴°┤┘.</li>
  252.  
  253.       <li>╝¡╣÷┤┬ └º─í╡╢╕│─┌╡σ(position independent code, PIC)
  254.       ╢º╣«┐í └²┤δ┴╓╝╥┴÷┴ñ(absolute addressing)║╕┤┘ ┤└╕░
  255.       ╗≤┤δ┴╓╝╥┴÷┴ñ(relative addressing)└╟ ║╣└Γ╟╤ ╛ε╝└║φ╖» ▒Γ╣²└╠
  256.       ╟╩┐Σ╟╧╣╟╖╬ ╛ε╢▓ ╟├╖í╞√┐í╝¡ ╜╟╟α╜├ ╛α 5% ┴ñ╡╡ ┤╩┤┘.</li>
  257.  
  258.       <li>DSO ╕≡╡Γ└╗ ┤┘╕Ñ DSO▒Γ╣▌ ╢≤└╠║Ω╖»╕«(<code>ld -lfoo</code>)┐í
  259.       ╕╡┼⌐╟╥ ╝÷ ╛°┤┬ ╟├╖í╞√└╠ └╓▒Γ╢º╣«┐í (┐╣╕ª ╡Θ╛ε ELF▒Γ╣▌
  260.       ╟├╖í╞√└║ ┴÷┐°╟╧┴÷╕╕ a.out▒Γ╣▌ ╟├╖í╞√└║ ║╕┼δ └╠ ▒Γ┤╔└╗
  261.       ┴÷┐°╟╧┴÷ ╛╩┤┬┤┘) ╕≡╡τ ┴╛╖∙└╟ ╕≡╡Γ┐í DSO╕ª ╗τ┐δ╟╥ ╝÷ ╛°┤┘.
  262.       ┤┘╕Ñ ╕╗╖╬ DSO ╞─└╧╖╬ ──╞─└╧╟╧┤┬ ╕≡╡Γ└║ ╛╞╞──í ╟┘╜╔░· ╛╞╞──í
  263.       ╟┘╜╔└╠ ╗τ┐δ╟╧┤┬ C ╢≤└╠║Ω╖»╕«(<code>libc</code>)┐═ ┤┘╕Ñ
  264.       ╡┐└√/┴ñ└√ ╢≤└╠║Ω╖»╕«, └º─í╡╢╕│─┌╡σ╕ª ┤π░φ └╓┤┬ ┴ñ└√ ╢≤└╠║Ω╖»╕«
  265.       ╛╞─½└╠║Ω(<code>libfoo.a</code>)└╟ ╜╔║╝╕╕└╗ ╗τ┐δ╟╥ ╝÷ └╓┤┘.
  266.       ┤┘╕Ñ ─┌╡σ╕ª ╗τ┐δ╟╧╖┴╕Θ ╛╞╞──í ╟┘╜╔└╠ ▒╫░═└╗ ┬ⁿ┴╢╟╧┤°┴÷,
  267.       <code>dlopen()</code>└╕╖╬ ┴≈┴ó ─┌╡σ╕ª └╨╛ε╡Θ┐⌐╛▀ ╟╤┤┘.</li>
  268.     </ul>
  269.  
  270. </section>
  271.  
  272. </manualpage>
  273.