<!DOCTYPE html SYSTEM "about:legacy-compat">
<html lang="tr"><head><META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="width=device-width, initial-scale=1" name="viewport">
<!--
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
              This file is generated from xml source: DO NOT EDIT
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
      -->
<title>Devingen Paylaşımlı Nesne Desteği - Apache HTTP Sunucusu S&uuml;r&uuml;m 2.4</title>
<link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet">
<link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size">
<link href="./style/css/manual-print.css" rel="stylesheet" media="print" type="text/css"><link rel="stylesheet" type="text/css" href="./style/css/prettify.css">
<script src="./style/scripts/prettify.min.js">
</script>

<link href="./images/favicon.png" rel="shortcut icon"></head>
<body id="manual-page"><div id="page-header">
<p class="menu"><a href="./mod/">Mod&uuml;ller</a> | <a href="./mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Hata bildir</a></p>
<p class="apache">Apache HTTP Sunucusu S&uuml;r&uuml;m 2.4</p>
<img alt="" src="./images/feather.png"></div>
<div class="up"><a href="./"><img title="<-" alt="<-" src="./images/left.gif"></a></div>
<div id="path">
<a href="https://www.apache.org/">Apache</a> &gt; <a href="https://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="https://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="./">S&uuml;r&uuml;m 2.4</a></div><div id="page-content"><div id="preamble"><h1>Devingen Paylaşımlı Nesne Desteği</h1>
<button aria-label="Toggle language list" class="lang-toggle"><svg xmlns="http://www.w3.org/2000/svg" stroke-width="2" stroke="currentColor" fill="none" viewBox="0 0 24 24" height="16" width="16"><circle r="10" cy="12" cx="12"/><line y2="12" x2="22" y1="12" x1="2"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg></button>
<div class="toplang">
<p><span>Mevcut Diller: </span><a href="./en/dso.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/dso.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/dso.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/dso.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/dso.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div>
<div class="outofdate">Bu &ccedil;eviri g&uuml;ncel olmayabilir. Son değişiklikler i&ccedil;in İngilizce s&uuml;r&uuml;m ge&ccedil;erlidir.</div>

    <p>Apache HTTP Sunucusu mod&uuml;ler bir program olup, y&ouml;netici sadece bir
      grup mod&uuml;l se&ccedil;erek sunucuya işlevsellik ekleyebilir. Mod&uuml;ller, Devingen
      Paylaşımlı Nesneler (DSO - Dynamic Shared Object) halinde
      <code class="program"><a href="./programs/httpd.html">httpd</a></code> programından ayrı olarak derlenir. DSO mod&uuml;lleri
      sunucunun derlenmesi sırasında derlenebileceği gibi ayrı olarak derlenip
      daha sonra Apache Eklenti Aracı (Apache Extension Tool)
      <code class="program"><a href="./programs/apxs.html">apxs</a></code> programı kullanılarak da sunucuya eklenebilir.</p>

    <p>Bu belgede DSO mod&uuml;llerinin kullanımının yanında teorisine de
      değinilecektir.</p>
  </div>
<div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif"> <a href="#implementation">Ger&ccedil;eklenim</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#usage">Kullanım &Ouml;zeti</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#background">Artalan Bilgisi</a></li>
<li><img alt="" src="./images/down.gif"> <a href="#advantages">Getiriler ve G&ouml;t&uuml;r&uuml;ler</a></li>
</ul></div>
<div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="implementation">Ger&ccedil;eklenim <a title="Permanent link" href="#implementation" class="permalink">&para;</a></h2>

<table class="related"><tr><th>İlgili Mod&uuml;ller</th><th>İlgili Y&ouml;nergeler</th></tr><tr><td><ul><li><code class="module"><a href="./mod/mod_so.html">mod_so</a></code></li></ul></td><td><ul><li><code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code></li></ul></td></tr></table>

    <p>Apache httpd mod&uuml;llerini y&uuml;klemek i&ccedil;in DSO desteği, Apache httpd
      &ccedil;ekirdeğine durağan olarak ilintilenerek derlenmiş olan
      <code class="module"><a href="./mod/mod_so.html">mod_so</a></code> adında bir mod&uuml;l tarafından sağlanır.
      <code class="module"><a href="./mod/core.html">core</a></code> mod&uuml;l&uuml;nden  başka, bir DSO mod&uuml;l&uuml; olamayan tek mod&uuml;l
      <code class="module"><a href="./mod/mod_so.html">mod_so</a></code> mod&uuml;l&uuml;d&uuml;r. Apache ile dağıtılan hemen hemen t&uuml;m
      diğer Apache mod&uuml;lleri bir DSO mod&uuml;l&uuml;ne yerleştirilebilir. Derlenmiş
      mod&uuml;ller <code>mod_filanca.so</code> bi&ccedil;eminde birer DSO ismi alırlar ve
      her biri istenirse <code>httpd.conf</code> dosyasında
      <code class="module"><a href="./mod/mod_so.html">mod_so</a></code> mod&uuml;l&uuml;n&uuml;n <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> y&ouml;nergesiyle belirtilerek sunucu başlatılırken
      veya yeniden başlatılırken sunucuya y&uuml;klenebilir.</p>

    <p><a href="install.html">Kurulum belgesinde</a> a&ccedil;ıklandığı gibi, her DSO
      mod&uuml;l&uuml; <code class="program"><a href="./programs/configure.html">configure</a></code> programının
      <code>--enable-mods-static</code> se&ccedil;eneği ile devredışı bırakılabilir.</p>

    <p>Apache httpd mod&uuml;lleri i&ccedil;in (&ouml;zellikle &uuml;&ccedil;&uuml;nc&uuml; parti mod&uuml;ller i&ccedil;in) DSO
      dosyası &uuml;retimini kolaylaştırmak amacıyla <code class="program"><a href="./programs/apxs.html">apxs</a></code>
      (<dfn>APache eXtenSion</dfn>) adında yeni bir destek programı
      kullanılmaktadır. Bu program Apache httpd mod&uuml;llerini Apache httpd kaynak
      ağacından ayrı olarak derlemek i&ccedil;in kullanılabilir. Fikir basittir: Apache
      HTTP Sunucusu derlenirken DSO dosyalarını derlemek i&ccedil;in platforma bağımlı
      derleyici ve ilintileyici se&ccedil;enekleri <code class="program"><a href="./programs/apxs.html">apxs</a></code>
      programının i&ccedil;ine konur ve <code>make install</code> ile kurulum sırasında
      Apache httpd C başlık dosyaları da kurulur. B&ouml;ylece
      kullanıcı Apache httpd dağıtımının kaynak ağacına ihtiya&ccedil; duymadan ve
      platforma bağımlı derleyici ve ilintileyici se&ccedil;eneklerini bilmek zorunda
      kalmadan istediği Apache httpd mod&uuml;l&uuml;n&uuml; <code class="program"><a href="./programs/apxs.html">apxs</a></code>
      programını kullanarak derleyebilir.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="usage">Kullanım &Ouml;zeti <a title="Permanent link" href="#usage" class="permalink">&para;</a></h2>

    <p>Apache HTTP Sunucusu 2.x'in DSO &ouml;zelliklerine bir giriş olarak burada
      kısaca bir bilgi vermekle yetinilecektir:</p>

    <ol>
      <li><p>Kaynak dosyası <code>mod_filanca.c</code> dosyasında dağıtılan bir
        <em>&ouml;zg&uuml;n</em> Apache htpd mod&uuml;l&uuml;n&uuml; <code>mod_filanca.so</code> isminde
        bir  DSO mod&uuml;l&uuml; olarak derlemek ve kurmak i&ccedil;in ş&ouml;yle yapılır:</p>

<div class="example"><p><code>
  $ ./configure --prefix=/kurulum/yeri --enable-filanca<br>
  $ make install
</code></p></div>
      </li>

      <li><p>Apache HTTP Sunucusunu t&uuml;m mod&uuml;ller etkin olarak
        derleyebilirsiniz. Fakat sunucunun başlatılması sırasında sadece temel
        mod&uuml;ller y&uuml;klenir.  Daha sonra <code>httpd.conf</code> i&ccedil;indeki
        <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> y&ouml;nergelerini etkin
        veya etkisiz hale getirerek y&uuml;klenecek mod&uuml;lleri
        değiştirebilirsiniz.</p>

<div class="example"><p><code>
$ ./configure --enable-mods-shared=all<br>
$ make install
</code></p></div>
      </li>

      <li><p>Bazı mod&uuml;ller sadece geliştiriciler i&ccedil;indir ve bunlar t&uuml;m
        mod&uuml;llerin derlenmesini (<em>all</em>) se&ccedil;seniz bile derlenmeyecektir.
        Geliştirici mod&uuml;lleri dehil t&uuml;m mod&uuml;lleri derlemek isterseniz
        <em>reallyall</em> kullanınız. Ek olarak, derlenmiş mod&uuml;ller i&ccedil;in
        kullanılan <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code>
        y&ouml;nergelerinin tamamını <code>--enable-load-all-modules</code> derleme
        se&ccedil;eneği ile etkin kılabilirsiniz.</p>

<div class="example"><p><code>
$ ./configure --enable-mods-shared=reallyall --enable-load-all-modules<br>
$ make install
</code></p></div>
      </li>

      <li><p>Kaynak dosyası <code>mod_filanca.c</code> dosyasında dağıtılan bir
        <em>&uuml;&ccedil;&uuml;nc&uuml; parti</em> Apache httpd mod&uuml;l&uuml; <code>mod_filanca.so</code>
        isminde bir DSO mod&uuml;l&uuml; olarak Apache httpd kaynak ağacının dışında
        <code class="program"><a href="./programs/apxs.html">apxs</a></code> kullanarak derlemek ve kurmak i&ccedil;in ş&ouml;yle
        yapılır:</p>

<div class="example"><p><code>
$ cd /bir/kurulum/yeri<br>
$ apxs -c mod_filanca.c<br>
$ apxs -aci filanca mod_filanca.la
</code></p></div>
      </li>
    </ol>

    <p>T&uuml;m durumlarda derlenen paylaşımlı mod&uuml;l&uuml; Apache httpd'nin etkin
      kılabilmesi  i&ccedil;in <code>httpd.conf</code> dosyasında o mod&uuml;l i&ccedil;in bir
      <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> y&ouml;nergesi
      bulunmalıdır.</p>

    <p>Ayrıntılı bilgi i&ccedil;in <a href="programs/apxs.html">apxs belgelerine</a>
      bakınız.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="background">Artalan Bilgisi <a title="Permanent link" href="#background" class="permalink">&para;</a></h2>

    <p>G&uuml;n&uuml;m&uuml;z&uuml;n Unix t&uuml;revlerinde var olan bir mekanizma sayesinde
      &ccedil;alıştırılabilir bir programın adres uzayına &ccedil;alışma anında y&uuml;klenmek
      veya ilintilenmek &uuml;zere <em>Devingen Paylaşımlı Nesneler</em> (DSO -
      Dynamic Shared Object) adı verilen, &ouml;zel bir bi&ccedil;em kullanarak kodlanmış
      program par&ccedil;aları oluşturulabilir.</p>

    <p>Bu y&uuml;kleme normalde iki yolla yapılabilir: Ya &ccedil;alıştırılabilir
      programın başlatılması sırasında y&uuml;klenen <code>ld.so</code> adlı bir
      sistem programınının devingen olarak y&uuml;klenmesi ile ya da
      &ccedil;alıştırılabilir programın i&ccedil;inden Unix y&uuml;kleyicisine programsal sistem
      aray&uuml;z&uuml; sağlayan <code>dlopen()/dlsym()</code> sistem &ccedil;ağrılarının elle
      yapılması suretiyle.</p>

    <p>İlk y&ouml;ntemde kullanılan DSO'lara genelde <em>paylaşımlı
      k&uuml;t&uuml;phaneler</em> veya <em>DSO k&uuml;t&uuml;phaneleri</em> adı verilir ve
      bunların dosyaları <code>libfilanca.so</code> veya
      <code>libfilanca.so.1.2</code> bi&ccedil;iminde isimlendirilir. Belli bir
      sistem dizininde (normalde <code>/usr/lib</code>) bulunurlar ve derleme
      sırasında ilintileyici komutuna <code>-lfilanca</code> şeklinde
      belirtilerek &ccedil;alıştırılabilir programla ilintilenirler. Doğrudan
      &ccedil;alıştırılabilir koda eklenen bu kodlar Unix y&uuml;kleyicisinin programın
      başlatılması sırasında k&uuml;t&uuml;phaneyi <code>/usr/lib</code> altında
      <code>libfilanca.so</code> adıyla bulabilmesini sağlar. K&uuml;t&uuml;phanelerin
      aranacağı yerler ya <code>-R</code> gibi bir ilintileyici se&ccedil;eneği ile
      koda eklenir ya da arama yolları <code>LD_LIBRARY_PATH</code> ortam
      değişkeni aracılığıyla yapılandırılır. B&ouml;ylece &ccedil;alıştırılabilir
      programda hen&uuml;z &ccedil;&ouml;z&uuml;mlenmemiş simgeler DSO i&ccedil;inde bulunarak
      &ccedil;&ouml;z&uuml;mlenebilir.</p>

    <p>&Ccedil;alıştırılabilir program i&ccedil;indeki simgelere normalde DSO i&ccedil;inden
      atıfta bulunulmaz (genel kod k&uuml;t&uuml;phanesinin başka programlarca da
      kullanılması nedeniyle). Bu bakımdan DSO tarafında b&ouml;yle bir &ccedil;&ouml;z&uuml;mleme
      yapılmaz. &Ccedil;alıştırılabilir program da DSO'daki simgeleri kendisi
      &ccedil;&ouml;z&uuml;mlemeye uğraşmaz, bu işlemlerden tamamen Unix y&uuml;kleyicisi
      (<code>ld.so</code>) sorumludur. (Aslında, <code>ld.so</code>'yu
      &ccedil;ağıracak kod, her &ccedil;alıştırılabilir programın i&ccedil;ine ilintilenmiş
      (durağan değil) başlatma kodunun bir par&ccedil;asıdır.) Programlar tarafından
      ortaklaşa kullanılan k&uuml;t&uuml;phanelerin devingen olarak y&uuml;klenmesinin sebebi
      basittir: K&uuml;t&uuml;phane kodu <code>libc.so</code> gibi bir sistem
      k&uuml;t&uuml;phanesine bir kere kaydedilip disk alanından yer kazanılmış
      olur.</p>

    <p>İkinci y&ouml;ntemde kullanılan DSO'lara yine <em>paylaşımlı
      k&uuml;t&uuml;phaneler</em> veya <em>DSO k&uuml;t&uuml;phaneleri</em> adı verilir fakat
      bunların dosyaları ge&ccedil;erli kabule g&ouml;re <code>filanca.so</code> gibi
      isimlendirilse de genelde keyfi olarak se&ccedil;ilen bir dosya uzantısı
      kullanılarak isimlendirilirler. Bu dosyalar genellikle programa &ouml;zel bir
      dizinde dururlar ve bu dosyaları kullanacak olan &ccedil;alıştırılabilir
      programla aralarında &ouml;zdevimli olarak bağ kurulmamıştır. Bunun yerine,
      &ccedil;alıştırılabilir program DSO'yu &ccedil;alışma anında <code>dlopen()</code>
      sayesinde kendi adres uzayına ekler. &Ccedil;alıştırılabilir program i&ccedil;in
      DSO'daki simgeler bu sırada &ccedil;&ouml;z&uuml;mlenmez. &Ouml;zdevimli olarak devreye
      giren Unix y&uuml;kleyicisi, (varsa) artakalan simgeleri, &ccedil;alıştırılabilir
      ihra&ccedil; edilen simge k&uuml;melerini (ve &ouml;zellikle her yerde hazır ve nazır
      <code>libc.so</code> i&ccedil;indeki t&uuml;m simgeleri) kullanarak &ccedil;&ouml;z&uuml;mler. Bu
      yolla DSO, &ccedil;alıştırılabilir programın simge k&uuml;mesi bilgilerini sanki
      kendisine baştan durağan olarak ilintilenmiş gibi ulaşabilir.</p>

    <p>Son olarak, DSO'nun programlama aray&uuml;z&uuml;n&uuml;n getirilerinden yararlanmak
      amacıyla &ccedil;alıştırılabilir program, daha sonra dağıtım tabloları vb.
      yerlerde kullanmak &uuml;zere <code>dlsym()</code> &uuml;zerinden DSO'daki belli
      simgeleri &ccedil;&ouml;z&uuml;mlemek zorundadır. Başka bir deyişle: &Ccedil;alıştırılabilir
      program ihtiya&ccedil; duyduğu her simgeyi kullanmak i&ccedil;in kendisi &ccedil;&ouml;z&uuml;mleme
      yapmak zorundadır. B&ouml;yle bir mekanizmanın getirisi, programın isteğe
      bağlı par&ccedil;alarının gerekli olana kadar y&uuml;klenmemesidir (b&ouml;ylece daha az
      bellek alanı kullanılır). Gerektiği zaman programın işlevselliğini
      arttırmak amacıyla bu par&ccedil;alar devingen olarak programa
      y&uuml;klenebilir.</p>

    <p>DSO mekanizmasının bu basit gibi g&ouml;r&uuml;nen işleyişinde zorluk i&ccedil;eren bir
      adım şudur (başkaları da olabilir): Bir programın işlevselliğini
      genişletmek i&ccedil;in DSO kullanılırken (ikinci y&ouml;ntem) &ccedil;alıştırılabilir
      programdan DSO i&ccedil;in simgelerin &ccedil;&ouml;z&uuml;mlenmesi.  Zorluğun sebebi,
      "tersine &ccedil;&ouml;z&uuml;mleme" yapılmasıdır; &ccedil;alıştırılabilir programın simge
      k&uuml;mesindeki DSO simgeleri k&uuml;t&uuml;phane tasarımına aykırı bir şekilde
      &ccedil;&ouml;z&uuml;mlenir ve bu uygulama t&uuml;m platformlarda hazır olarak
      desteklenmediği gibi standartlaşmış da değildir. Ge&ccedil;er uygulamada
      &ccedil;alıştırılabilir programın evrensel simgeleri &ccedil;oğunlukla yeniden dışa
      verilmez ve bu bakımdan bir DSO i&ccedil;inde kullanılmaları uygun değildir.
      Esas sorun, &ccedil;alıştırılabilir bir programın işlevselliğini &ccedil;alışma
      anında genişletmek i&ccedil;in DSO kullanımı sırasında ilintileyicinin t&uuml;m
      evrensel simgeleri dışa vermesini zorlamanın bir yolunu bulmaktır.</p>

    <p>Paylaşımlı k&uuml;t&uuml;phane yaklaşımı bu bakımdan t&uuml;r&uuml;n&uuml;n tek &ouml;rneğidir,
      &ccedil;&uuml;nk&uuml; DSO mekanizması &ouml;zellikle bunun i&ccedil;in tasarlanmıştır, dolayısıyla
      işletim sisteminin sağladığı hemen hemen t&uuml;m k&uuml;t&uuml;phaneler i&ccedil;in
      kullanılabilir.</p>
</div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif"></a></div>
<div class="section">
<h2 id="advantages">Getiriler ve G&ouml;t&uuml;r&uuml;ler <a title="Permanent link" href="#advantages" class="permalink">&para;</a></h2>

    <p>Yukarıda bahsedilen DSO'ya dayalı &ouml;zelliklerin getirileri
      şunlardır:</p>

    <ul>
      <li>Sunucu paketi &ccedil;alışma anında daha esnektir &ccedil;&uuml;nk&uuml;, sunucuyu
        oluşturan par&ccedil;alar derleme sırasında <code class="program"><a href="./programs/configure.html">configure</a></code>
        se&ccedil;enekleriyle birleştirilmek yerine <code>httpd.conf</code> i&ccedil;inde
        <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> y&ouml;nergeleri
        sayesinde &ccedil;alışma anında birleştirilebilmektedir. Bu yolla, &ouml;rneğin
        tek bir Apache kurulumuyla birbirinden farklı yapılandırmalara sahip
        &ccedil;ok sayıda sunucu &ccedil;alıştırmak m&uuml;mk&uuml;nd&uuml;r. (standart veya SSL s&uuml;r&uuml;m&uuml;;
        basitleştirilmiş veya devingen s&uuml;r&uuml;m&uuml; [mod_perl, PHP3], vs.)</li>

      <li>Sunucu paketi kurulumdan sonra bile &uuml;&ccedil;&uuml;nc&uuml; parti mod&uuml;llerle kolayca
        genişletilebilir. Bu &ouml;zellikle, bir Apache temel paketinin yanında
        PHP, mod_perl, mod_security gibi ek paketler oluşturan paket
        dağıtıcılarına b&uuml;y&uuml;k yarar sağlar.</li>

      <li>Yeni Apache httpd mod&uuml;lleri i&ccedil;in daha kolay prototip
        geliştirilebilir: Mod&uuml;l kaynak kodunu DSO/<code class="program"><a href="./programs/apxs.html">apxs</a></code> &ccedil;ifti
        sayesinde Apache httpd kaynak ağacının dışında derleyip mod&uuml;l&uuml;n yeni
        bir s&uuml;r&uuml;m&uuml;n&uuml; bir <code>apxs -i</code> komutunun ardından
        <code>apachectl restart</code> yaparak &ccedil;alışan bir Apache HTTP
        Sunucusunda denemek daha kolay hale getirilmiştir.</li>
    </ul>

    <p>DSO kullanımının g&ouml;t&uuml;r&uuml;leri ise şunlardır:</p>

    <ul>
      <li>İlk y&uuml;klemede %20 yavaşlama: Unix y&uuml;kleyicisi simgeleri &ccedil;&ouml;z&uuml;mlemek
        zorunda olduğundan sunucu ilk başlatılırken yaklaşık %20 daha yavaş
        faaliyete ge&ccedil;er.</li>

      <li>&Ccedil;alışma sırasında % 5 yavaşlama: Konumdan bağımsız kodun (PIC -
        Position Independent Code) g&ouml;reli adresleme i&ccedil;in karmaşık oyunlara
        girmesi ve bunun mutlak adresleme kadar hızlı olmaması nedeniyle
        sunucu bazı platformlarda &ccedil;alışma anında yaklaşık %5 daha yavaş
        &ccedil;alışabilir.</li>

      <li>DSO'nun t&uuml;m mod&uuml;ller i&ccedil;in uygun olmaması: DSO mod&uuml;lleri bazı
        platformlarda diğer DSO temelli k&uuml;t&uuml;phanelerle ilintilenemediğinden
        (<code>ld -lfilanca</code>) DSO mekanizmasını t&uuml;m mod&uuml;l t&uuml;rleri i&ccedil;in
        kullanamazsınız (&ouml;rneğin a.out temelli platformlar bu işlevselliği
        ELF temelli platformlar kadar iyi sağlamaz). Başka bir deyişle, DSO
        dosyaları olarak derlenmiş mod&uuml;llerin kullanabileceği simgeler ya
        Apache httpd temel kodunda vardır ya Apache httpd temel kodunun
        kullandığı C k&uuml;t&uuml;phanesinde (<code>libc</code>) ve diğer durağan ve
        devingen k&uuml;t&uuml;phanelerde vardır ya da konumdan bağımsız kodu i&ccedil;eren
        durağan k&uuml;t&uuml;phane arşivlerinde (<code>libfilanca.a</code>)
        vardır. Diğer mod&uuml;lleri kullanmak i&ccedil;in tek şansınız ya Apache httpd
        &ccedil;ekirdeğinin mod&uuml;le bir atıf i&ccedil;ermesini sağlamak ya da mod&uuml;l kodunu
        <code>dlopen()</code> vasıtasıyla y&uuml;klemektir.</li>
    </ul>

</div></div>
<div class="bottomlang">
<p><span>Mevcut Diller: </span><a href="./en/dso.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
<a href="./fr/dso.html" hreflang="fr" rel="alternate" title="Fran&ccedil;ais">&nbsp;fr&nbsp;</a> |
<a href="./ja/dso.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
<a href="./ko/dso.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
<a href="./tr/dso.html" title="T&uuml;rk&ccedil;e">&nbsp;tr&nbsp;</a></p>
</div><div id="footer">
<p class="apache">Copyright 2026 The Apache Software Foundation.<br><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
<p class="menu"><a href="./mod/">Mod&uuml;ller</a> | <a href="./mod/quickreference.html">Y&ouml;nergeler</a> | <a href="https://cwiki.apache.org/confluence/display/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a> | <a href="https://bz.apache.org/bugzilla/enter_bug.cgi?product=Apache%20httpd-2">Hata bildir</a></p></div><script><!--//--><![CDATA[//><!--
if (typeof(prettyPrint) !== 'undefined') {
    prettyPrint();
}
var langToggle = document.querySelector('.lang-toggle');
var topLang = document.querySelector('.toplang');
if (langToggle && topLang) {
    langToggle.addEventListener('click', function() { topLang.classList.toggle('open'); });
}
var qv = document.getElementById('quickview');
if (qv) {
    document.body.appendChild(qv);
    var qvBtn = document.createElement('button');
    qvBtn.className = 'qv-toggle';
    qvBtn.setAttribute('aria-label', 'Toggle page navigation');
    qvBtn.innerHTML = '&#9776;';
    document.body.appendChild(qvBtn);
    qvBtn.addEventListener('click', function() {
        var isOpen = qv.classList.toggle('open');
        if (isOpen) {
            qv.style.top = window.scrollY + 10 + 'px';
        }
    });
    window.addEventListener('scroll', function() { qv.classList.remove('open'); });
}
//--><!]]></script>
</body></html>