<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fi">
	<id>https://www.linux.fi/w/index.php?action=history&amp;feed=atom&amp;title=Jaetut_kirjastot</id>
	<title>Jaetut kirjastot - Muutoshistoria</title>
	<link rel="self" type="application/atom+xml" href="https://www.linux.fi/w/index.php?action=history&amp;feed=atom&amp;title=Jaetut_kirjastot"/>
	<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Jaetut_kirjastot&amp;action=history"/>
	<updated>2026-04-23T05:34:43Z</updated>
	<subtitle>Tämän sivun muutoshistoria</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Jaetut_kirjastot&amp;diff=56945&amp;oldid=prev</id>
		<title>Lahtis: typo</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Jaetut_kirjastot&amp;diff=56945&amp;oldid=prev"/>
		<updated>2022-04-09T01:52:20Z</updated>

		<summary type="html">&lt;p&gt;typo&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fi&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Vanhempi versio&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versio 9. huhtikuuta 2022 kello 04.52&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l58&quot;&gt;Rivi 58:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rivi 58:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;arvoa, muutos ei saa näkyä toisessa prosessissa. Tämä on ratkaistu niin&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;arvoa, muutos ei saa näkyä toisessa prosessissa. Tämä on ratkaistu niin&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sanotulla Copy-on-write -mekanismilla, jossa prosessille joka muuttaa&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sanotulla Copy-on-write -mekanismilla, jossa prosessille joka muuttaa&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;muuttujan arvoa, luodaan oma kopionsa &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;musitisivusta&lt;/del&gt;, jossa muuttuja&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;muuttujan arvoa, luodaan oma kopionsa &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;muistisivusta&lt;/ins&gt;, jossa muuttuja&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sijaitsee.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sijaitsee.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lahtis</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Jaetut_kirjastot&amp;diff=42202&amp;oldid=prev</id>
		<title>Foliohattu: Alun perin</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Jaetut_kirjastot&amp;diff=42202&amp;oldid=prev"/>
		<updated>2015-03-24T17:24:00Z</updated>

		<summary type="html">&lt;p&gt;Alun perin&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fi&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Vanhempi versio&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versio 24. maaliskuuta 2015 kello 20.24&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l67&quot;&gt;Rivi 67:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rivi 67:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Jaettujen kirjastojen kehitys Linuxissa==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Jaettujen kirjastojen kehitys Linuxissa==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Alunperin &lt;/del&gt;Linuxissa ei ollut tukea jaetuille kirjastoille. Linuxin&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Alun perin &lt;/ins&gt;Linuxissa ei ollut tukea jaetuille kirjastoille. Linuxin&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;alkuvuosina käytettiin Unixin perintönä niin sanottua&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;alkuvuosina käytettiin Unixin perintönä niin sanottua&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;quot;a.out&amp;quot;-tiedostomuotoa suoritettaville ohjelmille.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;quot;a.out&amp;quot;-tiedostomuotoa suoritettaville ohjelmille.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Foliohattu</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Jaetut_kirjastot&amp;diff=35096&amp;oldid=prev</id>
		<title>Jem: Pientä viilausta.</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Jaetut_kirjastot&amp;diff=35096&amp;oldid=prev"/>
		<updated>2011-09-23T12:05:36Z</updated>

		<summary type="html">&lt;p&gt;Pientä viilausta.&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fi&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Vanhempi versio&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versio 23. syyskuuta 2011 kello 15.05&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot;&gt;Rivi 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rivi 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;käyttötavasta: joko staattisena ei-jaettuna kirjastona tai jaettuna&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;käyttötavasta: joko staattisena ei-jaettuna kirjastona tai jaettuna&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;kirjastona. Ei-jaettu kirjasto koostuu joukosta,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;kirjastona. Ei-jaettu kirjasto koostuu joukosta,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;tyypillisesti C-kielisestä lähdekoodista käännetyistä&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;tyypillisesti &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;C&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;-kielisestä lähdekoodista käännetyistä&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;objektikooditiedostoista, jotka on koottu yhteen&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;objektikooditiedostoista, jotka on koottu yhteen&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;arkistotiedostoon. Tällaisen tiedoston pääte on &amp;lt;tt&amp;gt;.a&amp;lt;/tt&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;arkistotiedostoon. Tällaisen tiedoston pääte on &amp;lt;tt&amp;gt;.a&amp;lt;/tt&amp;gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l46&quot;&gt;Rivi 46:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rivi 46:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Linuxin muistinhallinassa on ominaisuus, joka mahdollistaa&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Linuxin muistinhallinassa on ominaisuus, joka mahdollistaa&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;keskusmuistisivujen jakamisen prosessien kesken. Prosesseilla on&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;keskusmuistisivujen jakamisen &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Prosessi|&lt;/ins&gt;prosessien&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;kesken. Prosesseilla on&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;periaatteessa &lt;/del&gt;erilliset muistiavaruudet, jotka on suojattu toisiltaan,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;erilliset muistiavaruudet, jotka on suojattu toisiltaan,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mutta on mahdollista järjestää asiat niin, että yksi fyysinen&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mutta on mahdollista järjestää asiat niin, että yksi fyysinen&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;muistisivu näkyy useamman prosessin muistiavaruudessa. Tällä&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;muistisivu näkyy useamman prosessin muistiavaruudessa. Tällä&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l108&quot;&gt;Rivi 108:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rivi 108:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kun jaettu kirjasto asennetaan järjestelmään, kirjaston sisältävän&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kun jaettu kirjasto asennetaan järjestelmään, kirjaston sisältävän&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;tiedoston nimeksi annetaan nimi joka on muotoa&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;tiedoston nimeksi annetaan nimi joka on muotoa&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;tt&amp;gt;libfoo.so.M.N&amp;lt;/tt&amp;gt;. M on tässä edellä mainittu major-versionumero&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;tt&amp;gt;libfoo.so.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;M&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;N&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;&amp;lt;/tt&amp;gt;. M on tässä edellä mainittu major-versionumero&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ja N vastaavasti minor-versionumero. Tiedoston pääte .so tulee&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ja N vastaavasti minor-versionumero. Tiedoston pääte .so tulee&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sanoista shared object, eli jaettu objektitiedosto. Samaan hakemistoon&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sanoista shared object, eli jaettu objektitiedosto. Samaan hakemistoon&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;luodaan symbolinen linkki, jonka nimi on libfoo.so.M, joka osoittaa&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;luodaan symbolinen linkki, jonka nimi on libfoo.so.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;M&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;, joka osoittaa&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;kirjaston sisältämään tiedostoon. Esimerkki:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;kirjaston sisältämään tiedostoon. Esimerkki:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l129&quot;&gt;Rivi 129:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rivi 129:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Jaetut kirjastot voivat olla käyttämättä versioituja symboleja,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Jaetut kirjastot voivat olla käyttämättä versioituja symboleja,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;kirjaston tekijän valinnan mukaan. Yksi esimerkki kirjastosta joka&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;kirjaston tekijän valinnan mukaan. Yksi esimerkki kirjastosta joka&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;käyttää niitä on standardikirjasto &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;. Periaate on se, että&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;käyttää niitä on standardikirjasto &amp;lt;tt&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;libc&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;&amp;lt;/tt&amp;gt;. Periaate on se, että&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;kaikki kirjaston aliohjelmat, jotka säilyvät muuttumattomina versiosta&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;kaikki kirjaston aliohjelmat, jotka säilyvät muuttumattomina versiosta&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;toiseen, säilyttävät vanhan versionumeronsa. Kun kirjaston aliohjelmaa&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;toiseen, säilyttävät vanhan versionumeronsa. Kun kirjaston aliohjelmaa&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l154&quot;&gt;Rivi 154:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rivi 154:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  char *realpath(const char *path, char *resolved_path);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  char *realpath(const char *path, char *resolved_path);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;GNU Libc -kirjaston versiossa 2.3 muutettiin funktion toimintaa siten,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;GNU&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] &lt;/ins&gt;Libc -kirjaston versiossa 2.3 muutettiin funktion toimintaa siten,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;että resolved_path-parametrin arvoksi hyväksytään myös NULL, jolloin&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;että resolved_path-parametrin arvoksi hyväksytään myös NULL, jolloin&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;funktio itse varaa tarvittavan muistin ja palauttaa sen funktion&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;funktio itse varaa tarvittavan muistin ja palauttaa sen funktion&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l176&quot;&gt;Rivi 176:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rivi 176:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kun uusi ohjelma käynnistetään, käyttöjärjestelmän ydin lataa ohjelman&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Kun uusi ohjelma käynnistetään, käyttöjärjestelmän ydin lataa ohjelman&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;keskusmuistiin. Tarkemmin sanottuna, latausta ei tehdä vielä tässä&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;keskusmuistiin. Tarkemmin sanottuna, latausta ei tehdä vielä tässä&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;vaiheessa, vaan tehdään kuvaus (mmap) ohjelmatiedostosta prosessin&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;vaiheessa, vaan tehdään kuvaus (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/ins&gt;mmap&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/ins&gt;) ohjelmatiedostosta prosessin&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;muistiavaruuteen. Lataus massamuistilta keskumuistiin tapahtuu sitä&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;muistiavaruuteen. Lataus massamuistilta keskumuistiin tapahtuu sitä&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mukaa kuin ohjelman suoritus etenee; jos ohjelman kontrolli siirtyy&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;mukaa kuin ohjelman suoritus etenee; jos ohjelman kontrolli siirtyy&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l218&quot;&gt;Rivi 218:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rivi 218:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Viimeisenä oljenkortena dynaaminen linkkeri etsii kirjastoja hakemistoista /lib ja /usr/lib (ellei ohjelmaa ole linkattu &amp;lt;tt&amp;gt;-z nodeflib&amp;lt;/tt&amp;gt;-optiolla).&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Viimeisenä oljenkortena dynaaminen linkkeri etsii kirjastoja hakemistoista /lib ja /usr/lib (ellei ohjelmaa ole linkattu &amp;lt;tt&amp;gt;-z nodeflib&amp;lt;/tt&amp;gt;-optiolla).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;LD_LIBRARY_PATH-muuttujaa ei turvallisuussyistä huomioida, jos suoritettava ohjelma on [[suid]]-binääri.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;LD_LIBRARY_PATH-muuttujaa ei turvallisuussyistä huomioida, jos suoritettava ohjelma on [[suid]]-binääri. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Huomaa, että kirjastoa oletusarvoisesti &#039;&#039;ei&#039;&#039; etsitä&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* hakemistosta, jossa ohjelma on käynnistetty&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* hakemistosta, jossa ohjelmatiedosto sijaitsee&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;tt&amp;gt;/etc/ld.so.cache&amp;lt;/tt&amp;gt;-tiedosto on binääritiedosto, joka sisältää&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;tt&amp;gt;/etc/ld.so.cache&amp;lt;/tt&amp;gt;-tiedosto on binääritiedosto, joka sisältää&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l226&quot;&gt;Rivi 226:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rivi 228:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;tt&amp;gt;.dynamic&amp;lt;/tt&amp;gt;-sektiossa. Tämän nimen ei tarvitse olla sama kuin&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;tt&amp;gt;.dynamic&amp;lt;/tt&amp;gt;-sektiossa. Tämän nimen ei tarvitse olla sama kuin&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;kirjaston sisältämän tiedoston nimi. Muissa tapauksissa kuin kohdassa&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;kirjaston sisältämän tiedoston nimi. Muissa tapauksissa kuin kohdassa&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;3 &lt;/del&gt;yllä olevassa hakujärjestyksessä käytetään kuitenkin tiedoston nimeä&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;4 &lt;/ins&gt;yllä olevassa hakujärjestyksessä käytetään kuitenkin tiedoston nimeä&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;samannimisen kirjaston paikallistamiseen.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;samannimisen kirjaston paikallistamiseen.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l274&quot;&gt;Rivi 274:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Rivi 276:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Luokka:Käsitteet]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Luokka:Käsitteet]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Luokka:Järjestelmä]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
	<entry>
		<id>https://www.linux.fi/w/index.php?title=Jaetut_kirjastot&amp;diff=35088&amp;oldid=prev</id>
		<title>Jem: Linuxin jaettujen kirjastojen historia, nykytila ja käyttö.</title>
		<link rel="alternate" type="text/html" href="https://www.linux.fi/w/index.php?title=Jaetut_kirjastot&amp;diff=35088&amp;oldid=prev"/>
		<updated>2011-09-23T08:02:18Z</updated>

		<summary type="html">&lt;p&gt;Linuxin jaettujen kirjastojen historia, nykytila ja käyttö.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Uusi sivu&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Aliohjelmakirjastolla, tai lyhyemmin kirjastolla, tarkoitetaan&lt;br /&gt;
kokoelmaa yleishyödyllisiä aliohjelmia tai funktioita, jotka on koottu&lt;br /&gt;
yhteen. Perusajatuksena on, ettei jokaista kehitettävää uutta ohjelmaa&lt;br /&gt;
varten tarvitsisi keksiä pyörää uudestaan, vaan ohjelman tekijä voi&lt;br /&gt;
hyödyntää jo olemassa olevia aliohjelmia. Tällöin ohjelman tekijä voi&lt;br /&gt;
nojautua olemassa olevaan alemman tason toiminnallisuuteen, kuten&lt;br /&gt;
syöttö- ja tulostusrutiineihin, ja keskittyä kirjoittamaan omalle&lt;br /&gt;
ohjelmalle olennaista koodia.&lt;br /&gt;
&lt;br /&gt;
Jaettu kirjasto on aliohjelmakirjaston muunnelma, jossa kirjasto on talletettu erilliseen tiedostoon, jolloin sama kirjasto on jaettavissa monen ohjelman kesken.&lt;br /&gt;
&lt;br /&gt;
==Ei-jaetut kirjastot==&lt;br /&gt;
&lt;br /&gt;
Aliohjelmakirjasto voi olla kahdessa eri muodossa, riippuen&lt;br /&gt;
käyttötavasta: joko staattisena ei-jaettuna kirjastona tai jaettuna&lt;br /&gt;
kirjastona. Ei-jaettu kirjasto koostuu joukosta,&lt;br /&gt;
tyypillisesti C-kielisestä lähdekoodista käännetyistä&lt;br /&gt;
objektikooditiedostoista, jotka on koottu yhteen&lt;br /&gt;
arkistotiedostoon. Tällaisen tiedoston pääte on &amp;lt;tt&amp;gt;.a&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Kun ohjelma rakennetaan käyttäen ei-jaettua kirjastoa, ohjelman&lt;br /&gt;
linkkausvaiheessa kerrotaan mistä arkistotiedostosta sen pitä etsiä&lt;br /&gt;
kirjastossa olevia aliohjelmia. Linkkeri kopioi arkistotiedostosta&lt;br /&gt;
tarvittavat osat, ja liittää ne ohjelman lopulliseen&lt;br /&gt;
suoritustiedostoon.&lt;br /&gt;
&lt;br /&gt;
Ei-jaetuissa kirjastoissa on haittapuolensa, jotka korostuvat sitä&lt;br /&gt;
mukaa kuin kirjastojen koot ja lukumäärä kasvavat. Koska linkkeri&lt;br /&gt;
liittää ohjelman rakennusvaiheessa ei-jaetusta kirjastosta tarvittavat&lt;br /&gt;
aliohjelmat, on jokaisessa kirjastoa käyttävässä ohjelmassa&lt;br /&gt;
aliohjelmista omat kopionsa. Tämä johtaa siihen, että ohjelmatiedostojen&lt;br /&gt;
koot kasvavat, mutta ennen kaikkea se vaikuttaa haitallisesti tietokoneen&lt;br /&gt;
keskusmuistin kulutukseen moniajojärjestelmässä, jossa on useampia&lt;br /&gt;
ohjelmia ajossa samanaikaisesti. Tilannetta helpottaa hieman se, että&lt;br /&gt;
älykäs linkkeri kopioi ainoastaan tarvittavat aliohjelmat, ei koko&lt;br /&gt;
kirjastoa, mutta käytännössä säästö ei ole kovin suuri.&lt;br /&gt;
&lt;br /&gt;
==Jaetut kirjastot==&lt;br /&gt;
&lt;br /&gt;
Edellä mainittua kirjastojen kopioitumisongelmaa ratkaisemaan on&lt;br /&gt;
kehitetty niin sanotut jaetut kirjastot. Jaettuja kirjastoja&lt;br /&gt;
käytettäessä ei kirjaston aliohjelmia liitetä osaksi suoritettavaa&lt;br /&gt;
ohjelmatiedostoa, vaan ohjelmaan liitetään vain viittaus jaetun&lt;br /&gt;
kirjaston sisältävään tiedostoon. Kun ohjelma suoritetaan, kirjasto&lt;br /&gt;
ladataan muistiin.&lt;br /&gt;
&lt;br /&gt;
Linuxin muistinhallinassa on ominaisuus, joka mahdollistaa&lt;br /&gt;
keskusmuistisivujen jakamisen prosessien kesken. Prosesseilla on&lt;br /&gt;
periaatteessa erilliset muistiavaruudet, jotka on suojattu toisiltaan,&lt;br /&gt;
mutta on mahdollista järjestää asiat niin, että yksi fyysinen&lt;br /&gt;
muistisivu näkyy useamman prosessin muistiavaruudessa. Tällä&lt;br /&gt;
mekanismilla saadaan ratkaistuksi toinenkin ei-jaettujen kirjastojen&lt;br /&gt;
ongelma, eli koodin kopioituminen keskusmuistissa.&lt;br /&gt;
&lt;br /&gt;
Myös kirjastojen määrittelemä data on jaettu prosessien&lt;br /&gt;
kesken. Kirjaston määrittelemät muuttujat eivät kuitenkaan ole&lt;br /&gt;
prosesseille yhteisiä, eli kun yhdessä prosessissa muutetaan muuttujan&lt;br /&gt;
arvoa, muutos ei saa näkyä toisessa prosessissa. Tämä on ratkaistu niin&lt;br /&gt;
sanotulla Copy-on-write -mekanismilla, jossa prosessille joka muuttaa&lt;br /&gt;
muuttujan arvoa, luodaan oma kopionsa musitisivusta, jossa muuttuja&lt;br /&gt;
sijaitsee.&lt;br /&gt;
&lt;br /&gt;
Huomaa, että mekanismi ei suoranaisesti liity Linuxin jaettuihin&lt;br /&gt;
kirjastoihin, vaan on Linuxin ytimen ominaisuus jota hyödynnetään&lt;br /&gt;
jaettujen kirjastojen käsittelyssä.&lt;br /&gt;
&lt;br /&gt;
==Jaettujen kirjastojen kehitys Linuxissa==&lt;br /&gt;
&lt;br /&gt;
Alunperin Linuxissa ei ollut tukea jaetuille kirjastoille. Linuxin&lt;br /&gt;
alkuvuosina käytettiin Unixin perintönä niin sanottua&lt;br /&gt;
&amp;quot;a.out&amp;quot;-tiedostomuotoa suoritettaville ohjelmille.&lt;br /&gt;
a.out-tiedostomuodolle suunniteltiin Linuxia varten mekanismi jaettujen kirjastojen&lt;br /&gt;
käyttämiseksi, joka olikin käytössä jonkin aikaa. Tämän mekanismin&lt;br /&gt;
suurin puute oli se, että kirjastot oli rakennettu ladattaviksi&lt;br /&gt;
kiinteisiin osoitteisiin, joita ei pystytty enää muuttamaan&lt;br /&gt;
latausvaiheessa. Tämän tyyppisiä jaettuja kirjastoja sanotaan&lt;br /&gt;
&amp;#039;&amp;#039;staattisiksi jaetuiksi kirjastoiksi&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Latausosoitteiden joustamattomuuden takia samaan prosessiin ei voitu&lt;br /&gt;
ladata päällekkäisiä muistiosoitteita käyttäviä kirjastoja.&lt;br /&gt;
Päällekkäisyyksien välttämiseksi Linuxin jaetuista kirjastoista&lt;br /&gt;
pidettiin keskitettyä rekisteriä, jossa niille allokoitiin jokaiselle&lt;br /&gt;
omat käytettävissä olevat muistiavaruudet.&lt;br /&gt;
&lt;br /&gt;
==Nykyaikaiset jaetut kirjastot==&lt;br /&gt;
&lt;br /&gt;
Linux siirtyi versiosta 1.2 käyttämään uudempaa ELF (Executable and&lt;br /&gt;
Linkable Format) -tiedostomuotoa suoritettaville ohjelmille ja&lt;br /&gt;
kirjastoille. Tässä formaatissa on otettu paremmin huomioon jaettujen&lt;br /&gt;
kirjastojen asettamat vaatimukset. ELF-formaattissa on tuki&lt;br /&gt;
ns. relokoinnille, jonka ansiosta kirjaston voi ladata alkaen mistä&lt;br /&gt;
tahansa vapaana olevasta muistiosoitteesta. Tämä vaatii tosin jonkin verran&lt;br /&gt;
ylimääräistä työtä sekä kirjaston latausvaiheessa että ohjelman ajon&lt;br /&gt;
aikana.&lt;br /&gt;
&lt;br /&gt;
===Jaettujen kirjastojen versionumerot===&lt;br /&gt;
&lt;br /&gt;
Käytäntönä on, että jaetun kirjaston versionumero koostuu kahdesta&lt;br /&gt;
osasta, ns. major- ja minor-versionumerot. Major-numeroa muutetaan,&lt;br /&gt;
kun kirjasto on olennaisesti erilainen kuin edellinen&lt;br /&gt;
versio. Olennaisella muutoksella tarkoitetaan, että esimerkiksi&lt;br /&gt;
funktion kutsutapa muuttuu, tai että kirjaston aliohjelmat toimivat&lt;br /&gt;
eri tavalla kuin ennen. Minor-numero muuttuu tyypillisesti kun&lt;br /&gt;
kirjastossa on korjattu virhe. (Toki kirjasto toimii silloinkin eri&lt;br /&gt;
tavalla kuin sen edellinen versio, mutta tässä tapauksessa se on&lt;br /&gt;
korjattu toimivaksi siten kuin se on dokumentoitu toimivan.)&lt;br /&gt;
&lt;br /&gt;
Kun jaettu kirjasto asennetaan järjestelmään, kirjaston sisältävän&lt;br /&gt;
tiedoston nimeksi annetaan nimi joka on muotoa&lt;br /&gt;
&amp;lt;tt&amp;gt;libfoo.so.M.N&amp;lt;/tt&amp;gt;. M on tässä edellä mainittu major-versionumero&lt;br /&gt;
ja N vastaavasti minor-versionumero. Tiedoston pääte .so tulee&lt;br /&gt;
sanoista shared object, eli jaettu objektitiedosto. Samaan hakemistoon&lt;br /&gt;
luodaan symbolinen linkki, jonka nimi on libfoo.so.M, joka osoittaa&lt;br /&gt;
kirjaston sisältämään tiedostoon. Esimerkki:&lt;br /&gt;
&lt;br /&gt;
 -rwxr-xr-x 1 root root 14616 Jul 24 19:34 libdl-2.13.so&lt;br /&gt;
 lrwxrwxrwx 1 root root    13 Jul 24 19:36 libdl.so.2 -&amp;gt; libdl-2.13.so&lt;br /&gt;
&lt;br /&gt;
===Versioidut symbolit===&lt;br /&gt;
&lt;br /&gt;
Edellä mainittu ei kuitenkaan ole koko totuus jaettujen kirjastojen&lt;br /&gt;
versioinnista. Linuxin jaetut kirjastot voivat sisältää myös&lt;br /&gt;
&amp;#039;&amp;#039;versioituja symboleja&amp;#039;&amp;#039;, joiden avulla sama kirjasto voi sisältää&lt;br /&gt;
monta eri versiota samannimisestä aliohjelmasta. Vanhempi ohjelma,&lt;br /&gt;
joka on rakennettu kirjaston vanhempaa versiota varten, löytää&lt;br /&gt;
kirjastosta vanhemman version aliohjelmasta, kun taas uudempi ohjelma&lt;br /&gt;
voi automaattisesti hyödyntää uutta versiota aliohjelmasta.&lt;br /&gt;
&lt;br /&gt;
Jaetut kirjastot voivat olla käyttämättä versioituja symboleja,&lt;br /&gt;
kirjaston tekijän valinnan mukaan. Yksi esimerkki kirjastosta joka&lt;br /&gt;
käyttää niitä on standardikirjasto &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;. Periaate on se, että&lt;br /&gt;
kaikki kirjaston aliohjelmat, jotka säilyvät muuttumattomina versiosta&lt;br /&gt;
toiseen, säilyttävät vanhan versionumeronsa. Kun kirjaston aliohjelmaa&lt;br /&gt;
muutetaan siten, ettei se ole enää yhteensopiva vanhan version kanssa,&lt;br /&gt;
kirjastoon lisätään uudella versionumerolla varustettu aliohjelma&lt;br /&gt;
vanhan rinnalle.&lt;br /&gt;
&lt;br /&gt;
Kun ohjelma linkataan &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;:llä, kirjastosta otetaan lähes poikkeuksetta&lt;br /&gt;
käyttöön uusin versio aliohjelmista. Kun suoritetaan vanhaa ohjelmaa,&lt;br /&gt;
joka on rakennusvaiheessa linkattu vanhempaa &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;:tä&lt;br /&gt;
käyttäen, se on myös yhteensopiva uuden jaetun kirjaston kanssa, sillä&lt;br /&gt;
uudesta kirjastosta löytyy myös vanhemmat versiot&lt;br /&gt;
aliohjelmista. Uudella &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;:llä linkattu ohjelmatiedosto&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;saattaa&amp;#039;&amp;#039;&amp;#039; myös toimia siirrettynä ympäristöön, jossa on vanhempi&lt;br /&gt;
versio jaetusta kirjastosta. Tämä edellyttää kuitenkin, että ohjelma&lt;br /&gt;
ei käytä aliohjelmaa, josta on uudempi versio kirjastossa jota vasten&lt;br /&gt;
se on rakennettu. Nyrkkisääntönä on siis, että vanhempi ohjelma on&lt;br /&gt;
yhteensopiva uudemman kirjaston kanssa, mutta uudempi ohjelma ei&lt;br /&gt;
välttämättä toimi vanhemman kirjaston kanssa.&lt;br /&gt;
&lt;br /&gt;
Tarkastellaan edellistä esimerkin valossa. &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;-kirjasto&lt;br /&gt;
määrittelee &amp;lt;tt&amp;gt;realpath&amp;lt;/tt&amp;gt;-funktion:&lt;br /&gt;
&lt;br /&gt;
 char *realpath(const char *path, char *resolved_path);&lt;br /&gt;
&lt;br /&gt;
GNU Libc -kirjaston versiossa 2.3 muutettiin funktion toimintaa siten,&lt;br /&gt;
että resolved_path-parametrin arvoksi hyväksytään myös NULL, jolloin&lt;br /&gt;
funktio itse varaa tarvittavan muistin ja palauttaa sen funktion&lt;br /&gt;
paluuarvona.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;readelf&amp;lt;/tt&amp;gt;-ohjelmalla voi luetella kirjaston aliohjelmien nimet:&lt;br /&gt;
&lt;br /&gt;
 readelf -s /lib/libc.so.6&lt;br /&gt;
&lt;br /&gt;
Tulosteesta löytyy kaksi &amp;lt;tt&amp;gt;realpath&amp;lt;/tt&amp;gt;-funktiota:&lt;br /&gt;
&lt;br /&gt;
 1167: 000000000010e3c0    33 FUNC    GLOBAL DEFAULT   11 realpath@GLIBC_2.2.5&lt;br /&gt;
 1168: 000000000003d210  1213 FUNC    GLOBAL DEFAULT   11 realpath@@GLIBC_2.3&lt;br /&gt;
&lt;br /&gt;
Ohjelma, joka on tehty vanhemmalla &amp;lt;tt&amp;gt;libc&amp;lt;/tt&amp;gt;:n versiolla kuin 2.3,&lt;br /&gt;
sisältää viittauksen 2.2.5-versioon funktiosta, uudemmat ohjelmat&lt;br /&gt;
käyttävät versiota 2.3.&lt;br /&gt;
&lt;br /&gt;
===Jaettua kirjastoa käyttävän ohjelman lataus===&lt;br /&gt;
&lt;br /&gt;
Kun uusi ohjelma käynnistetään, käyttöjärjestelmän ydin lataa ohjelman&lt;br /&gt;
keskusmuistiin. Tarkemmin sanottuna, latausta ei tehdä vielä tässä&lt;br /&gt;
vaiheessa, vaan tehdään kuvaus (mmap) ohjelmatiedostosta prosessin&lt;br /&gt;
muistiavaruuteen. Lataus massamuistilta keskumuistiin tapahtuu sitä&lt;br /&gt;
mukaa kuin ohjelman suoritus etenee; jos ohjelman kontrolli siirtyy&lt;br /&gt;
muistisivulle, joka on &amp;quot;tyhjä&amp;quot;, eli jonka sisältöä ei ole ladattu&lt;br /&gt;
massamuistilta, tapahtuu ns. &amp;#039;&amp;#039;page fault&amp;#039;&amp;#039;. Tällöin ytimen&lt;br /&gt;
poikkeuskäsittelijä lataa sivun sisällön ohjelmatiedostosta ennen kuin&lt;br /&gt;
suoritus voi jatkua.&lt;br /&gt;
&lt;br /&gt;
Jos ohjelma käyttää ainakin yhtä jaettua kirjastoa, ohjelmaa ei vielä&lt;br /&gt;
käynnistetä tässä vaiheessa. Sen sijaan käyttöjärjestelmän ydin lukee&lt;br /&gt;
ELF-ohjelmatiedostosta dynaamisen linkkerin nimen. Dynaaminen linkkeri&lt;br /&gt;
on jaetun kirjaston muodossa oleva ohjelma, jonka tehtävänä on ladata&lt;br /&gt;
jaetut kirjastot muistiin. Dynaamisen linkkerin nimi on kerrottu&lt;br /&gt;
ELF-tiedoston .interp-sektiossa (sanasta &amp;quot;interpreter&amp;quot;, eli tulkki),&lt;br /&gt;
ja se on sinne kirjoitettu ohjelman rakennusvaiheessa. Ydin lataa myös&lt;br /&gt;
dynaamisen linkkerin prosessin muistiavaruuteen ja siirtää ohjelman&lt;br /&gt;
suorituksen siihen. Dynaamisen linkkerin nimi riippuu käytettävästä&lt;br /&gt;
prosessoriarkkitehtuurista, 64-bittisessä x86_64-koneessa se sijaitsee&lt;br /&gt;
tiedostossa &amp;lt;tt&amp;gt;/lib64/ld-linux-x86-64.so.2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Syy miksi näin tehdään on se, että ohjelma ei ole vielä ajokelpoinen&lt;br /&gt;
ilman tarvitsemiaan jaettuja kirjastoja. Yksinkertaisimmankin&lt;br /&gt;
C-kielellä kirjoitetun ohjelman suoritys tyssäisi heti ensimmäiseen&lt;br /&gt;
&amp;lt;tt&amp;gt;printf&amp;lt;/tt&amp;gt;-funktion kutsuun. Tämän ongelman olisi tietysti voinut&lt;br /&gt;
ratkaista siten, että dynaamisen linkkerin toiminnallisuus olisi&lt;br /&gt;
sisällytetty ytimeen ja ydin olisi ladannut sekä ohjelman että&lt;br /&gt;
ohjelman tarvitsemat kirjastot muistiin ennen suorituksen alkua. Tätä&lt;br /&gt;
ei kuitenkaan haluta tehdä, sillä ydin halutaan pitää mahdollisimman&lt;br /&gt;
pienenä ja toiminnallisuus, jota ytimessä ei tarvita, siirretään pois&lt;br /&gt;
sieltä.&lt;br /&gt;
&lt;br /&gt;
===Miten dynaaminen linkkeri löytää jaetut kirjastot?===&lt;br /&gt;
&lt;br /&gt;
Dynaaminen linkkeri etsii dynaamisia jaettuja kirjastoja seuraavassa&lt;br /&gt;
järjestyksessä:&lt;br /&gt;
&lt;br /&gt;
# Jos ohjelman ELF-tiedosto sisältää &amp;#039;&amp;#039;DT_RPATH&amp;#039;&amp;#039;-sektion, se sisältää listan hakemistoja, joista dynaaminen linkkeri etsii jaettuja kirjastoja (tätä mekanismia ei enää suositella käytettäväksi).&lt;br /&gt;
# Jos [[ympäristömuuttuja]] LD_LIBRARY_PATH on määritelty, ja se sisältää kasoispisteillä erotettuja hakemistojen nimiä, kirjastoja etsitään näistä hakemistoista.&lt;br /&gt;
# Jos ohjelman ELF-tiedosto sisältää &amp;#039;&amp;#039;DT_RUNPATH&amp;#039;&amp;#039;-sektion, se sisältää listan hakemistoja, joista dynaaminen linkkeri etsii jaettuja kirjastoja.&lt;br /&gt;
# Kirjastoa etsitään &amp;lt;tt&amp;gt;/etc/ld.so.cache&amp;lt;/tt&amp;gt;-tiedostosta. Tämä on normaali tapa, jolla dynaaminen linkkeri paikallistaa jaetut kirjastot.&lt;br /&gt;
# Viimeisenä oljenkortena dynaaminen linkkeri etsii kirjastoja hakemistoista /lib ja /usr/lib (ellei ohjelmaa ole linkattu &amp;lt;tt&amp;gt;-z nodeflib&amp;lt;/tt&amp;gt;-optiolla).&lt;br /&gt;
&lt;br /&gt;
LD_LIBRARY_PATH-muuttujaa ei turvallisuussyistä huomioida, jos suoritettava ohjelma on [[suid]]-binääri.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/etc/ld.so.cache&amp;lt;/tt&amp;gt;-tiedosto on binääritiedosto, joka sisältää&lt;br /&gt;
kuvauksia kirjaston nimestä kirjaston sisältävän tiedoston&lt;br /&gt;
absoluuttiseen tiedostopolkuun. Kirjaston virallinen nimi on kerrottu&lt;br /&gt;
&amp;#039;&amp;#039;soname&amp;#039;&amp;#039;-kentässä kirjaston sisällä olevassa&lt;br /&gt;
&amp;lt;tt&amp;gt;.dynamic&amp;lt;/tt&amp;gt;-sektiossa. Tämän nimen ei tarvitse olla sama kuin&lt;br /&gt;
kirjaston sisältämän tiedoston nimi. Muissa tapauksissa kuin kohdassa&lt;br /&gt;
3 yllä olevassa hakujärjestyksessä käytetään kuitenkin tiedoston nimeä&lt;br /&gt;
samannimisen kirjaston paikallistamiseen.&lt;br /&gt;
&lt;br /&gt;
Aina kun järjestelmään on asennettu uusi jaettu kirjasto (joko&lt;br /&gt;
kokonaan uusi, tai uusi versio olemassaolevasta kirjastosta), pitää&lt;br /&gt;
suorittaa &amp;lt;tt&amp;gt;[[ldconfig]]&amp;lt;/tt&amp;gt;-ohjelma. Tämä ohjelma päivittää yllä&lt;br /&gt;
mainitun &amp;lt;tt&amp;gt;/etc/ld.so.cache&amp;lt;/tt&amp;gt;-tiedoston ajan tasalle, ja&lt;br /&gt;
huolehtii lisäksi siitä, että aiemmin mainitut symboliset linkit&lt;br /&gt;
osoittavat viimeisimpään versioon kirjastosta.&lt;br /&gt;
&amp;lt;tt&amp;gt;ldconfig&amp;lt;/tt&amp;gt;-ohjelma lukee luettelon hakemistoista, joista&lt;br /&gt;
kirjastoja etsitään, tiedostosta &amp;lt;tt&amp;gt;/etc/ld.so.conf&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Huom! Jos kirjastoja asennetaan jakelun ohjelmapaketeista, kaikesta tästä on tietenkin huolehdittu ja tapahtuu automaattisesti, eikä &amp;lt;tt&amp;gt;ldconfig&amp;lt;/tt&amp;gt;-ohjelmaa ole tarvetta suorittaa &amp;quot;käsin&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==Jaettujen kirjastojen lataaminen ohjelmakoodista==&lt;br /&gt;
&lt;br /&gt;
Dynaamisen jaetun kirjaston pystyy myös lataamaan ohjelmasta käsin,&lt;br /&gt;
ajon aikana. Tämä tapahtuu &amp;lt;tt&amp;gt;dlopen&amp;lt;/tt&amp;gt;-funktiolla, joka palauttaa&lt;br /&gt;
onnistuneen kutsun tuloksena kahvan jaettuun kirjastoon. Kahvaa&lt;br /&gt;
annetaan &amp;lt;tt&amp;gt;dlsym&amp;lt;/tt&amp;gt;-funktiolle, joka palauttaa osoitteen, johon&lt;br /&gt;
haluttu symboli on ladattu muistiin. Lisätietoja &amp;lt;tt&amp;gt;dlopen&amp;lt;/tt&amp;gt;:n&lt;br /&gt;
manuaalisivulla.&lt;br /&gt;
&lt;br /&gt;
==Lisätietoja==&lt;br /&gt;
&lt;br /&gt;
Ohjelman käyttämistä dynaamisista jaetuista kirjastoista saa tietoa&lt;br /&gt;
komennolla &amp;lt;tt&amp;gt;[[ldd]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Esimerkki:&lt;br /&gt;
&lt;br /&gt;
 ldd /bin/ls&lt;br /&gt;
&lt;br /&gt;
 linux-vdso.so.1 =&amp;gt;  (0x00007fff5ddff000)&lt;br /&gt;
 librt.so.1 =&amp;gt; /lib64/librt.so.1 (0x00007f1e64e7c000)&lt;br /&gt;
 libacl.so.1 =&amp;gt; /lib64/libacl.so.1 (0x00007f1e64c73000)&lt;br /&gt;
 libc.so.6 =&amp;gt; /lib64/libc.so.6 (0x00007f1e648ed000)&lt;br /&gt;
 libpthread.so.0 =&amp;gt; /lib64/libpthread.so.0 (0x00007f1e646d0000)&lt;br /&gt;
 /lib64/ld-linux-x86-64.so.2 (0x00007f1e65085000)&lt;br /&gt;
 libattr.so.1 =&amp;gt; /lib64/libattr.so.1 (0x00007f1e644cb000)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;ldd&amp;lt;/tt&amp;gt;-komento myös ilmoittaa, jos jokin ohjelman tarvitsemista&lt;br /&gt;
kirjastoista ei löydy.&lt;br /&gt;
&lt;br /&gt;
Muita kiinnostavia ohjelmia, joilla voi tutkia kirjastoja,&lt;br /&gt;
objektitiedostoja ja ohjelmia ovat &amp;lt;tt&amp;gt;[[readelf]]&amp;lt;/tt&amp;gt; ja&lt;br /&gt;
&amp;lt;tt&amp;gt;[[objdump]]&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
[[Luokka:Käsitteet]]&lt;/div&gt;</summary>
		<author><name>Jem</name></author>
	</entry>
</feed>