<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/1.5.2" -->
<rss version="2.0" 
	xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
	<title>Comments on: Linkers part 2</title>
	<link>http://www.airs.com/blog/archives/39</link>
	<description>Ian Lance Taylor</description>
	<pubDate>Sun, 12 Oct 2008 15:12:45 +0000</pubDate>
	<generator>http://wordpress.org/?v=1.5.2</generator>

	<item>
 		<title>Comment on Linkers part 2 by: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/39#comment-5026</link>
		<pubDate>Tue, 09 Oct 2007 06:07:47 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/39#comment-5026</guid>
					<description>Thanks for the note.  Maybe some day I'll research these earlier systems.

Thanks for the pointer to Donovan's book; I'm not familiar with it.</description>
		<content:encoded><![CDATA[	<p>Thanks for the note.  Maybe some day I&#8217;ll research these earlier systems.</p>
	<p>Thanks for the pointer to Donovan&#8217;s book; I&#8217;m not familiar with it.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on Linkers part 2 by: rskrishnan</title>
		<link>http://www.airs.com/blog/archives/39#comment-5009</link>
		<pubDate>Mon, 08 Oct 2007 20:46:09 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/39#comment-5009</guid>
					<description>I think shared libraries have been around for a while. I have used VMS systems with some _very_ sophisticated linkers and loaders. I've also &quot;seen&quot; as/400 systems (but their terminology is totally gibberish to me).

I really liked assemblers and linkers as discussed in &quot;Systems Programming&quot; by John J. Donovan. Very exhaustive discussion on what happens at each stage of the compile/link/load/execute process. Very informative and assumes very little knowledge going in.</description>
		<content:encoded><![CDATA[	<p>I think shared libraries have been around for a while. I have used VMS systems with some _very_ sophisticated linkers and loaders. I&#8217;ve also &#8220;seen&#8221; as/400 systems (but their terminology is totally gibberish to me).</p>
	<p>I really liked assemblers and linkers as discussed in &#8220;Systems Programming&#8221; by John J. Donovan. Very exhaustive discussion on what happens at each stage of the compile/link/load/execute process. Very informative and assumes very little knowledge going in.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on Linkers part 2 by: jrlevine</title>
		<link>http://www.airs.com/blog/archives/39#comment-4271</link>
		<pubDate>Thu, 13 Sep 2007 23:40:26 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/39#comment-4271</guid>
					<description>I think you'll find that shared libraries go back to Multics in about 1969. The Multics machines had hardware segments (sort of like the 286's but bigger) with each segment dynamically linking to others. Before that, executables with shared code were common, so that if three people were using the text editor they'd all share the same copy of the code, but each program had all of the libraries it needed linked into it. The PDP-6 timesharing system had that probably by 1965, early PDP-11 Unix by 1972 or 3. Again, these ideas go way, way back.</description>
		<content:encoded><![CDATA[	<p>I think you&#8217;ll find that shared libraries go back to Multics in about 1969. The Multics machines had hardware segments (sort of like the 286&#8217;s but bigger) with each segment dynamically linking to others. Before that, executables with shared code were common, so that if three people were using the text editor they&#8217;d all share the same copy of the code, but each program had all of the libraries it needed linked into it. The PDP-6 timesharing system had that probably by 1965, early PDP-11 Unix by 1972 or 3. Again, these ideas go way, way back.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on Linkers part 2 by: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/39#comment-4261</link>
		<pubDate>Thu, 13 Sep 2007 18:26:44 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/39#comment-4261</guid>
					<description>Thanks for the note.  I used TOPS-20 some in high school, but I never used VMS very much.</description>
		<content:encoded><![CDATA[	<p>Thanks for the note.  I used TOPS-20 some in high school, but I never used VMS very much.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on Linkers part 2 by: Joe Buck</title>
		<link>http://www.airs.com/blog/archives/39#comment-4247</link>
		<pubDate>Thu, 13 Sep 2007 05:20:03 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/39#comment-4247</guid>
					<description>Also, I recall that the VMS shared library implementation was quite modern, in the sense that it used position-independent code and mapped shared libraries into address spaces at any point. The page size was tiny, however, only 512 bytes.  But then, a whole department would share one massive Vax 11/780 with a whopping 2 Mb of memory back when I started.</description>
		<content:encoded><![CDATA[	<p>Also, I recall that the VMS shared library implementation was quite modern, in the sense that it used position-independent code and mapped shared libraries into address spaces at any point. The page size was tiny, however, only 512 bytes.  But then, a whole department would share one massive Vax 11/780 with a whopping 2 Mb of memory back when I started.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on Linkers part 2 by: Joe Buck</title>
		<link>http://www.airs.com/blog/archives/39#comment-4246</link>
		<pubDate>Thu, 13 Sep 2007 05:16:46 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/39#comment-4246</guid>
					<description>Dec's VMS had shared libraries from the beginning, in 1980. I was a VMS user before I was a Unix user (and before that used DEC's RSX-11 and RT-11), and was regularly stunned when I went to grad school at UC Berkeley at all of the grad students who thought that any given computer science concept was invented when it first appeared in some flavor of Unix.</description>
		<content:encoded><![CDATA[	<p>Dec&#8217;s VMS had shared libraries from the beginning, in 1980. I was a VMS user before I was a Unix user (and before that used DEC&#8217;s RSX-11 and RT-11), and was regularly stunned when I went to grad school at UC Berkeley at all of the grad students who thought that any given computer science concept was invented when it first appeared in some flavor of Unix.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on Linkers part 2 by: Mark J. Wielaard &#187; Ian Lance Taylor&#8217;s Linker Notes</title>
		<link>http://www.airs.com/blog/archives/39#comment-4027</link>
		<pubDate>Fri, 31 Aug 2007 16:21:59 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/39#comment-4027</guid>
					<description>[...] Linkers part 2 - Linker Technical Introduction, Basic Linker Data Types, Basic Linker Operations. [...]</description>
		<content:encoded><![CDATA[	<p>[&#8230;] Linkers part 2 - Linker Technical Introduction, Basic Linker Data Types, Basic Linker Operations. [&#8230;]
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on Linkers part 2 by: ncm</title>
		<link>http://www.airs.com/blog/archives/39#comment-3975</link>
		<pubDate>Tue, 28 Aug 2007 19:54:43 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/39#comment-3975</guid>
					<description>Apollo Aegis was interesting in a number of other ways.  All code, shared library or main program, were directly mapped (a la mmap), so the code was all concentrated at the beginning of the file, with annotations after.  Page faults for code loaded via the net were satisfied via the net.  The file system expanded environment variables in symbolic link text, a feature since implemented (to my knowledge, only) in DGUX and Dragonfly BSD.  Apollo's DSEE version control (and build) system became the basis for ClearCase.  Apollo's ACL permissions system and its remote procedure call apparatus was the basis for much of DCE and, thence, Microsoft CIFS.</description>
		<content:encoded><![CDATA[	<p>Apollo Aegis was interesting in a number of other ways.  All code, shared library or main program, were directly mapped (a la mmap), so the code was all concentrated at the beginning of the file, with annotations after.  Page faults for code loaded via the net were satisfied via the net.  The file system expanded environment variables in symbolic link text, a feature since implemented (to my knowledge, only) in DGUX and Dragonfly BSD.  Apollo&#8217;s DSEE version control (and build) system became the basis for ClearCase.  Apollo&#8217;s ACL permissions system and its remote procedure call apparatus was the basis for much of DCE and, thence, Microsoft CIFS.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on Linkers part 2 by: Ian Lance Taylor</title>
		<link>http://www.airs.com/blog/archives/39#comment-3962</link>
		<pubDate>Tue, 28 Aug 2007 05:45:13 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/39#comment-3962</guid>
					<description>Thanks for the info.  I used Apollo Aegis systems around 1985, but I only programmed them in T, never in any compiled language.  From the description, it seems pretty similar to SVR3 shared libraries.</description>
		<content:encoded><![CDATA[	<p>Thanks for the info.  I used Apollo Aegis systems around 1985, but I only programmed them in T, never in any compiled language.  From the description, it seems pretty similar to SVR3 shared libraries.
</p>
]]></content:encoded>
				</item>
	<item>
 		<title>Comment on Linkers part 2 by: ncm</title>
		<link>http://www.airs.com/blog/archives/39#comment-3959</link>
		<pubDate>Tue, 28 Aug 2007 02:44:07 +0000</pubDate>
		<guid>http://www.airs.com/blog/archives/39#comment-3959</guid>
					<description>Apollo Aegis had shared libraries right from the beginning, in 1981.  (Aegis heritage was usually traced directly to Multics, bypasing Unix.)  Each shared library was assigned a fixed position in the address space, and each symbol given a fixed global 16-bit ID and entry in a table.  Big programs and libraries tended to crowd that table, so Mentor Graphics had to poke out such unused C library functions as qsort.</description>
		<content:encoded><![CDATA[	<p>Apollo Aegis had shared libraries right from the beginning, in 1981.  (Aegis heritage was usually traced directly to Multics, bypasing Unix.)  Each shared library was assigned a fixed position in the address space, and each symbol given a fixed global 16-bit ID and entry in a table.  Big programs and libraries tended to crowd that table, so Mentor Graphics had to poke out such unused C library functions as qsort.
</p>
]]></content:encoded>
				</item>
</channel>
</rss>
