]> granicus.if.org Git - apache/blob - docs/manual/dso.html.tr.utf8
xforms
[apache] / docs / manual / dso.html.tr.utf8
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" lang="tr" xml:lang="tr"><head><!--
4         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
5               This file is generated from xml source: DO NOT EDIT
6         XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
7       -->
8 <title>Devingen Paylaşımlı Nesne Desteği - Apache HTTP Sunucusu</title>
9 <link href="./style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" />
10 <link href="./style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" />
11 <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" />
12 <script src="./style/scripts/prettify.js" type="text/javascript">
13 </script>
14
15 <link href="./images/favicon.ico" rel="shortcut icon" /></head>
16 <body id="manual-page"><div id="page-header">
17 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p>
18 <p class="apache">Apache HTTP Sunucusu Sürüm 2.5</p>
19 <img alt="" src="./images/feather.gif" /></div>
20 <div class="up"><a href="./"><img title="&lt;-" alt="&lt;-" src="./images/left.gif" /></a></div>
21 <div id="path">
22 <a href="http://www.apache.org/">Apache</a> &gt; <a href="http://httpd.apache.org/">HTTP Sunucusu</a> &gt; <a href="http://httpd.apache.org/docs/">Belgeleme</a> &gt; <a href="./">Sürüm 2.5</a></div><div id="page-content"><div id="preamble"><h1>Devingen Paylaşımlı Nesne Desteği</h1>
23 <div class="toplang">
24 <p><span>Mevcut Diller: </span><a href="./en/dso.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
25 <a href="./fr/dso.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
26 <a href="./ja/dso.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
27 <a href="./ko/dso.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
28 <a href="./tr/dso.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
29 </div>
30
31     <p>Apache HTTP Sunucusu modüler bir program olup, yönetici sadece bir
32       grup modül seçerek sunucuya işlevsellik ekleyebilir. Modüller, Devingen
33       Paylaşımlı Nesneler (DSO - Dynamic Shared Object) halinde
34       <code class="program"><a href="./programs/httpd.html">httpd</a></code> programından ayrı olarak derlenir. DSO modülleri
35       sunucunun derlenmesi sırasında derlenebileceği gibi ayrı olarak derlenip
36       daha sonra Apache Eklenti Aracı (Apache Extension Tool)
37       <code class="program"><a href="./programs/apxs.html">apxs</a></code> programı kullanılarak da sunucuya eklenebilir.</p>
38
39     <p>Bu belgede DSO modüllerinin kullanımının yanında teorisine de
40       değinilecektir.</p>
41   </div>
42 <div id="quickview"><ul id="toc"><li><img alt="" src="./images/down.gif" /> <a href="#implementation">Gerçeklenim</a></li>
43 <li><img alt="" src="./images/down.gif" /> <a href="#usage">Kullanım Özeti</a></li>
44 <li><img alt="" src="./images/down.gif" /> <a href="#background">Artalan Bilgisi</a></li>
45 <li><img alt="" src="./images/down.gif" /> <a href="#advantages">Getiriler ve Götürüler</a></li>
46 </ul><ul class="seealso"><li><a href="#comments_section">Yorum</a></li></ul></div>
47 <div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
48 <div class="section">
49 <h2><a name="implementation" id="implementation">Gerçeklenim</a></h2>
50
51 <table class="related"><tr><th>İlgili Modüller</th><th>İlgili Yö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>
52
53     <p>Apache httpd modüllerini yüklemek için DSO desteği, Apache httpd
54       çekirdeğine durağan olarak ilintilenerek derlenmiş olan
55       <code class="module"><a href="./mod/mod_so.html">mod_so</a></code> adında bir modül tarafından sağlanır.
56       <code class="module"><a href="./mod/core.html">core</a></code> modülünden  başka, bir DSO modülü olamayan tek modül
57       <code class="module"><a href="./mod/mod_so.html">mod_so</a></code> modülüdür. Apache ile dağıtılan hemen hemen tüm
58       diğer Apache modülleri bir DSO modülüne yerleştirilebilir. Derlenmiş
59       modüller <code>mod_filanca.so</code> biçeminde birer DSO ismi alırlar ve
60       her biri istenirse <code>httpd.conf</code> dosyasında
61       <code class="module"><a href="./mod/mod_so.html">mod_so</a></code> modülünün <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> yönergesiyle belirtilerek sunucu başlatılırken
62       veya yeniden başlatılırken sunucuya yüklenebilir.</p>
63
64     <p><a href="install.html">Kurulum belgesinde</a> açıklandığı gibi, her DSO
65       modülü <code class="program"><a href="./programs/configure.html">configure</a></code> programının
66       <code>--enable-mods-static</code> seçeneği ile devredışı bırakılabilir.</p>
67
68     <p>Apache httpd modülleri için (özellikle üçüncü parti modüller için) DSO
69       dosyası üretimini kolaylaştırmak amacıyla <code class="program"><a href="./programs/apxs.html">apxs</a></code>
70       (<dfn>APache eXtenSion</dfn>) adında yeni bir destek programı
71       kullanılmaktadır. Bu program Apache httpd modüllerini Apache httpd kaynak
72       ağacından ayrı olarak derlemek için kullanılabilir. Fikir basittir: Apache
73       HTTP Sunucusu derlenirken DSO dosyalarını derlemek için platforma bağımlı
74       derleyici ve ilintileyici seçenekleri <code class="program"><a href="./programs/apxs.html">apxs</a></code>
75       programının içine konur ve <code>make install</code> ile kurulum sırasında
76       Apache httpd C başlık dosyaları da kurulur. Böylece
77       kullanıcı Apache httpd dağıtımının kaynak ağacına ihtiyaç duymadan ve
78       platforma bağımlı derleyici ve ilintileyici seçeneklerini bilmek zorunda
79       kalmadan istediği Apache httpd modülünü <code class="program"><a href="./programs/apxs.html">apxs</a></code>
80       programını kullanarak derleyebilir.</p>
81 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
82 <div class="section">
83 <h2><a name="usage" id="usage">Kullanım Özeti</a></h2>
84
85     <p>Apache HTTP Sunucusu 2.x’in DSO özelliklerine bir giriş olarak burada
86       kısaca bir bilgi vermekle yetinilecektir:</p>
87
88     <ol>
89       <li><p>Kaynak dosyası <code>mod_filanca.c</code> dosyasında dağıtılan bir
90         <em>özgün</em> Apache htpd modülünü <code>mod_filanca.so</code> isminde
91         bir  DSO modülü olarak derlemek ve kurmak için şöyle yapılır:</p>
92
93 <div class="example"><p><code>
94   $ ./configure --prefix=/kurulum/yeri --enable-filanca<br />
95   $ make install
96 </code></p></div>
97       </li>
98
99       <li><p>Apache HTTP Sunucusunu tüm modüller etkin olarak
100         derleyebilirsiniz. Fakat sunucunun başlatılması sırasında sadece temel
101         modüller yüklenir.  Daha sonra <code>httpd.conf</code> içindeki
102         <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> yönergelerini etkin
103         veya etkisiz hale getirerek yüklenecek modülleri
104         değiştirebilirsiniz.</p>
105
106 <div class="example"><p><code>
107 $ ./configure --enable-mods-shared=all<br />
108 $ make install
109 </code></p></div>
110       </li>
111
112       <li><p>Bazı modüller sadece geliştiriciler içindir ve bunlar tüm
113         modüllerin derlenmesini (<em>all</em>) seçseniz bile derlenmeyecektir.
114         Geliştirici modülleri dehil tüm modülleri derlemek isterseniz
115         <em>reallyall</em> kullanınız. Ek olarak, derlenmiş modüller için
116         kullanılan <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code>
117         yönergelerinin tamamını <code>--enable-load-all-modules</code> derleme
118         seçeneği ile etkin kılabilirsiniz.</p>
119
120 <div class="example"><p><code>
121 $ ./configure --enable-mods-shared=reallyall --enable-load-all-modules<br />
122 $ make install
123 </code></p></div>
124       </li>
125
126       <li><p>Kaynak dosyası <code>mod_filanca.c</code> dosyasında dağıtılan bir
127         <em>üçüncü parti</em> Apache httpd modülü <code>mod_filanca.so</code>
128         isminde bir DSO modülü olarak Apache httpd kaynak ağacının dışında
129         <code class="program"><a href="./programs/apxs.html">apxs</a></code> kullanarak derlemek ve kurmak için şöyle
130         yapılır:</p>
131
132 <div class="example"><p><code>
133 $ cd /bir/kurulum/yeri<br />
134 $ apxs -c mod_filanca.c<br />
135 $ apxs -aci filanca mod_filanca.la
136 </code></p></div>
137       </li>
138     </ol>
139
140     <p>Tüm durumlarda derlenen paylaşımlı modülü Apache httpd’nin etkin
141       kılabilmesi  için <code>httpd.conf</code> dosyasında o modül için bir
142       <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> yönergesi
143       bulunmalıdır.</p>
144
145     <p>Ayrıntılı bilgi için <a href="programs/apxs.html">apxs belgelerine</a>
146       bakınız.</p>
147 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
148 <div class="section">
149 <h2><a name="background" id="background">Artalan Bilgisi</a></h2>
150
151     <p>Günümüzün Unix türevlerinde var olan bir mekanizma sayesinde
152       çalıştırılabilir bir programın adres uzayına çalışma anında yüklenmek
153       veya ilintilenmek üzere <em>Devingen Paylaşımlı Nesneler</em> (DSO -
154       Dynamic Shared Object) adı verilen, özel bir biçem kullanarak kodlanmış
155       program parçaları oluşturulabilir.</p>
156
157     <p>Bu yükleme normalde iki yolla yapılabilir: Ya çalıştırılabilir
158       programın başlatılması sırasında yüklenen <code>ld.so</code> adlı bir
159       sistem programınının devingen olarak yüklenmesi ile ya da
160       çalıştırılabilir programın içinden Unix yükleyicisine programsal sistem
161       arayüzü sağlayan <code>dlopen()/dlsym()</code> sistem çağrılarının elle
162       yapılması suretiyle.</p>
163
164     <p>İlk yöntemde kullanılan DSO’lara genelde <em>paylaşımlı
165       kütüphaneler</em> veya <em>DSO kütüphaneleri</em> adı verilir ve
166       bunların dosyaları <code>libfilanca.so</code> veya
167       <code>libfilanca.so.1.2</code> biçiminde isimlendirilir. Belli bir
168       sistem dizininde (normalde <code>/usr/lib</code>) bulunurlar ve derleme
169       sırasında ilintileyici komutuna <code>-lfilanca</code> şeklinde
170       belirtilerek çalıştırılabilir programla ilintilenirler. Doğrudan
171       çalıştırılabilir koda eklenen bu kodlar Unix yükleyicisinin programın
172       başlatılması sırasında kütüphaneyi <code>/usr/lib</code> altında
173       <code>libfilanca.so</code> adıyla bulabilmesini sağlar. Kütüphanelerin
174       aranacağı yerler ya <code>-R</code> gibi bir ilintileyici seçeneği ile
175       koda eklenir ya da arama yolları <code>LD_LIBRARY_PATH</code> ortam
176       değişkeni aracılığıyla yapılandırılır. Böylece çalıştırılabilir
177       programda henüz çözümlenmemiş simgeler DSO içinde bulunarak
178       çözümlenebilir.</p>
179
180     <p>Çalıştırılabilir program içindeki simgelere normalde DSO içinden
181       atıfta bulunulmaz (genel kod kütüphanesinin başka programlarca da
182       kullanılması nedeniyle). Bu bakımdan DSO tarafında böyle bir çözümleme
183       yapılmaz. Çalıştırılabilir program da DSO’daki simgeleri kendisi
184       çözümlemeye uğraşmaz, bu işlemlerden tamamen Unix yükleyicisi
185       (<code>ld.so</code>) sorumludur. (Aslında, <code>ld.so</code>’yu
186       çağıracak kod, her çalıştırılabilir programın içine ilintilenmiş
187       (durağan değil) başlatma kodunun bir parçasıdır.) Programlar tarafından
188       ortaklaşa kullanılan kütüphanelerin devingen olarak yüklenmesinin sebebi
189       basittir: Kütüphane kodu <code>libc.so</code> gibi bir sistem
190       kütüphanesine bir kere kaydedilip disk alanından yer kazanılmış
191       olur.</p>
192
193     <p>İkinci yöntemde kullanılan DSO’lara yine <em>paylaşımlı
194       kütüphaneler</em> veya <em>DSO kütüphaneleri</em> adı verilir fakat
195       bunların dosyaları geçerli kabule göre <code>filanca.so</code> gibi
196       isimlendirilse de genelde keyfi olarak seçilen bir dosya uzantısı
197       kullanılarak isimlendirilirler. Bu dosyalar genellikle programa özel bir
198       dizinde dururlar ve bu dosyaları kullanacak olan çalıştırılabilir
199       programla aralarında özdevimli olarak bağ kurulmamıştır. Bunun yerine,
200       çalıştırılabilir program DSO’yu çalışma anında <code>dlopen()</code>
201       sayesinde kendi adres uzayına ekler. Çalıştırılabilir program için
202       DSO’daki simgeler bu sırada çözümlenmez. Özdevimli olarak devreye
203       giren Unix yükleyicisi, (varsa) artakalan simgeleri, çalıştırılabilir
204       ihraç edilen simge kümelerini (ve özellikle her yerde hazır ve nazır
205       <code>libc.so</code> içindeki tüm simgeleri) kullanarak çözümler. Bu
206       yolla DSO, çalıştırılabilir programın simge kümesi bilgilerini sanki
207       kendisine baştan durağan olarak ilintilenmiş gibi ulaşabilir.</p>
208
209     <p>Son olarak, DSO’nun programlama arayüzünün getirilerinden yararlanmak
210       amacıyla çalıştırılabilir program, daha sonra dağıtım tabloları vb.
211       yerlerde kullanmak üzere <code>dlsym()</code> üzerinden DSO’daki belli
212       simgeleri çözümlemek zorundadır. Başka bir deyişle: Çalıştırılabilir
213       program ihtiyaç duyduğu her simgeyi kullanmak için kendisi çözümleme
214       yapmak zorundadır. Böyle bir mekanizmanın getirisi, programın isteğe
215       bağlı parçalarının gerekli olana kadar yüklenmemesidir (böylece daha az
216       bellek alanı kullanılır). Gerektiği zaman programın işlevselliğini
217       arttırmak amacıyla bu parçalar devingen olarak programa
218       yüklenebilir.</p>
219
220     <p>DSO mekanizmasının bu basit gibi görünen işleyişinde zorluk içeren bir
221       adım şudur (başkaları da olabilir): Bir programın işlevselliğini
222       genişletmek için DSO kullanılırken (ikinci yöntem) çalıştırılabilir
223       programdan DSO için simgelerin çözümlenmesi.  Zorluğun sebebi,
224       "tersine çözümleme" yapılmasıdır; çalıştırılabilir programın simge
225       kümesindeki DSO simgeleri kütüphane tasarımına aykırı bir şekilde
226       çözümlenir ve bu uygulama tüm platformlarda hazır olarak
227       desteklenmediği gibi standartlaşmış da değildir. Geçer uygulamada
228       çalıştırılabilir programın evrensel simgeleri çoğunlukla yeniden dışa
229       verilmez ve bu bakımdan bir DSO içinde kullanılmaları uygun değildir.
230       Esas sorun, çalıştırılabilir bir programın işlevselliğini çalışma
231       anında genişletmek için DSO kullanımı sırasında ilintileyicinin tüm
232       evrensel simgeleri dışa vermesini zorlamanın bir yolunu bulmaktır.</p>
233
234     <p>Paylaşımlı kütüphane yaklaşımı bu bakımdan türünün tek örneğidir,
235       çünkü DSO mekanizması özellikle bunun için tasarlanmıştır, dolayısıyla
236       işletim sisteminin sağladığı hemen hemen tüm kütüphaneler için
237       kullanılabilir.</p>
238 </div><div class="top"><a href="#page-header"><img alt="top" src="./images/up.gif" /></a></div>
239 <div class="section">
240 <h2><a name="advantages" id="advantages">Getiriler ve Götürüler</a></h2>
241
242     <p>Yukarıda bahsedilen DSO’ya dayalı özelliklerin getirileri
243       şunlardır:</p>
244
245     <ul>
246       <li>Sunucu paketi çalışma anında daha esnektir çünkü, sunucuyu
247         oluşturan parçalar derleme sırasında <code class="program"><a href="./programs/configure.html">configure</a></code>
248         seçenekleriyle birleştirilmek yerine <code>httpd.conf</code> içinde
249         <code class="directive"><a href="./mod/mod_so.html#loadmodule">LoadModule</a></code> yönergeleri
250         sayesinde çalışma anında birleştirilebilmektedir. Bu yolla, örneğin
251         tek bir Apache kurulumuyla birbirinden farklı yapılandırmalara sahip
252         çok sayıda sunucu çalıştırmak mümkündür. (standart veya SSL sürümü;
253         basitleştirilmiş veya devingen sürümü [mod_perl, PHP3], vs.)</li>
254
255       <li>Sunucu paketi kurulumdan sonra bile üçüncü parti modüllerle kolayca
256         genişletilebilir. Bu özellikle, bir Apache temel paketinin yanında
257         PHP, mod_perl, mod_security gibi ek paketler oluşturan paket
258         dağıtıcılarına büyük yarar sağlar.</li>
259
260       <li>Yeni Apache httpd modülleri için daha kolay prototip
261         geliştirilebilir: Modül kaynak kodunu DSO/<code class="program"><a href="./programs/apxs.html">apxs</a></code> çifti
262         sayesinde Apache httpd kaynak ağacının dışında derleyip modülün yeni
263         bir sürümünü bir <code>apxs -i</code> komutunun ardından
264         <code>apachectl restart</code> yaparak çalışan bir Apache HTTP
265         Sunucusunda denemek daha kolay hale getirilmiştir.</li>
266     </ul>
267
268     <p>DSO kullanımının götürüleri ise şunlardır:</p>
269
270     <ul>
271       <li>İlk yüklemede %20 yavaşlama: Unix yükleyicisi simgeleri çözümlemek
272         zorunda olduğundan sunucu ilk başlatılırken yaklaşık %20 daha yavaş
273         faaliyete geçer.</li>
274
275       <li>Çalışma sırasında % 5 yavaşlama: Konumdan bağımsız kodun (PIC -
276         Position Independent Code) göreli adresleme için karmaşık oyunlara
277         girmesi ve bunun mutlak adresleme kadar hızlı olmaması nedeniyle
278         sunucu bazı platformlarda çalışma anında yaklaşık %5 daha yavaş
279         çalışabilir.</li>
280
281       <li>DSO'nun tüm modüller için uygun olmaması: DSO modülleri bazı
282         platformlarda diğer DSO temelli kütüphanelerle ilintilenemediğinden
283         (<code>ld -lfilanca</code>) DSO mekanizmasını tüm modül türleri için
284         kullanamazsınız (örneğin a.out temelli platformlar bu işlevselliği
285         ELF temelli platformlar kadar iyi sağlamaz). Başka bir deyişle, DSO
286         dosyaları olarak derlenmiş modüllerin kullanabileceği simgeler ya
287         Apache httpd temel kodunda vardır ya Apache httpd temel kodunun
288         kullandığı C kütüphanesinde (<code>libc</code>) ve diğer durağan ve
289         devingen kütüphanelerde vardır ya da konumdan bağımsız kodu içeren
290         durağan kütüphane arşivlerinde (<code>libfilanca.a</code>)
291         vardır. Diğer modülleri kullanmak için tek şansınız ya Apache httpd
292         çekirdeğinin modüle bir atıf içermesini sağlamak ya da modül kodunu
293         <code>dlopen()</code> vasıtasıyla yüklemektir.</li>
294     </ul>
295
296 </div></div>
297 <div class="bottomlang">
298 <p><span>Mevcut Diller: </span><a href="./en/dso.html" hreflang="en" rel="alternate" title="English">&nbsp;en&nbsp;</a> |
299 <a href="./fr/dso.html" hreflang="fr" rel="alternate" title="Français">&nbsp;fr&nbsp;</a> |
300 <a href="./ja/dso.html" hreflang="ja" rel="alternate" title="Japanese">&nbsp;ja&nbsp;</a> |
301 <a href="./ko/dso.html" hreflang="ko" rel="alternate" title="Korean">&nbsp;ko&nbsp;</a> |
302 <a href="./tr/dso.html" title="Türkçe">&nbsp;tr&nbsp;</a></p>
303 </div><div class="top"><a href="#page-header"><img src="./images/up.gif" alt="top" /></a></div><div class="section"><h2><a id="comments_section" name="comments_section">Yorum</a></h2><div class="warning"><strong>Notice:</strong><br />This is not a Q&amp;A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed again by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Freenode, or sent to our <a href="http://httpd.apache.org/lists.html">mailing lists</a>.</div>
304 <script type="text/javascript"><!--//--><![CDATA[//><!--
305 var comments_shortname = 'httpd';
306 var comments_identifier = 'http://httpd.apache.org/docs/trunk/dso.html';
307 (function(w, d) {
308     if (w.location.hostname.toLowerCase() == "httpd.apache.org") {
309         d.write('<div id="comments_thread"><\/div>');
310         var s = d.createElement('script');
311         s.type = 'text/javascript';
312         s.async = true;
313         s.src = 'https://comments.apache.org/show_comments.lua?site=' + comments_shortname + '&page=' + comments_identifier;
314         (d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
315     }
316     else {
317         d.write('<div id="comments_thread">Comments are disabled for this page at the moment.<\/div>');
318     }
319 })(window, document);
320 //--><!]]></script></div><div id="footer">
321 <p class="apache">Copyright 2012 The Apache Software Foundation.<br /><a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a> altında lisanslıdır.</p>
322 <p class="menu"><a href="./mod/">Modüller</a> | <a href="./mod/directives.html">Yönergeler</a> | <a href="http://wiki.apache.org/httpd/FAQ">SSS</a> | <a href="./glossary.html">Terimler</a> | <a href="./sitemap.html">Site Haritası</a></p></div><script type="text/javascript"><!--//--><![CDATA[//><!--
323 if (typeof(prettyPrint) !== 'undefined') {
324     prettyPrint();
325 }
326 //--><!]]></script>
327 </body></html>