?? paper3
字號:
They then proceed to search for an idle machine and occupy it with anothersegment.Care is taken to coordinate this activity so that only one new segment iscreated..ppThere are two logical components to a worm.The first is the underlying worm maintenance mechanism, which is responsiblefor maintaining the worm \(em finding free machines when needed andreplicating the program for each additional segment.The second is the application part, and several applications have beeninvestigated (Shoch & Hupp, 1982), such as.LB.NP.ulexistentialworm that merely announces its presence on each computer it inhabits;.NP.ulbillboardworm that posts a graphic message on each screen;.NP.ulalarm clockworm that implements a highly reliable alarm clock that is not based on anyparticular machine;.NP.ulanimationworm for undertaking lengthy computer graphics computations..LE.ppCan worms shed any light on the controversies outlined above which surroundthe concept of autopoiesis?Firstly, although they are not living and do not create their own material inany chemical sense, they are certainly autonomous, autopoietic systems.Shoch & Hupp relate how.sp.BQa small worm was left running one night, just exercising the worm controlmechanism and using a small number of machines.When we returned the next morning, we found dozens of machines dead,apparently crashed.If one restarted the regular memory diagnostic, it would run very briefly,then be seized by the worm.The worm would quickly load its program into this new segment; the programwould start to run and promptly crash, leaving the worm incomplete \(em andstill hungrily looking for new segments..FQ.spJohn Brunner's science fiction story \fIThe shockwave rider\fR presaged justsuch an uncontrollable worm.Of course, extermination is always possible in principle by switching off orsimultaneously rebooting every machine on the network, although this may notbe an option in practice.Secondly, in the light of our earlier discussion of teleology and autopoiesis,it is interesting to find the clear separation of the maintenance mechanism\(em the autopoietic part \(em from the the application code \(em the``purposive'' part \(em of the worm.It can be viewed quite separately as an autopoietic or an application(teleological?) system..pp.ulSelf-replicating Trojan horses.In his Turing Award lecture, Thompson (1984) raised the specter ofineradicable programs residing within a computer system \(em ineradicable inthe sense that although they are absent from all source code, they can surviverecompilation and reinstallation of the entire system!.[Thompson 1984 reflections trust.]Most people's reaction is ``impossible! \(em it must be a simple trick'',but Thompson showed a trick that is extremely subtle and sophisticated, andeffectively impossible to detect or counter.The natural application of such a device is to compromise a system's security,and Thompson's conclusion was that there can be no technical substitute fornatural trust.From a system-theoretic viewpoint, however, this is an interesting exampleof how a parasite can survive despite all attempts by its host to eliminateit..ppTo understand what is involved in creating such an organism, consider firstself-replicating programs.When compiled and executed, these print out themselves (say in source codeform); no more and no less.Although at first sight they seem to violate some fundamental intuitiveprinciple of information \(em that to print oneself one needs\fIboth\fR ``oneself'' \fIand, in addition\fR, something to print it out,this is not so.Programmers have long amused themselves with self-replicating programs, oftensetting the challenge of discovering the shortest such program in any givencomputer language.Moreover, it is easy to construct a self-replicating program that includesany given piece of text.Such a program divides naturally into the self-replicating part and thepart that is to be reproduced, in much the same way that a worm programseparates the worm maintenance mechanism from the application part..ppView self-replication as a source program ``hiding'' in executable binarycode.Normally when coaxed out of hiding it prints itself.But imagine one embedded in a language compiler, which when activatedinterpolates itself into the input stream for the compiler, causing itselfto be compiled and inserted into the binary program being produced.Now it has transferred itself from the executable version of the compilerto the executable version of the program being compiled \(em without everappearing in source form.Now imagine that the program being compiled is itself the compiler \(em avirgin version, uncorrupted in any way.Then the self-replicating code transfers itself from the old version ofthe compiler to the new version, without appearing in source form.It remains only for the code to detect when it is the compiler that is beingrecompiled, and not to interfere with other programs.This is well known as a standard Trojan Horse technique.The result is a bug that lives only in the compiled version and replicatesitself whenever the compiler is recompiled..ppIf autopoiesis is the ability of a system to develop and maintain its ownorganization, the self-replicating Trojan horse seems to be a remarkableexample of it.It is an organism that it extremely difficult to destroy, even when onehas detected its presence.However, it cannot be autonomous, but rather survives as a parasite on alanguage compiler.It does not have to be a compiler: any program that handles other programs(including itself) will do\u4\d..FN4.\ \ As Thompson (1984) remarks, a well-installed microcode bug will bealmost impossible to detect..EFAlthough presented as a pathological example of computer use, it is possibleto imagine non-destructive applications \(em such as permanently identifyingauthorship or ownership of installed software even though the source code isprovided.In the natural world, parasites can have symbiotic relationships with theirhosts.It would be interesting to find analogous circumstances for self-replicatingTrojan horses, but I do not know of any \(em these examples of benevolentuse do not seem to benefit the host program directly, but rather its author orowner..pp.ulVirusesare perhaps less subtle but more pervasive kinds of bugs.They spread infection in a computer system by attaching themselves tofiles containing executable programs.The virus itself is a small piece of code which gains control whenever thehost is executed, performs its viral function, and then passes control tothe host.Generally the user is unaware that anything unusual is happening: as far ashe is concerned, the host program executes exactly as normal\u5\d..FN5.\ \ The only difference is a small startup delay which probably goesunnoticed..EFAs part of its function, a virus spreads itself.When it has control, it may attach itself to one or several other filescontaining executable programs, turning them into viruses too.Under most computer protection schemes, it has the unusual advantage ofrunning with the privileges of the person who invoked the host, not withthe privileges of the host program itself.Thus it has a unique opportunity to infect other files belonging to thatperson.In an environment where people sometimes use each others programs, this allowsit to spread rapidly throughout the system\u6\d..FN6.\ \ More details of the construction of both viruses and self-replicatingTrojan horses are given by Witten (1987)..[Witten 1987 infiltrating open systems.].EF.ppUnlike self-replicating Trojan horses, a virus can be killed by recompilingthe host.(Of course, there is no reason why a virus should not be dispatched to installa self-replicating Trojan horse in the compiler.) \cIf all programs are recompiled ``simultaneously'' (ie without executing any ofthem between compilations), the virus will be eradicated.However, in a multi-user system it is extremely hard to arrange for everyoneto arrange a massive recompilation \(em in the same way as it is difficult toreboot every machine on a network simultaneously to stamp out a worm..ppViruses do not generally remain in touch with each other and therefore,unlike worms, are not really autopoietic.But there is no intrinsic reason why they should not be.They provide a basic and effective means of reproduction which could beutilized for higher-level communicating systems.As with the other devices reviewed above, when one hears about viruses onecannot help thinking of pathological uses.However, there are benevolent applications.They could assist in system maintenance by recording how often programs wereused and arranging optimization accordingly, perhaps migrating little-usedones to slower memory devices or arranging optimization of frequently-usedprograms.Such reorganizations could take place without users being aware of it, quietlymaking the overall system more efficient..sh "Conclusions".ppWe have examined two rather different directions in which autonomy can bepursued in computer systems.The first concerns representation and manipulation of goals.Examination of some current AI systems shows that they do not escape theold criticism that their goals and aspirations are merely planted thereby the programmer.Indeed, it is not easy to see how it could be different, unless goals weregenerated randomly in some sense.Random exploration is also being investigated in current AI systems, and theseshow that syntactic mutation can be an extremely powerful technique whencombined with semantically dense representations..ppBut according to modern biological thinking, the lower-level goals of peopleand animals are also implanted in their brains in a remarkably literal sense.Higher-level goals are not so easy to pin down.According to one school of psychological thought they stem from asingle ``super-goal'' called self-actualization.This is remarkably in tune with the architecture of some prominent discoveryprograms in AI which strive to maximize the ``interestingness'' of theconcepts being developed.While one may be reluctant to equate self-actualization with interestingness,the resemblance is nevertheless striking..ppThe second direction concerns organizational independence in a sense ofwholeness which is distinct from goal-seeking.The concept of autopoiesis formalizes this notion.Organizational independence can be identified in certain computer systemslike worm programs, self-replicating Trojan horses, and viruses.It is remarkable that such applications have been constructed becausethey offer practical advantages and not in pursuit of any theoreticalinvestigation of autonomy;in this way they are quite different from contrived games.In some sense self-replicating programs do have a goal, namely \fIsurvival\fR.A damaged worm exhibits this by repairing itself.But this is a weak form of goal-seeking compared with living organisms, whichactively sense danger and take measures to prevent their own demise..ppThe architecture of these systems is striking in that the mechanism whichmaintains the artificial organism (be it the worm maintenance code,the self-replicating part of a Trojan horse, or the viral infection-spreader)is quite separate from the application part of the organism.Most people think of such programs as somehow pathological, and theapplication as a harmful or subversive one, but this need not be so: thereare benign examples of each.In any case, separation of the organism's maintenance from its purpose isinteresting because the concept of autopoiesis has sparked a debate insystem-theoretic circles as to whether teleological descriptions are evenlegitimate, let alone necessary.In both domains a clear separation seems to arise naturally between theautopoietic and teleological view of organisms..ppThere have been no attempts to build computer programs which combine these twodirections.The AI community which developed techniques of goal-seeking has historicallybeen somewhat separate from the system software community which has createdrobust self-replicating programs like worms and viruses.What will spring from the inevitable combination and synthesis of the twotechnologies of autonomy?.sh "Acknowledgements".ppFirst and foremost I would like to thank Brian Gaines for suggesting andencouraging this line of research.I am grateful to Saul Greenberg and Roy Masrani for many insights into topicsdiscussed here, and to Bruce MacDonald for making some valuable suggestions.This research is supported by the Natural Sciences and Engineering ResearchCouncil of Canada..sh "References".ls1.sp.in+4n.[$LIST$.].in0
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -