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: 105989:420990 (outdated) -->
7 Licensed to the Apache Software Foundation (ASF) under one or more
8 contributor license agreements. See the NOTICE file distributed with
9 this work for additional information regarding copyright ownership.
10 The ASF licenses this file to You under the Apache License, Version 2.0
11 (the "License"); you may not use this file except in compliance with
12 the License. You may obtain a copy of the License at
14 http://www.apache.org/licenses/LICENSE-2.0
16 Unless required by applicable law or agreed to in writing, software
17 distributed under the License is distributed on an "AS IS" BASIS,
18 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
19 See the License for the specific language governing permissions and
20 limitations under the License.
23 <manualpage metafile="dso.xml.meta">
25 <title>µ¿Àû°øÀ¯°´Ã¼ (DSO) Áö¿ø</title>
28 <p>¾ÆÆÄÄ¡ À¥¼¹ö´Â °ü¸®ÀÚ°¡ ¸ðµâµéÀ» ¼±ÅÃÇÏ¿© ¼¹ö¿¡ Æ÷ÇÔÇÒ
29 ±â´ÉÀ» °áÁ¤ÇÒ ¼ö ÀÖ´Â ¸ðµâÈµÈ ÇÁ·Î±×·¥ÀÌ´Ù. ¼¹ö¸¦ ÄÄÆÄÇÒ¶§
30 <code>httpd</code> ½ÇÇàÆÄÀÏ¿¡ Á¤ÀûÀ¸·Î ¸ðµâÀ» ÄÄÆÄÀÏÇÒ
31 ¼ö ÀÖ´Ù. ¾Æ´Ï¸é ¸ðµâÀ» <code>httpd</code> ½ÇÇàÆÄÀÏ°ú
32 ºÐ¸®ÇÏ¿© µ¿Àû°øÀ¯°´Ã¼(Dynamic Shared Objects, DSO)·Î ÄÄÆÄÀÏÇÒ
33 ¼ö ÀÖ´Ù. DSO ¸ðµâÀº ¼¹ö¸¦ ÄÄÆÄÀÏÇÒ¶§ ÄÄÆÄÀÏÇϰųª, Apache
34 Extension Tool (<a href="programs/apxs.html">apxs</a>)À»
35 »ç¿ëÇÏ¿© ³ªÁß¿¡ ÄÄÆÄÀÏÇÏ¿© Ãß°¡ÇÒ ¼ö ÀÖ´Ù.</p>
37 <p>ÀÌ ¹®¼´Â DSO ¸ðµâ »ç¿ë¹ý°ú ¹è°æ ÀÌ·ÐÀ» ¼³¸íÇÑ´Ù.</p>
41 <section id="implementation"><title>±¸Çö</title>
45 <module>mod_so</module>
48 <directive module="mod_so">LoadModule</directive>
52 <p>¾ÆÆÄÄ¡ Çٽɿ¡ Á¤ÀûÀ¸·Î ÄÄÆÄÀÏÇؾßÇÒ
53 <module>mod_so.c</module>¶ó´Â ¸ðµâÀº ¾ÆÆÄÄ¡ ¸ðµâÀ»
54 ÀоîµéÀ̱âÀ§ÇÑ DSO¸¦ Áö¿øÇÑ´Ù.
55 ÀÌ ¸ðµâÀº <module>core</module>¸¦ Á¦¿ÜÇÏ°í DSO°¡
56 µÉ ¼ö ¾ø´Â À¯ÀÏÇÑ ¸ðµâÀÌ´Ù. ½ÇÁ¦·Î ´Ù¸¥ ¸ðµç ¾ÆÆÄÄ¡ ¸ðµâÀº
57 <a href="install.html">¼³Ä¡ ¹®¼</a>¿¡¼ ¼³¸íÇÑ
58 <code>configure</code>ÀÇ <code>--enable-<em>module</em>=shared</code>
59 ¿É¼ÇÀ» »ç¿ëÇÏ¿© DSO·Î ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Ù. ¸ðµâÀ»
60 <code>mod_foo.so</code>¿Í °°ÀÌ DSO·Î ÄÄÆÄÀÏÇÑÈÄ <code>httpd.conf</code>
61 ÆÄÀÏ¿¡ <module>mod_so</module>ÀÇ
62 <directive module="mod_so">LoadModule</directive> ¸í·É¾î¸¦
63 »ç¿ëÇÏ¿© ¼¹ö ½ÃÀ۽à ȤÀº Àç½ÃÀ۽à ±× ¸ðµâÀ» ÀоîµéÀÏ ¼ö
66 <p>¾ÆÆÄÄ¡ ¸ðµâ(ƯÈ÷ Á¦»ïÀÚ°¡ ¸¸µç ¸ðµâ)·Î »ç¿ëÇÒ DSO ÆÄÀÏÀ» ½±°Ô
67 ¸¸µé±âÀ§ÇØ <a href="programs/apxs.html">apxs</a> (<em>APache
68 eXtenSion</em>)¶ó´Â »õ·Î¿î Áö¿ø ÇÁ·Î±×·¥ÀÌ ÀÖ´Ù. ÀÌ ÇÁ·Î±×·¥Àº
69 ¾ÆÆÄÄ¡ ¼Ò½º Æ®¸® <em>¹Û¿¡¼</em> DSO·Î »ç¿ëÇÒ ¸ðµâÀ»
70 ÄÄÆÄÀÏÇÒ¶§ »ç¿ëÇÑ´Ù. °³³äÀº ½±´Ù. ¾ÆÆÄÄ¡¸¦ ¼³Ä¡ÇÒ¶§
71 <code>configure</code>¿Í <code>make install</code>ÀÌ
72 ¾ÆÆÄÄ¡ C Çì´õÆÄÀÏÀ» ¼³Ä¡ÇÏ°í, DSO ÆÄÀÏÀ» ÄÄÆÄÀÏÇϱâÀ§ÇÑ
73 Ç÷¡Æû ƯÀ¯ÀÇ ÄÄÆÄÀÏ·¯ ¿É¼Ç°ú ¸µÄ¿ ¿É¼ÇÀ» <code>apxs</code>
74 ÇÁ·Î±×·¥¿¡ ±â·ÏÇÑ´Ù. ±×·¡¼ <code>apxs</code>¸¦ »ç¿ëÇÏ´Â »ç¿ëÀÚ´Â
75 ¾ÆÆÄÄ¡ ¹èÆ÷º» ¼Ò½º Æ®¸®¾øÀÌ, ¶Ç DSO Áö¿øÀ» À§ÇÑ Ç÷¡Æû ƯÀ¯ÀÇ
76 ÄÄÆÄÀÏ·¯ ¿É¼Ç¿Í ¸µÄ¿ ¿É¼Ç¿¡ ½Å°æÀ» ¾²Áö¾Ê°í ÀÚ½ÅÀÇ ¾ÆÆÄÄ¡
77 ¸ðµâ ¼Ò½º¸¦ ÄÄÆÄÀÏÇÒ ¼ö ÀÖ´Ù.</p>
80 <section id="usage"><title>»ç¿ë¹ý ¿ä¾à</title>
82 <p>Apache 2.0ÀÇ DSO ±â´É¿¡ ´ëÇÑ Âª°í °£·«ÇÑ ¿ä¾àÀÌ´Ù:</p>
86 <em>¹èÆ÷º»¿¡ ÀÖ´Â</em> ¾ÆÆÄÄ¡ ¸ðµâÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â
87 °æ¿ì. ¿¹¸¦ µé¾î <code>mod_foo.c</code>¸¦ DSO
88 <code>mod_foo.so</code>·Î:
91 $ ./configure --prefix=/path/to/install --enable-foo=shared<br />
97 <em>Á¦»ïÀÚ°¡ ¸¸µç</em> ¾ÆÆÄÄ¡ ¸ðµâÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â
98 °æ¿ì. ¿¹¸¦ µé¾î <code>mod_foo.c</code>¸¦ DSO
99 <code>mod_foo.so</code>·Î:
102 $ ./configure --add-module=module_type:/path/to/3rdparty/mod_foo.c --enable-foo=shared<br />
108 °øÀ¯ ¸ðµâÀ» <em>³ªÁß¿¡ »ç¿ëÇϱâÀ§ÇØ</em> ¾ÆÆÄÄ¡¸¦ ±¸¼ºÇÏ´Â
112 $ ./configure --enable-so<br />
118 <em>Á¦»ïÀÚ°¡ ¸¸µç</em> ¾ÆÆÄÄ¡ ¸ðµâÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â
119 °æ¿ì. <a href="programs/apxs.html">apxs</a>¸¦ »ç¿ëÇÏ¿©
120 ¾ÆÆÄÄ¡ ¼Ò½º Æ®¸® <em>¹Û¿¡¼</em> <code>mod_foo.c</code>¸¦
121 DSO <code>mod_foo.so</code>·Î:
124 $ cd /path/to/3rdparty<br />
125 $ apxs -c mod_foo.c<br />
126 $ apxs -i -a -n foo mod_foo.la
131 <p>¸ðµç °æ¿ì ÀÏ´Ü °øÀ¯ ¸ðµâÀÌ ÄÄÆÄÀϵǸé, <code>httpd.conf</code>¿¡
132 <directive module="mod_so">LoadModule</directive> Áö½Ã¾î¸¦
133 »ç¿ëÇÏ¿© ¾ÆÆÄÄ¡°¡ ±× ¸ðµâÀ» ÀоîµéÀÌ°Ô ¸¸µç´Ù.</p>
136 <section id="background"><title>¹è°æÁö½Ä</title>
138 <p>Çö´ëÀûÀÎ À¯´Ð½º·ù¿¡´Â <em>µ¿Àû°øÀ¯°´Ã¼</em> (DSO)ÀÇ
139 µ¿Àû ¸µÅ·/·Îµù(dynamic linking/loading)À̶ó°í ÇÏ¿©, Ưº°ÇÑ
140 Çü½ÄÀÇ ½ÇÇàÄÚµå Á¶°¢À» ¸¸µé¾î ½ÇÇàÁßÀÎ ½ÇÇàÇÁ·Î±×·¥ÀÇ
141 ÁÖ¼Ò°ø°£¿¡ ÀоîµéÀÌ´Â ¸ÚÁø ±â´ÉÀÌ ÀÖ´Ù.</p>
143 <p>º¸Åë µÎ°¡Áö ¹æ¹ýÀ¸·Î ÀоîµéÀÏ ¼ö ÀÖ´Ù. Çϳª´Â ½ÇÇàÇÁ·Î±×·¥ÀÌ
144 ½ÃÀÛÇÒ¶§ <code>ld.so</code>¶ó´Â ½Ã½ºÅÛ ÇÁ·Î±×·¥ÀÌ ÀÚµ¿À¸·Î
145 ÀоîµéÀÌ´Â °æ¿ì°í, ´Ù¸¥ Çϳª´Â ½ÇÇàÁßÀÎ ÇÁ·Î±×·¥ÀÌ
146 <code>dlopen()/dlsym()</code> ½Ã½ºÅÛÈ£Ãâ·Î À¯´Ð½º ·Î´õ(loader)ÀÇ
147 ½Ã½ºÅÛ ÀÎÅÍÆäÀ̽ºÀ» »ç¿ëÇÏ¿© Á÷Á¢ ÀоîµéÀÌ´Â °æ¿ì´Ù.</p>
149 <p>ù¹ø° °æ¿ì DSO¸¦ º¸Åë <em>°øÀ¯¶óÀ̺귯¸®(shared libraries)</em>
150 ȤÀº <em>DSO ¶óÀ̺귯¸®</em>¶ó°í ºÎ¸£¸ç, ÆÄÀÏÀº
151 <code>libfoo.so</code>³ª <code>libfoo.so.1.2</code> °°Àº
152 À̸§À» °¡Áø´Ù. À̵éÀº ½Ã½ºÅÛ µð·ºÅ丮(º¸Åë <code>/usr/lib</code>)¿¡
153 ÀÖ°í, ÄÄÆÄÀϽà ¸µÄ¿ ¸í·É¾î¿¡ <code>-lfoo</code>¸¦ ÁÖ¾î
154 ½ÇÇàÆÄÀÏ°ú ¿¬°áÇÑ´Ù. ÀÌ·¸°Ô Á÷Á¢ ½áÁØ ¶óÀ̺귯¸®´Â ½ÇÇàÆÄÀÏ¿¡
155 ÂüÁ¶µÇ¿©¼, ÇÁ·Î±×·¥ÀÌ ½ÃÀÛÇÒ¶§ ¸µÄ¿ ¿É¼Ç <code>-R</code>·Î
156 Á÷Á¢ ÁöÁ¤ÇÑ °æ·Î, ȯ°æº¯¼ö <code>LD_LIBRARY_PATH</code>·Î
157 ÁöÁ¤ÇÑ °æ·Î ȤÀº <code>/usr/lib</code>¿¡¼ À¯´Ð½º ·Î´õ°¡
158 <code>libfoo.so</code>¸¦ ãÀ» ¼ö ÀÖ´Ù. ±×·¯¸é ½ÇÇàÇÁ·Î±×·¥ÀÇ
159 (¾ÆÁ÷ ¸øãÀº(unresolved)) ½Éº¼(symbol)À» DSO¿¡¼ ã°ÔµÈ´Ù.</p>
161 <p>DSO´Â º¸Åë ½ÇÇàÇÁ·Î±×·¥ÀÇ ½Éº¼À» ãÁö¾Ê±â ¶§¹®¿¡ (DSO°¡
162 Àç»ç¿ë°¡´ÉÇÑ ÀϹÝÀûÀÎ ÄÚµå ¶óÀ̺귯¸®À̹ǷÎ) ã±â´Â ¿©±â¼
163 ³¡³´Ù. À¯´Ð½º ·Î´õ°¡ ½Éº¼ ã±â¸¦ ¿ÏÀüÈ÷ ´ã´çÇϹǷΠ½ÇÇàÇÁ·Î±×·¥ÀÌ
164 Á÷Á¢ DSO¿¡¼ ½Éº¼À» ãÀ» ÇÊ¿ä°¡ ¾ø´Ù. (»ç½Ç <code>ld.so</code>¸¦
165 ºÎ¸£´Â ÄÚµå´Â Á¤ÀûÀÌ ¾Æ´Ñ ¸ðµç ½ÇÇàÇÁ·Î±×·¥¿¡ ¸µÅ©µÇ´Â ½ÇÇà½Ã
166 ½ÃÀÛÄÚµåÀÇ ÀϺδÙ.) °øÅëµÈ ¶óÀ̺귯¸® Äڵ带 µ¿ÀûÀ¸·Î ÀоîµéÀÌ´Â
167 ÀåÁ¡Àº ¸íÈ®ÇÏ´Ù. ¶óÀ̺귯¸® Äڵ尡 ¸ðµç ÇÁ·Î±×·¥¿¡ Áߺ¹Çؼ
168 ÀúÀåµÇ´Â ´ë½Å <code>libc.so</code>¿Í °°Àº ½Ã½ºÅÛ ¶óÀ̺귯¸®¿¡
169 Çѹø¸¸ ÀúÀåµÇ±â ¶§¹®¿¡ µð½ºÅ© °ø°£ÀÌ Àý¾àµÈ´Ù.</p>
171 <p>µÎ¹ø° °æ¿ì DSO¸¦ º¸Åë <em>°øÀ¯°´Ã¼(shared objects)</em>
172 ȤÀº <em>DSO ÆÄÀÏ</em>À̶ó°í ºÎ¸£°í, (±ÔÄ¢»ó À̸§Àº
173 <code>foo.so</code>ÀÌÁö¸¸) ÆÄÀÏÀÇ È®ÀåÀÚ´Â ÀÚÀ¯·Ó´Ù. ÀÌ
174 ÆÄÀϵéÀº º¸Åë ÇÁ·Î±×·¥ ÀÚü µð·ºÅ丮¿¡ À§Ä¡ÇÏ°í ½ÇÇàÇÁ·Î±×·¥¿¡
175 ÀÚµ¿À¸·Î ¿¬°áµÇÁö ¾Ê´Â´Ù. ´ë½Å ½ÇÇàÇÁ·Î±×·¥Àº ½ÇÇà½Ã
176 <code>dlopen()</code>À» »ç¿ëÇÏ¿© DSO¸¦ ÁÖ¼Ò°ø°£¿¡
177 Á÷Á¢ Àоîµé¿©¾ß ÇÑ´Ù. À̶§ ½ÇÇàÇÁ·Î±×·¥Àº DSO¿¡¼ ½Éº¼À»
178 ãÁö ¾Ê´Â´Ù. ´ë½Å ¾Õ¿¡¼ º» À¯´Ð½º ·Î´õ´Â ÀÚµ¿À¸·Î ½ÇÇàÆÄÀÏ°ú
179 ½ÇÇàÆÄÀÏÀÌ ÀÌ¹Ì ÀоîµéÀÎ DSO ¶óÀ̺귯¸®(ƯÈ÷ Ç×»ó Á¸ÀçÇÏ´Â
180 <code>libc.so</code>ÀÇ ¸ðµç ½Éº¼)¿¡¼ DSOÀÇ (¾ÆÁ÷ ¸øãÀº)
181 ½Éº¼À» ã´Â´Ù. ±×·¡¼ DSO´Â ¸¶Ä¡ óÀ½ºÎÅÍ ½ÇÇàÇÁ·Î±×·¥¿¡
182 Á¤ÀûÀ¸·Î ¸µÅ©µÈ°Í°ú °°ÀÌ ½ÇÇàÆÄÀÏÀÇ ½Éº¼À» ¾Ë°ÔµÈ´Ù.</p>
184 <p>DSOÀÇ API¸¦ ÀÌ¿ëÇϱâÀ§Çؼ ¸¶Áö¸·À¸·Î ½ÇÇàÇÁ·Î±×·¥Àº
185 <code>dlsym()</code>À¸·Î DSO¿¡¼ ƯÁ¤ ½Éº¼À» ã¾Æ¼, ¾ÕÀ¸·Î
186 »ç¿ëÇϱâÀ§ÇØ µð½ºÆÐÄ¡(dispatch) Ç¥ <em>µî</em>¿¡ ÀúÀåÇÑ´Ù.
187 ´Ù¸¥ ¸»·Î ½ÇÇàÇÁ·Î±×·¥Àº »ç¿ëÇÒ ¸ðµç ½Çº¼À» Á÷Á¢ ã¾Æ¾ßÇÑ´Ù.
188 ÀÌ·± ±¸Á¶ÀÇ ÀåÁ¡Àº ÇÁ·Î±×·¥ÀÇ ÀϺθ¦ ÇÁ·Î±×·¥ÀÌ
189 ÇÊ¿äÇÒ¶§±îÁö ÀоîµéÀÌÁö ¾Ê¾Æµµ (±×·¡¼ ¸Þ¸ð¸®¸¦ ³¶ºñÇÏÁö
190 ¾Ê°Ô) µÈ´Ù´Â Á¡ÀÌ´Ù. ±âº» ÇÁ·Î±×·¥ÀÇ ±â´ÉÀ» È®ÀåÇϱâÀ§ÇØ
191 ÇÊ¿äÇÑ °æ¿ì ÀÌ ºÎºÐÀ» µ¿ÀûÀ¸·Î ÀоîµéÀÏ ¼ö ÀÖ´Ù.</p>
193 <p>ÀÌ·± DSO ±¸Á¶°¡ ÀÚ¿¬½º·´°Ô º¸ÀÌÁö¸¸, ÃÖ¼ÒÇÑ ¾î·Á¿î Á¡ÀÌ
194 ÇÑ°¡ÁöÀÖ´Ù. ÇÁ·Î±×·¥À» È®ÀåÇϱâÀ§ÇØ DSO¸¦ »ç¿ëÇÒ¶§ DSO°¡
195 ½ÇÇàÇÁ·Î±×·¥ÀÇ ½Éº¼À» ã´Â ÀÏÀÌ´Ù. ¿Ö? DSO°¡ ½ÇÇàÇÁ·Î±×·¥ÀÇ
196 ½Éº¼À» "¿ªÀ¸·Î ã´Â °Í"Àº (¶óÀ̺귯¸®´Â ÀÚ½ÅÀ» »ç¿ëÇÏ´Â ÇÁ·Î±×·¥¿¡
197 ´ëÇØ ¸ð¸¥´Ù´Â) ¶óÀ̺귯¸® ¼³°è¿¡ ¹ÝÇϸç, ¸ðµç Ç÷¡Æû¿¡¼
198 Áö¿øµÇÁö¾Ê°í Ç¥ÁØȵÇÁöµµ ¾Ê¾Ò±â ¶§¹®ÀÌ´Ù. ½ÇÁ¦·Î ½ÇÇàÆÄÀÏÀÇ
199 Àü¿ª½Éº¼(global symbol)Àº º¸Åë ÀͽºÆ÷Æ®(export)µÇÁö ¾Ê±â¶§¹®¿¡
200 DSO°¡ »ç¿ëÇÒ ¼ö ¾ø´Ù. DSO¸¦ »ç¿ëÇÏ¿© ½ÇÇàÁß ÇÁ·Î±×·¥À» È®ÀåÇÏ·Á¸é
201 ¸µÄ¿¿¡°Ô ¸ðµç Àü¿ª½Éº¼À» ÀͽºÆ÷Æ®Çϵµ·Ï °Á¦ÇÏ´Â °ÍÀÌ ÁÖµÈ
204 <p>°øÀ¯¶óÀ̺귯¸®´Â DSO ¹æ½ÄÀÇ ¼³°è¿øÄ¢´ë·Î ÀüÇüÀûÀ̱⶧¹®¿¡
205 ¿î¿µÃ¼Á¦°¡ Á¦°øÇÏ´Â °ÅÀÇ ¸ðµç Á¾·ùÀÇ ¶óÀ̺귯¸®°¡ »ç¿ëÇÑ´Ù.
206 ¹Ý´ë·Î ¸¹Àº ÇÁ·Î±×·¥Àº ÇÁ·Î±×·¥À» È®ÀåÇϱâÀ§ÇØ °øÀ¯°´Ã¼¸¦
209 <p>1998³â ½ÇÇàÁß ½ÇÁ¦·Î ±â´ÉÀ» È®ÀåÇϱâÀ§ÇØ DSO ±¸Á¶¸¦ »ç¿ëÇÑ
210 ¼ÒÇÁÆ®¿þ¾î ÆÐÅ°Áö´Â (XS ±¸Á¶¿Í DynaLoader ¸ðµâÀ» »ç¿ëÇÑ)
211 Perl 5, Netscape Server <em>µî</em>À¸·Î µå¹°¾ú´Ù. ¾ÆÆÄÄ¡´Â
212 ÀÌ¹Ì ±â´ÉÀ» È®ÀåÇϱâÀ§ÇØ ¸ðµâ °³³äÀ» »ç¿ëÇß°í ¿ÜºÎ ¸ðµâÀ»
213 ¾ÆÆÄÄ¡ Çٽɱâ´É¿¡ ¿¬°áÇϱâÀ§ÇØ ³»ºÎÀûÀ¸·Î µð½ºÆÐÄ¡¸ñ·ÏÀ»
214 ÀÌ¿ëÇÑ Á¢±Ù¹æ¹ýÀ» »ç¿ëÇ߱⶧¹®¿¡ 1.3 ¹öÀüºÎÅÍ ÀÌ ´ë¿¿¡ ÇÕ·ùÇß´Ù.
215 ±×·¡¼ ¾ÆÆÄÄ¡´Â ½ÇÇàÁß ¸ðµâÀ» ÀоîµéÀ̴µ¥ DSO¸¦ »ç¿ëÇϵµ·Ï
219 <section id="advantages"><title>Àå´ÜÁ¡</title>
221 <p>¾Õ¿¡¼ ¸»ÇÑ DSO¸¦ »ç¿ëÇÏ¸é ´ÙÀ½°ú °°Àº ÀåÁ¡ÀÌ ÀÖ´Ù:</p>
224 <li>½ÇÁ¦ ¼¹ö ÇÁ·Î¼¼½º°¡ ÄÄÆÄÀϽà <code>configure</code>
225 ¿É¼Ç´ë½Å <code>httpd.conf</code>ÀÇ <directive
226 module="mod_so">LoadModule</directive>À» »ç¿ëÇÏ¿© ½ÇÇàÁß¿¡
227 °áÇյǹǷΠ¼¹ö ÆÐÅ°Áö ½ÇÇàÀÌ ´õ À¯¿¬ÇÏ´Ù. ¿¹¸¦ µé¾î ÇѹøÀÇ
228 ¾ÆÆÄÄ¡ ¼³Ä¡¸¸À¸·Î ´Ù¸¥ ¼¹ö(Ç¥ÁØ ¹öÀü°ú SSL ¹öÀü, ÃÖ¼ÒÈ
229 ¹öÀü°ú ±â´ÉÃß°¡ ¹öÀü [mod_perl, PHP3] <em>µî</em>)¸¦ ½ÇÇàÇÒ
232 <li>¼¹ö´Â ¼³Ä¡ÈÄ¿¡µµ Á¦»ïÀÚ°¡ ¸¸µç ¸ðµâÀ» »ç¿ëÇÏ¿© ½±°Ô
233 È®ÀåÇÒ ¼ö ÀÖ´Ù. ÃÖ¼ÒÇÑ ±â¾÷ÀÇ ÆÐÅ°Áö Á¦ÀÛÀÚ´Â ¾ÆÆÄÄ¡ ÇÙ½É
234 ÆÐÅ°Áö¿Í º°µµ·Î PHP3, mod_perl, mod_fastcgi <em>µî</em>À»
235 Ãß°¡ ÆÐÅ°Áö·Î ¸¸µé ¼ö ÀÖ¾î¼ Å« À̵æÀÌ´Ù.</li>
237 <li>DSO¿Í <code>apxs</code>¸¦ °¡Áö°í ¾ÆÆÄÄ¡ ¼Ò½º Æ®¸® ¹Û¿¡¼
238 ÀÛ¾÷ÇÏ°í <code>apxs -i</code>¿Í <code>apachectl restart</code>
239 ¸í·É¾î¸¸À¸·Î ÇöÀç °³¹ßÇÑ ¸ðµâÀÇ »õ ¹öÀüÀ» ½ÇÇàÁßÀÎ ¾ÆÆÄÄ¡
240 ¼¹ö¿¡ ¹Ý¿µÇÒ ¼ö ÀÖ¾î¼ ´õ ½±°Ô ¾ÆÆÄÄ¡ ¸ðµâÀ» °³¹ßÇÒ ¼ö
244 <p>DSO´Â ´ÙÀ½°ú °°Àº ´ÜÁ¡ÀÌ ÀÖ´Ù:</p>
247 <li>ÇÁ·Î±×·¥ÀÇ ÁÖ¼Ò°ø°£¿¡ Äڵ带 µ¿ÀûÀ¸·Î ÀоîµéÀÌ´Â ±â´ÉÀ»
248 Áö¿øÇÏÁö¾Ê´Â ¿î¿µÃ¼Á¦°¡ Àֱ⠶§¹®¿¡ ¸ðµç Ç÷¡Æû¿¡¼ DSO¸¦
251 <li>À¯´Ð½º ·Î´õ°¡ ½Éº¼À» ã¾Æ¾ßÇϱ⠶§¹®¿¡ ¼¹ö ½ÃÀÛÀÌ
252 ¾à 20% Á¤µµ ´Ê¾îÁø´Ù.</li>
254 <li>¼¹ö´Â À§Ä¡µ¶¸³ÄÚµå(position independent code, PIC)
255 ¶§¹®¿¡ Àý´ëÁÖ¼ÒÁöÁ¤(absolute addressing)º¸´Ù ´À¸°
256 »ó´ëÁÖ¼ÒÁöÁ¤(relative addressing)ÀÇ º¹ÀâÇÑ ¾î¼Àºí·¯ ±â¹ýÀÌ
257 ÇÊ¿äÇϹǷΠ¾î¶² Ç÷¡Æû¿¡¼ ½ÇÇà½Ã ¾à 5% Á¤µµ ´Ê´Ù.</li>
259 <li>DSO ¸ðµâÀ» ´Ù¸¥ DSO±â¹Ý ¶óÀ̺귯¸®(<code>ld -lfoo</code>)¿¡
260 ¸µÅ©ÇÒ ¼ö ¾ø´Â Ç÷¡ÆûÀÌ Àֱ⶧¹®¿¡ (¿¹¸¦ µé¾î ELF±â¹Ý
261 Ç÷¡ÆûÀº Áö¿øÇÏÁö¸¸ a.out±â¹Ý Ç÷¡ÆûÀº º¸Åë ÀÌ ±â´ÉÀ»
262 Áö¿øÇÏÁö ¾Ê´Â´Ù) ¸ðµç Á¾·ùÀÇ ¸ðµâ¿¡ DSO¸¦ »ç¿ëÇÒ ¼ö ¾ø´Ù.
263 ´Ù¸¥ ¸»·Î DSO ÆÄÀÏ·Î ÄÄÆÄÀÏÇÏ´Â ¸ðµâÀº ¾ÆÆÄÄ¡ Çٽɰú ¾ÆÆÄÄ¡
264 ÇÙ½ÉÀÌ »ç¿ëÇÏ´Â C ¶óÀ̺귯¸®(<code>libc</code>)¿Í ´Ù¸¥
265 µ¿Àû/Á¤Àû ¶óÀ̺귯¸®, À§Ä¡µ¶¸³Äڵ带 ´ã°í ÀÖ´Â Á¤Àû ¶óÀ̺귯¸®
266 ¾ÆÄ«À̺ê(<code>libfoo.a</code>)ÀÇ ½Éº¼¸¸À» »ç¿ëÇÒ ¼ö ÀÖ´Ù.
267 ´Ù¸¥ Äڵ带 »ç¿ëÇÏ·Á¸é ¾ÆÆÄÄ¡ ÇÙ½ÉÀÌ ±×°ÍÀ» ÂüÁ¶ÇÏ´øÁö,
268 <code>dlopen()</code>À¸·Î Á÷Á¢ Äڵ带 Àоîµé¿©¾ß ÇÑ´Ù.</li>