369N/A<?
xml version="1.0" encoding="iso-2022-jp" ?>
369N/A<!-- English Revision: 151408 --> 369N/A Copyright 2002-2006 The Apache Software Foundation or its licensors, 369N/A Licensed under the Apache License, Version 2.0 (the "License"); 369N/A you may not use this file except in compliance with the License. 369N/A You may obtain a copy of the License at 369N/A Unless required by applicable law or agreed to in writing, software 369N/A distributed under the License is distributed on an "AS IS" BASIS, 369N/A WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 369N/A See the License for the specific language governing permissions and 369N/A limitations under the License. 5706N/A <
title>$BF0E*6&M-%*%V%8%'%/%H(B (DSO) $B%5%]!<%
H(
B</title>
369N/A <
p>Apache HTTP $B%5!<%
P$
O%
b%
8%
e!<%k2=$5$l$?%W%m%0%i%`$G!"(B
5706N/A $B4IM}<
T$,%
b%
8%
e!<%k$rA*Br$9$k$3$H$G%5!<%
P$
KAH$
_9~$`
5!
G=$
rA*$
V$
3$
H$,$
G$-$^$
9!#(
B 844N/A $
B%
b%
8%
e!<%k$O%5!<%
P$,%
S%
k%
I$
5$
l$
k$
H$-$
K(
B <program>httpd</
program> $B%P%$%J%j$K(B
5706N/A $B@EE*$KAH$_9~$`$3$H$,$G$-$^$9!#$b$7$/$O!"(B<
program>httpd</
program> $B%P%$%J%j$H$O(B
5706N/A $BJL$KB8:_$9$kF0E*6&M-%*%V%8%'%/%H(B ($BLuCm(B: Dynamic Shared Object)
5622N/A (DSO) $B$H$7$F%3%s%Q%$%k$9$k$3$H$b(B
369N/A $B$G$-$^$9!#(BDSO $B%b%8%e!<%
k$
O%
5!<%P$,%S%k%I$5$l$k$H$-$K%3%s%Q%$%k$7$?$j!"(B
5680N/A Apache $B3HD%%D!<%
k(
B (<program>apxs</
program>) $B$r(B
369N/A $B;H$C$F8e$G%3%s%Q%$%k$7$FDI2C$7$?$j$G$-$^$9!#(B</
p>
369N/A <
p>$B$3$NJ8=q$O(B DSO $B%b%8%e!<%
k$
N;
H$$
J}$
H!
";EAH$_$K$D$$$F(B <section id="implementation"><title>$B<BAu(B</title> <directive module="mod_so">LoadModule</directive> <p>$B8D!9$N(B Apache $B%b%8%e!<%k$r%m!<%I$9$k$?$a$N(B DSO $B%5%]!<%H$O(B <module>mod_so.c</module> $B$H$$$&%b%8%e!<%k$N5!G=$K4p$E$$$F$$$^$9!#(B $B$3$N%b%8%e!<%k(B $B$O(B Apache $B$N%3%"$
K@
EE*$
KAH$
_9~$^$
l$
F$$$
kI,
MW$,$
"$j$^$9!#(B $B$=$l$O(B <module>core.c</module> $B0J30$G$O(B DSO $B$K$G$-$J$$M#0l$N(B $B%b%8%e!<%k$G$9!#;v<B>e!"B>$N$9$Y$F$N(B Apache $B$N%b%8%e!<%
k$
O!
"(B <a href="install.html">$B%$%s%9%H!<%k$NJ8=q(B</a>$B$G@bL@$5$l$F$$$k$h$&$K!"(
B <program>configure</
program> $B$N(B
<
code>--enable-<
em>module</
em>=shared</
code> $B%*%W%7%g%s$G$=$l$>$l$r(B
DSO $B%S%k%I$K$9$k$3$H$K$h$j!"(BDSO $B%b%8%e!<%
k$
K$
9$
k$
3$
H$,$
G$-$^$
9!#(
B <code>
mod_foo.so</
code> $B$N$h$&$J(B DSO $B$K%b%8%e!<%
k$,%
3%
s%
Q%$%
k$
5$
l$
l$
P!
"(B <code>httpd.conf</code> $B%U%!%$%kCf$G(B <module>mod_so</module> $B$N(B <directive module="mod_so">LoadModule</directive> $B%G%#%l%/%F%#%V$r;H$&$3$H$G%5!<%P$N5/F0$d:F5/F0;~$K$3$N%b%8%e!<%k$r(B $B%m!<%I$9$k$h$&$K$G$-$^$9!#(B</p> <p>Apache $B%b%8%e!<%kMQ$N(B ($BFC$K%5!<%I%Q!<%F%#%b%8%e!<%k$N(B) DSO $B%U%!%$%k$N(B $B:n@.$r4JC1$K$9$k$?$a$K!"(
B<program>apxs</
program>
(<
dfn>APache eXtenSion</
dfn>) $B$H$$$&?7$7$$%5%]!<%
H%
W%
m%
0%
i%`$,$
"$j$^$9!#(B Apache $B$N%=!<%9%D%j!<$N(B<em>$B30$G(B</em> DSO $B%b%8%e!<%k$r%S%k%I$9$k$?$a$K(B $B;H$&$3$H$,$G$-$^$9!#H/A[$OC1=c$G$9(B: Apache $B$N%$%s%9%H!<%k;~$N(B <program>configure</program>$B!"(
B<code>make install</
code> $B$N$H$-$K(B Apache $B$N(B
C $B%X%C%@$r%$%s%9%H!<%
k$
7!
"(BDSO $B%S%k%IMQ$N%W%i%C%H%U%)!<%`0MB8$N(B $B%3%s%Q%$%i$H%j%s%+$N%U%i%0$r(B <program>apxs</program> $B%W%m%0%i%`$KDI2C$7$^$9!#(B $B$3$l$K$h$j!"%
f!<%6$,(B Apache $B$NG[I[%=!<%
9%
D%
j!<$J$7$G!"$5$i$K(B
DSO $B%5%]!<%
H$
N$?$
a$
N%
W%
i%
C%
H%
U%)!<%`0MB8$N%3%s%Q%$%i$d%j%s%+$N(B
$B%U%i%0$r$$$8$k$3$H$J$/(B Apache $B$N%b%8%e!<%
k$
N%=!<%9$r%3%s%Q%$%k(B
$B$G$-$k$h$&$K$J$j$^$9!#(B</
p>
<
section id="usage"><
title>$B;HMQK!$N35MW(B</
title>
<
p>Apache 2.0 $B$N(B DSO $B5!G=$N35N,$rCN$k$3$H$,$G$-$k$?$a$N!"(B
$BC;$/4J7i$J35MW$G$9(B:</
p>
<
em>$BG[I[$5$l$F$$$k(B</
em> Apache $B%b%8%e!<%
k!
"2>$K(B <code>mod_foo.c</code> $B$H$7$F!"$=$
l$
r(
B DSO <code>
mod_foo.so</
code> $B$K%S%k%I!"%$%s%9%H!<%
k(
B:
<
em>$B%5!<%
I%
Q!<%F%#(B</
em> Apache $B%b%8%e!<%
k!
"2>$K(B <code>mod_foo.c</code> $B$H$7$F!"$=$
l$
r(
B DSO <code>
mod_foo.so</
code> $B$K%S%k%I!"%$%s%9%H!<%
k(
B:
--enable-foo=shared<
br />
$B6&M-%b%8%e!<%
k$
N(
B <em>$B8e!9$N%$%s%9%H!<%
k(
B</em> $B$N$?$a$K(B
<
em>$B%5!<%
I%
Q!<%F%#(B</
em> Apache $B%b%8%e!<%
k!
"2>$K(B <code>mod_foo.c</code> $B$H$7$F!"$=$
l$
r(
B <program>apxs</
program> $B$r;H$C$F(B
Apache $B%=!<%
9%
D%
j!<$N(B<
em>$B30$G(B</
em> DSO $B$K%S%k%I!"%$%s%9%H!<%
k(
B:
<
p>$B$I$N>l9g$K$*$$$F$b!"6&M-%b%8%e!<%
k$
r%
3%
s%
Q%$%
k$
7$?
8e$
G!
"(B <directive module="mod_so">LoadModule</directive> $B%G%#%l%/%F%#%V$r;H$C$F(B Apache $B$,%b%8%e!<%k$r;HMQ$9$k$h$&$K(B $B$7$J$1$l$P$J$j$^$;$s!#(B</p> <section id="background"><title>$BGX7J(B</title> <p>$B:G6a$N(B Unix $B7O$N(B OS $B$K$O(B <em>$BF0E*6&M-%*%V%8%'%/%H(B</em> (DSO) $B$NF0E*%j%s%/(B/$B%m!<%I$H$$$&5$$N$-$$$?5!9=$,(B $BB8:_$7$^$9!#$3$l$O!"<B9T;~$K%W%m%0%i%`$N%"%I%l%96u4V$K(B
$B%m!<%
I$
G$-$
k$
h$&$
JFCJL$
J7A<0$G%W%m%0%i%`$r%S%k%I$9$k$3$H$r(B
<
p>$B$3$N%m!<%
I$
OFs$
D$
NJ}
K!$
G9T$
J$&$
3$
H$,$
G$-$^$
9(
B: $
B<B9T%W%m%0%i%`$,(B
$
B5/
F0$5$l$?$H$-$K(B <
code>
ld.so</
code> $B$H$$$&%7%9%F%`%W%m%0%i%`(B
$B$K$h$j<+
F0E*$
K9T$
J$
o$
l$
kJ}
K!$
H!
"<B9T%W%m%0%i%`Cf$+$i!"%
7%
9%
F%`%
3!<%k(B
<
code>dlopen()/dlsym()</
code> $B$K$h$k(B Unix $B%m!<%@$
X$
N(
B $
B%
W%
m%
0%
i%`%
7%
9%
F%`$
N%$%
s%?%
U%
'!<%9$r;H$C$F<jF0$G9T$J$&J}K!$H$,(B <p>$B:G=i$NJ}K!$G$O(B DSO $B$OIaDL$O(B<em>$B6&M-%i%$%V%i%j(B</em>$B$d(B <em>DSO $B%i%$%V%i%j(B</em> $B$H8F$P$l$F$$$F!"(BDSO $B$NL>A0$O(B $B$3$l$i$O%7%9%F%`%G%#%l%/%H%j(B ($BDL>o(B <code>/usr/lib</code>) $B$KB8:_$7!"(B $B<B9T%W%m%0%i%`$X$N%j%s%/$O%S%k%I;~$K(B <code>-lfoo</code> $B$r%j%s%+$K(B $B;XDj$9$k$3$H$G3NN)$5$l$^$9!#$3$l$K$h$j%i%$%V%i%j$X$N;2>H$,<B9T%W%m%0%i%`$N(B $B%U%!%$%k$K=q$-9~$^$l$F!"5/F0;~$K(B Unix $B$N%m!<%@$,(B <code>/usr/lib</code> $B$d!"(B $B%j%s%+$N(B <code>-R</code> $B$N$h$&$J%*%W%7%g%s$K$h$j%O!<%I%3!<%I$5$l$?%Q%9!"(B $B4D6-JQ?t(B <code>LD_LIBRARY_PATH</code> $B$K$h$j@_Dj$5$l$?%Q%9!"$NCf$+$i(B <code>libfoo.so</code> $B$N>l=j$r8+$D$1$k$3$H$,$G$-$^$9!#$=$l$+$i!"(B $B<B9T%W%m%0%i%`Cf$N(B ($B$^$@L$2r7h$N(B) $B%7%s%\%k$r(B DSO $B$K$"$k%7%s%\%k$G(B <p>$BIaDL$O<B9T%W%m%0%i%`Cf$N%7%s%\%k$O(B DSO $B$+$i$O;2>H$5$l$^$;$s(B (DSO $B$O0lHLE*$J%3!<%I$K$h$k:FMxMQ2DG=$J%i%$%V%i%j$G$9$N$G(B)$B!#(B $B$G$9$+$i!"$5$i$J$k%7%s%\%k$N2r7h$OI,MW$"$j$^$;$s!#(B $B%7%s%\%k$O(B Unix $B%m!<%@$K$h$j40A4$J2r7h$,9T$J$o$l$^$9$N$G!"<B9T%U%!%$%k<+?H$O(B $B2?$b$9$kI,MW$,$"$j$^$;$s!#(B($B<B:]$N$H$3$m!"@EE*$G$J$$J}K!$G%j%s%/$5$l$F$$$k(B $B$9$Y$F$N<B9T%W%m%0%i%`$KAH$_9~$^$l$F$$$k3+;OMQ$N%3!<%I$N0lIt$K(B <code>ld.so</code> $B$r5/F0$9$k%3!<%I$,4^$^$l$F$$$^$9(B)$B!#$h$/;H$o$l$k(B $B%i%$%V%i%j$NF0E*%m!<%I$NMxE@$OL@$i$+$G$9!#%i%$%V%i%j$N%3!<%I$O(B $B%7%9%F%`%i%$%V%i%j$K(B <code>libc.so</code> $B$N$h$&$K$7$F0lEYJ]B8$9$k$@$1$G$h$/!"(B $B%W%m%0%i%`$N$?$a$KI,MW$J%G%#%9%/$NNN0h$r@aLs$9$k$3$H$,$G$-$^$9!#(B</p> <p>$BFs$D$a$NJ}K!$G$O(B DSO $B$OIaDL$O(B<em>$B6&M-%*%V%8%'%/%
H(
B</em>$B$d(B
<
em>DSO $B%U%!%$%k(B</
em>$B$H8F$P$l$F$$$F!"G$0U$N3HD%;R$rIU$1$k$3$H$,$G$-$^$9(B
($B$?$@$7!"I8=`E*$JL>A0$O(B <
code>
foo.so</
code> $B$G$9(B)$B!#(B
$B$3$l$i$N%U%!%$%k$ODL>o$O%W%m%0%i%`@lMQ$N%G%#%l%/%H%j$KCV$+$l!"(B
$B$3$l$i$r;H$&<
B9T%
W%
m%
0%
i%`$
X$
N%
j%
s%/$
O<+F0E*$K$O$5$l$^$;$s!#(B
$B$G$9$N$G!"<
B9T%
W%
m%
0%
i%`$
O(
B <code>dlopen()</
code> $B$r;H$C$F(B
$B<
B9T;~$
K<jF0$G(B DSO $B$r%W%m%0%i%`$N%"%I%l%96u4V$K%m!<%
I$
9$
kI,
MW$,$
"$j$^$9!#(B $B$3$N;~E@$G$O<B9T%W%m%0%i%`$KBP$7$F(B DSO $B$N%7%s%\%k$N2r7h$O9T$J$o$l$^$;$s!#(B $B$7$+$7!"$=$
NBe$
o$
j$
K(
B Unix $
B$
N%
m!<%@$,(B DSO $B$N(B ($B$^$@L$2r7h$N(B) $B%7%s%\%k$r(B
$B<
B9T%
W%
m%
0%
i%`$
K$
h$
j%(%/%
9%]!<%H$5$l$?%7%s%\%k$H4{$K%m!<%
I$
5$
l$?(
B DSO $
B%
i%$%
V%
i%
j$
K$
h$
j%(%/%
9%]!<%H$5$l$?%7%s%\%k(B ($BFC$K!"$I$3$K$G$b$"$k(B
<
code>
libc.so</
code> $B$N$9$Y$F$N%7%s%\%k(B) $B$G<+
F0E*$
K2r7h$
7$^$
9!#(
B $
B$
3$&$
9$
k$
3$
H$
G!
"(BDSO $B$O:G=i$+$i@EE*$K%j%s%/$5$l$F$$$?$+$N$h$&$K!"(
B $
B<B9T%W%m%0%i%`$N%7%s%\%k$rCN$k$3$H$,$G$-$^$9!#(B</
p>
<
p>$B:G8e$K!"(BDSO $B$N(B API $B$rMxE@$r@8$+$9$?$a$K!"%W%m%0%i%`$O(B
$B8e$G%G%#%9%Q%C%A%F!<%
V%
k(
B<em>$B$J$I(B</
em>$B$G%7%s%\%k$r;H$&$3$H$,$G$-$k$h$&$K!"(B
<
code>dlsym()</
code> $B$r;H$C$F$$$/$D$+$N%7%s%\%k$r2r7h$7$^$9!#(B
$B$9$J$o$A(B: $B<
B9T%
W%
m%
0%
i%`$
OI,
MW$
J$
9$
Y$
F$
N%
7%
s%\%
k$
r<jF0$G2r7h$7$J$1$l$P(B
$B$J$j$^$;$s!#$3$N5!9=$NMxE@$O%W%m%0%i%`$N%*%W%7%g%J%k$JItJ,$O(B
$BI,MW$K$J$k$^$G%m!<%
I$
9$
kI,
MW$,$
J$$(
B ($
B$@$+$
i%
a%
b%
j$
b>CHq$7$J$$(B)
$B$3$H$G$9!#I,MW$J$i$P!"4pK\%W%m%0%i%`$N5!G=$r3HD%$9$k$?$a$K(B
$B$3$l$i$NItJ,$rF0E*$K%m!<%
I$
9$
k$
3$
H$,$
G$-$^$
9!#(
B</p>
<
p>$B$3$N(B DSO $B5!9=$O4JC1$J$h$&$K8+$($^$9$,!">/$J$/$H$b0l$DFq$7$$E@$,(B
$B$"$j$^$9(B: $B%W%m%0%i%`$r3HD%$9$k$?$a$K(B DSO $B$r;H$C$F$$$k$H$-$K!"(B
DSO $B$,<
B9T%
W%
m%
0%
i%`$+$
i%
7%
s%\%
k$
r2r7h$
9$
kE@$
G$
9(
B ($
BFsHVL\$
NJ}
K!(
B)$
B!#(
B $
B$
3$
l$
O$
J$<$G$7$g$&$+!#$=$l$O!"(BDSO $B$N%7%s%\%k$r<
B9T%
W%
m%
0%
i%`$
N(
B $
B%
7%
s%\%
k$+$
i!
V5U2r7h!
W$
9$
k$
H$$$&$
N$
O%
i%$%
V%
i%
j$
N@
_7W(
B ($
B%
i%$%
V%
i%
j$
O$=$
l$
r;
HMQ$
9$
k%
W%
m%
0%
i%`$
N$
3$
H$
O2?$
b(
B $
BCN$
i$
J$$(
B) $
B$
KH?$
7$
F$$$
F!
"$3$N5!G=$O$9$Y$F$N%W%i%C%H%U%)!<%`$K(B $B$"$
k$
o$
1$
G$
O$
J$/!
"I8=`2=$b$5$l$F$$$J$$$+$i$G$9!#(B $B<B:]$K$O<B9T%W%m%0%i%`$N%0%m!<%P%k$J%7%s%\%k$O:F%(%/%9%]!<%H$5$l$k$3$H$O(B $B$"$^$
j$
J$/!
"(BDSO $B$+$i;H$&$3$H$,$G$-$^$;$s!#%j%s%+$K%0%m!<%P%k%7%s%\%k$9$Y$F$r(B $B%(%/%9%]!<%H$9$k$h$&$K$5$;$kJ}K!$r8+$D$1$k$3$H$,!"<B9T;~$K%W%m%0%i%`$r(B
$B3HD%$9$k$?$a$K(B DSO $B$r;H$&$H$-$N0lHV$NLdBj$G$9!#(B</
p>
<
p>$B6&M-%i%$%V%i%j$N%"%W%m!<%
A$,
IaDL$
NJ}
K!$
G$
9!#(
BDSO $
B5!
9=$
O$=$
N$?$
a$
K(
B $
B@
_7W$
5$
l$?$
b$
N$
G$
9$+$
i!#$
7$?$,$
C$
F!
"$=$NJ}K!$O%*%Z%l!<%F%#%s%0%7%9%F%`$,(B $BDs6!$9$k$[$H$s$I$9$Y$F$N<oN`$N%i%$%V%i%j$G;H$o$l$F$$$^$9!#(B $B0lJ}!"%
W%
m%
0%
i%`$
N3HD%$
N$?$
a$
K6&
M-%*%
V%
8%
'%/%H$r;HMQ$9$k!"$H$$$&J}$O(B $B$"$^$j;H$o$l$F$$$^$;$s!#(B</p> <p>1998 $BG/$N;~E@$G!"<B9T;~$K<B:]$K5!G=3HD%$N$?$a$K(B DSO $B5!9=$r;H$C$F$$$k(B $B%=%U%H%&%'%
"%Q%C%1!<%8$O>/$7$@$1$G$7$?(B: Perl 5 (XS $B5!9=$H(B DnaLoader $B%b%8%e!<%k(B $B$K$h$k$b$N(B)$B!"(
BNetscape $
B%
5!<%P(B<
em>$B$J$I(B</
em>$B$G$9!#(BApache $B$O$9$G$K(B
$B%b%8%e!<%
k$
N35G0$
r;
H$
C$
F5!
G=3HD%$
r$
7$
F$$$
F!
"FbItE*$K%G%#%9%Q%C%A%j%9%H$K(B $B4p$E$$$?30It%b%8%e!<%k$N(B Apache $B%3%"5!
G=$
X$
N%
j%
s%/$
r9T$
J$
C$
F$$$^$
7$?$
N$
G!
"(B $B%P!<%8%g%s(B 1.3 $B$+$i!"(
BApache $
B$
b(
B DSO $
B5!
9=$
r;
H$&
Cg4V$
K$
J$
j$^$
7$?!#(
B Apache $
B$
O<B9T;~$K(B DSO $B$r;H$C$F%b%8%e!<%
k$
r%
m!<%I$9$k$h$&$K$9$G$K(B
$B1?L?IU$1$i$l$F$$$?$N$G$9!#(B</
p>
<
section id="advantages"><
title>$BMxE@$H7gE@(B</
title>
<
p>$B>e5-$N(B DSO $B$K4p$E$$$?5!G=$O0J2<$
NMxE@$,$
"$j$^$9(B:</p> <li>$B<B:]$N%5!<%P%W%m%;%9$rAH$_N)$F$k$?$a$K!"(
B $
B%
S%
k%
I;~$
K(
B <code>configure</
code> $B$N%*%W%7%g%s$r;H$&Be$o$j$K(B
$B<
B9T;~$
K(
B <code>
httpd.conf</
code> $B$N@_DjMQ%3%^%s%I(B
<
directive module="mod_so">LoadModule</
directive>
$B$r;H$&$3$H$,$G$-$^$9$N$G!"%5!<%
P%
Q%
C%
1!<%8$N=@Fp@-$,9b$^$j$^$7$?!#(B
$B$?$H$($P!"0l$D$N(B Apache $B$N%$%s%9%H!<%
k$+$
i(
B $
B0c$&
9=@.$
N%
5!<%P(B ($BI8=`HG$H(B SSL $BHG!":G>.9=@.$H3HD%HG(B [mod_perl, PHP3]
<
em>$B$J$I(B</
em>) $B$r<
B9T$
9$
k$
3$
H$,$
G$-$^$
9!#(
B</li>
<
li>$B%$%s%9%H!<%
k$
N8e$
G$
"$C$F$b!"%
5!<%P$N%Q%C%1!<%
8$
r%
5!<%I%Q!<%
F%#(
B $
B%
b%
8%
e!<%k$G4JC1$K3HD%$G$-$k$h$&$K$J$j$^$7$?!#$3$l$O!"(BApache $B%3%"(B
$B%Q%C%1!<%
8$
H!
"(BPHP3, mod_perl, mod_fastcgi <em>$B$J$I(B</em> $B$NDI2C$N(B $B%Q%C%1!<%8$r:n@.$G$-$k$N$G!">/$J$/$H$b%Y%s%@$N%Q%C%1!<%
84IM}<T$K$H$C$F(B
$BBg$-$JMxE@$,$"$j$^$9!#(B</
li>
<
li>Apache $B%b%8%e!<%
k$
N3+
H/$,
4JC1$
K$
J$
j$^$
9!#(
B $
B$
3$
l$
O(
B DSO $
B$
H(
B <program>apxs</
program> $B$NAH$_9g$o$;$K$h$j!"(BApache $B%=!<%
9%
D%
j!<$N(B
$B30$G:n6H$G$-!"3+
H/
Cf$N%b%8%e!<%
k$
N?
7$
7$$%
P!<%8%g%s$r(B
$B<
B9TCf$
N(
B Apache $
B%
5!<%P$KAH$_9~$`$?$a$K(B <
code>apxs -i</
code> $B$H(B
<
code>apachectl restart</
code> $B$r9T$J$&$@$1$GNI$/$J$k$+$i$G$9!#(B</
li>
<
p>DSO $B$K$O0J2<$
N7gE@$,$
"$j$^$9(B:</p> <li>$B$9$Y$F$N%*%Z%l!<%F%#%s%0%7%9%F%`$,%W%m%0%i%`$N%"%
I%
l%
96u4V$
K(
B $
B%
3!<%I$rF0E*%m!<%
I$
9$
k$
3$
H$
r%
5%]!<%H$7$F$$$k$o$G$O$J$$$N$G!"(B
$B%W%i%C%H%U%)!<%`$
K$
h$
C$
F$
O(
B DSO $
B5!
9=$
O;
H$($^$;$
s!#(
B</li>
<
li>Unix $B$N%m!<%@$,%
7%
s%\%
k$
N2r7h$
r$
9$
kI,
MW$,$
G$-$?$
N$
G!
"(B $B$=$N%*!<%P%X%C%I$K$h$j%5!<%P$N5/F0;~4V$,Ls(B 20% $BCY$/$J$C$F$$$^$9!#(B</li> <li>$B0LCVHs0MB8%3!<%I(B (PIC) ($BLuCm(B position independent code) $B$O(B $BAjBP%"%
I%
l%
9$
N$?$
a$
KJ#;($
J%
"%;%s%V%i$N%H%j%C%/$,I,MW$J$3$H$,$"$
j!
"(B $B$=$l$OI,$:$7$b@dBP%"%
I%
l%
9$
HF1$
8$/$
i$$$
NB.EY$,$
G$
k$
o$
1$
G$
O$
"$j$^$;$s$N$G!"(
B $
B%
W%
i%
C%
H%
U%)!<%`$K$h$C$F$O%5!<%
P$
N<
B9TB.EY$,Ls(B 5% $BCY$/$J$j$^$9!#(B</
li>
<
li>DSO $B%b%8%e!<%
k$
O$
9$
Y$
F$
N%
W%
i%
C%
H%
U%)!<%`$GB>$N(B DSO $B$K4p$E$$$?(B
$B%i%$%V%i%j$KBP$7$F%j%s%/$G$-$k(B (<
code>ld -lfoo</
code>)
$B$H$$$&$o$1$G$O$"$j$^$;$s$N$G(B ($B$?$H$($P!"(
Ba.out $B$N%W%i%C%H%U%)!<%`$
G$
O(
B $
B$
3$
N5!
G=$
O$
"$j$^$;$s$,!"(
BELF $
B$
N%
W%
i%
C%
H%
U%)!<%`$K$O$"$j$^$9(B)$B!"(B
$B$9$Y$F$N<
oN`$
N%
b%
8%
e!<%k$K(B DSO $B5!9=$r;H$($k$o$1$G$O$"$j$^$;$s!#(B
$B8@$$49$($k$H!"(BDSO $B%U%!%$%k$H$7$F%3%s%Q%$%k$5$l$?%b%8%e!<%
k$
N(
B Apache $B$N%3%"$
N%
7%
s%\%
k!
"(BC $B%i%$%V%i%j(B (<code>libc</code>) $B$H(B Apache $B%3%"$,;
H$
C$
F$$$
kB>$N$9$Y$F$N@EE*$J%i%$%V%i%j$HF0E*%i%$%V%i%j$N(B
$B%7%s%\%k!"(BPIC $B$K$h$k@EE*$J%i%$%V%i%j(B (<
code>
libfoo.a</
code>) $B$N(B
$B%7%s%\%k$N$_$K@)8B$5$l$^$9!#$=$NB>$N%3!<%
I$
r;
H$&
J}
K!$
O!
"(B Apache $B%3%"<+?H$,$9$G$K$=$N%3!<%
I$
X$
N;
2>H$,$"$k$h$&$K$9$k$+!"(B
<
code>dlopen ()</
code> $B$r;H$C$F%3!<%
I$
r<+J,<+?
H$
G%
m!<%I$9$k$+$N(B
$B$I$A$i$+$7$+$"$j$^$;$s!#(B</
li>