<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:osnews="http://osnews.com/rss2#">
	<channel>
		<title>OSNews: </title>
		<link>http://www.osnews.com/story/20221/Anatomy_of_Linux_Dynamic_Libraries</link>
		<description>Exploring the Future of Computing</description>
		<language>en-us</language>
		<copyright>Copyright 2001-2009, David Adams</copyright>
		<webMaster>adam+nospam@osnews.com</webMaster>
		<lastBuildDate>Fri, 11 Dec 2009 04:15:24 GMT</lastBuildDate>
		<image>
			<url>http://www.osnews.com/images/osnews.gif</url>
			<title>OSNews.com</title>
			<link>http://www.osnews.com</link>
		</image>
		<item>
			<title>Nice Article</title>
			<link>http://osnews.com/thread?328099</link>
			<guid isPermaLink="true">http://osnews.com/thread?328099</guid>
			<description>I really appreciate articles such as this, since I don't have the shelf-space (or the funds!) to build a comprehensive library on how to program in Linux</description>
			<pubDate>Wed, 27 Aug 2008 03:59:00 GMT</pubDate>
			<author>donotreply@osnews.com (StychoKiller)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Not a good ELF</title>
			<link>http://osnews.com/thread?328107</link>
			<guid isPermaLink="true">http://osnews.com/thread?328107</guid>
			<description>I've had a detailed look at 2 binary formats over the years, both ELF and Microsoft's PE.<br />
<br />
PE doesn't generate position-independent code, so it's slightly faster than ELF since eg. the EBX register is available to x86 applications to use. However each DLL has to be loaded at a particular location in memory, and that location cannot change after the DLL is loaded, so if that memory region is unavailable in a new process, the DLL has to be &quot;rebased&quot;, ie. a new private copy of it loaded somewhere else in memory, which uses extra memory in that process.<br />
<br />
ELF does generate position-independent code so it never has the rebasing problem, at the cost of a slight slow down in performance, but in ELF symbol lookup is process scoped, not library scoped like everywhere else. So if 2 libraries define the same symbol, the first library loaded wins. This is a big problem in real world applications, as Autopackage discovered.</description>
			<pubDate>Wed, 27 Aug 2008 05:24:00 GMT</pubDate>
			<author>donotreply@osnews.com (draethus)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>Better use Drepper's</title>
			<link>http://osnews.com/thread?328164</link>
			<guid isPermaLink="true">http://osnews.com/thread?328164</guid>
			<description>Here is a much much better and in-depth article: <a href="http://people.redhat.com/drepper/dsohowto.pdf" rel="nofollow">http://people.redhat.com/drepper/dsohowto.pdf</a> How to write shared librariesEdited 2008-08-27 14:17 UTC</description>
			<pubDate>Wed, 27 Aug 2008 14:15:00 GMT</pubDate>
			<author>donotreply@osnews.com (pgquiles)</author>
			<category>Comments</category>
		</item>

		<item>
			<title>RE: Not a good ELF</title>
			<link>http://osnews.com/thread?328173</link>
			<guid isPermaLink="true">http://osnews.com/thread?328173</guid>
			<description><div class="cquote">PE doesn't generate position-independent code, so it's slightly faster than ELF since eg. the EBX register is available to x86 applications to use. </div><br />
Yes. The difference is typically about 5% for processor-bound tasks on x86_32.  I doubt the effect is measurable at all on architectures like x86_64 which are not so ridiculously register-starved.<br />
<br />
gcc will produce non position independent code if you tell it to.</description>
			<pubDate>Wed, 27 Aug 2008 15:09:00 GMT</pubDate>
			<author>donotreply@osnews.com (sbergman27)</author>
			<category>Comments</category>
		</item>
	</channel>
</rss>
