From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computing  
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
 ???  This article has not yet received a rating on the project's quality scale.
 ???  This article has not yet received a rating on the project's importance scale.


Appropriate sources for this article include computer science texts addressing operating system design (especially linkers and loaders) and compiler design (code generation, obviously). Perhaps the best place to connect the train of articles is within discussion of *relocation* generally, like articles about the aforementioned computer science topics. -- —The preceding unsigned comment was added by William R. Buckley (talkcontribs) on 17:56, 29 July 2008 (UTC); Please sign your posts!

It happens, occasionally, that when I am logged in, I am sometimes later logged off by edict of the Wikipedia server; perhaps some kind of timeout exists. If I thereafter, unknowingly post an edit, my signature seems to revert to the IP address. Whenever my edits seem ambiguous as to authorship, it will be such an event. William R. Buckley (talk) 00:01, 21 February 2009 (UTC)

Original research / Notability[edit]

Without any sources about the topic of self-relocation, this page looks like original research and appears to be not notable. Are there some published articles that talk about self-relocation specifically? The single source listed [1] doesn't mention self-relocation. Ferkel (talk) 12:55, 18 February 2009 (UTC)

There is no original research, as the Apple Worm is a published work. Such mischaracterisation belies ulterior motive. William R. Buckley (talk) 16:29, 19 February 2009 (UTC)
I'm certainly concerned that you've been promoting your own work in several places on Wikipedia, without due consideration of the guidelines on notability, for which you've been warned previously. But to talk about this page in particular - as I say in my comment above, the sourced article doesn't mention 'self-relocation' anywhere, so it's not unreasonable to suggest we need more sources. Searching for 'self-relocation' on google [2] shows one 2008 paper [3] that might be relevant, and one mention in a book that seems to be talking about a different concept [4]. It would help if there was some evidence that this is a term in common use. Ferkel (talk) 09:49, 20 February 2009 (UTC)
Reference 3 is about self-relocation explicitly. Reference 4 includes the idea of self-relocation but, it is really about relocatable code, like that produced for x86 processors. William R. Buckley (talk) 03:11, 22 February 2009 (UTC)
You might also want to read [5] William R. Buckley (talk) 03:31, 22 February 2009 (UTC)
What about this reference.[6] Are you satisfied now? William R. Buckley (talk) 03:23, 22 February 2009 (UTC)
Self-relocation is more than just the Apple Worm; that is only an extreme example of dynamic self-relocation. On the other hand it's an interesting idea and a published source, so Mr. Buckley is justified in using it.

My knowledge of self-relocating code goes back to the late 60s/early 70s. I arrived at this article after making a trivial change to the DOS/360 article. Since the DOS loader didn't relocate programs loaded into memory users had to link one copy of (non self-relocating) programs for each partition they might be run in, and if the partition addresses changed the programs had to be re-linked. Because of this self-relocation was an important tool for DOS programmers. I didn't find a lot of references except Dhamdere, whicj I include, but I suspect that this is because the technique became obsolete before internet time, and because x86 addresses require more effort to relocate than, say, S/360.

I took the liberty of rewriting most of the article. It was not only pedantic but not a general description of what self-relocation is or how it works. Unfortunately this shortened it so much that perhaps it should be folded into the Relocation article for a more general description of various types of relocation. Peter Flass (talk) 01:20, 9 November 2011 (UTC)

Wikipedia takes too long to get ideas described, and the use of related works that I have done is just because I know of these cases. They are just a starting point. Other editors very often add to the root that I plant, and many a good article has come of my such efforts. A good case in point is the article Von Neumann Universal Constructor, which is much improved over its former state (back when I first added my own edits). Much of the editing that I do is just that, a starting point. As I said, Dr. Dobbs ca. 1985 or 1986 presented a similar work. That is one reference you can find. As for the name *self-relocation* it is just as noteworthy as is *self-replication* William R. Buckley (talk) 22:49, 20 February 2009 (UTC)
Another reference I would cite is Gödel Escher Bach - An Eternal Golden Braid. The self-reference diagram (or Escher's Hands - each drawing the other) is very much a model for how the Apple Worm operates - it is composed of two nearly identical halves - only the relocation data changes. Anyway, as a point of importance to an encyclopedia, self-relocation is one of the many *self* behaviors that one may observe in machines and nature. Ask Douglas Hofstadter about this point; I'm sure he'll agree. My argument is that self-relocation as a behavior of software is a link to the many theses present in the literature - such as GEB. William R. Buckley (talk) 23:57, 20 February 2009 (UTC)
I do buy the point about the name not being explicitly used. I could remedy the situation, if you like. As I've found, it is not particularly hard to get print in a journal. I've only submitted two, and the second one was published. Need I, or some other, go to such lengths to satisfy a word anxiety? And, please, Ferkel, be blunt. Stop hiding in the bushes. If you have some problem with my actions, state so openly; I think my skin is suitably tough. One thing I hate is a cagey competitor. Some of your work is real good. William R. Buckley (talk) 00:08, 21 February 2009 (UTC)
Self-relocation is a fundamental feature of the warrior programs used in Core War. William R. Buckley (talk) 02:49, 22 February 2009 (UTC)

Call for Expert in the Field[edit]

I find it interesting that some readers flag this article as needing help from a field expert, as I am such a person (having devised many programs which employ self-relocation in their normal operation), and as other editors have decried my edits to this article. So, which is it? Do you want an expert to add to the content of this article, or do you want to complain that I am that expert? William R. Buckley (talk) 17:49, 16 September 2010 (UTC)

Self Relocation vs. Self modifying Code[edit]

Why are there two articles when the former is only one form of the latter? Perhaps these articles need to be merged. Peter Flass (talk) 13:55, 19 November 2011 (UTC)

Self-relocation and self-modifying code are (in general) two rather different topics, therefore they need to be discussed in separate articles. --Matthiaspaul (talk) 15:39, 4 July 2017 (UTC)