![]() |
|
Mutating Programs |
Carrus85
Member #2,633
August 2002
![]() |
Now what would be cool is if everyone submitted there own programism and we ran it on someones machine and see how the interact. The only problem is that we REALLY BADLY need some form of 'master' program to monitor everything... That way we can trace what exactly is being changed on some of the runtimes, and if it gets to hectic on the processor, we could trigger Armegeddon or the Ice Age or something...
|
Billybob
Member #3,136
January 2003
|
I thought about DLLs as well, cause one time(this was when I hadn't perfected the Progranism) a strain came up that didn't mutate...but I figure, hey, if they don't want to mutate, then they don't want to mutate, I ain't going to force them P.S. YEa, I know, that last statement is kinda funny cause my name is will...
|
CGamesPlay
Member #2,559
July 2002
![]() |
Ok, somebody write some interface that uses A VM!!!!!!!!! and I'll be happy to offer my system as a test bed. The VM can get whatever information it needs about my system, but can't change nothin important. Bother me enough (read: ask me nicely) and I just might write you your own machine language to use. -- Ryan Patterson - <http://cgamesplay.com/> |
Kanzure
Member #3,669
July 2003
![]() |
Master program is needed. Should we do a Program Organic Compition? Maybe William shall design that one master thingy, and all ours MUST run under that... |
X-G
Member #856
December 2000
![]() |
CGP: How about using an emulator like Bochs to act as a VM? -- |
Billybob
Member #3,136
January 2003
|
QUESTION: Java....how bout that? Can Java access and run files on the computer? Java would be nice, cause it compiles and has tons of checking.
|
Carrus85
Member #2,633
August 2002
![]() |
The number one problem is, that in order to avoid massive unrunable applications, they need to be in bytecode. True, we could most likely use java as the VM or something... Note: Is it just me or is this post getting really long real fast? May I suggest a move to IRC?
|
Kanzure
Member #3,669
July 2003
![]() |
We must make sure the Master Program can spawn 2 at once, maybe the first one running while the other one is spawming. Also, the master program will monitor the top parts where the VITAL crap is, so if that is changed, it is re-changed so it will still run. |
CGamesPlay
Member #2,559
July 2002
![]() |
X-G: Eh? An ix86 emulator? that'd be kewl, then they could run in protected mode and stuff, not having to worry about an OS or nothin. Seeing as how I need practice writing VMs, I think I'll do it anyways and if people use it, they use it [edit] -- Ryan Patterson - <http://cgamesplay.com/> |
Kanzure
Member #3,669
July 2003
![]() |
CG, make sure it can change the vital information so everything will run even if it was already changed..MAKE IT OPEN SOURCE |
Billybob
Member #3,136
January 2003
|
having to re-write the progranisms for a VM without a C++ compiler will suck, I'm dumb!. I might write a VM...or not, I got to work on my German homework...
|
Carrus85
Member #2,633
August 2002
![]() |
Now, if, in essence, we could implement some way to maintain certian portions of the code (Aka. Refrain from having there bytecode edited) this could prove VERY useful. The only thing I can think if is to find the EXACT INDEX in the file that the vital information starts at, and have the program only alter code beyond that. But, once again, this would mean that a mutation in the code could always mess up the vital information anyway. No matter how you spin it, it is kinda pointless to retain vital code. One more thing on the process overload... If there is an easy way to kill processes in windows, we could further the evolution of the programs by 'destroying' random processes once the CPU starts choking because of the number of processes.
|
CGamesPlay
Member #2,559
July 2002
![]() |
Ok, plan for the VM, should you like to use it: Instructions, in ASM like format: mov l1, l2 ; Moves l2 to l1 xor l1, l2, l3 ; XORs l1 with l2, stored in l3 or l1, l2, l3 ; ORs ... and l1, l2, l3 ; ANDs.... not l1, l2 ; Inverts l1 and stores in l2 cmp l1, l2 ; Compares l1 with l2. jl l1 ; Executes at l1 if the previous cmp had l1 < l2 jg l1 ; ... l1 > l2 je l1 ; ... l1 == l2 jmp l1 ; Continues execution at l1 Anything else? To keep consistancy, each instruction will be the same size, so programs don't have to worry about that. Also, you'll note the lack of registers. Also, the code segment is indistingusished from the data segment for extra fun -- Ryan Patterson - <http://cgamesplay.com/> |
X-G
Member #856
December 2000
![]() |
You've got the order with mov wrong. ANd boolean operations take two parameters as well. And make sure to have aliases for jl, jg, je, etc. -- |
Kanzure
Member #3,669
July 2003
![]() |
Quote: Now, if, in essence, we could implement some way to maintain certian portions of the code (Aka. Refrain from having there bytecode edited) this could prove VERY useful. Yup..We need to maybe figure out the vital parts, not DLL crap, but ... other..stuff... William - can you write a special prog thing that only writes to 1 new file, and runs that 1 new file? That way...well, it wouldn't take up that much memory.. (WORTHLESS 128 MEG OF RAM LAPTOP) |
Billybob
Member #3,136
January 2003
|
You cant stop the Progranisms once they've stated, trust me. If you start a progranism and wait more than a couple of minutes, you HAVE to do a cold shutdown, they grow so fast you can't kill them all AND once the CPU is maxed, you can't open the task manager. Also, killing random progranisms is bad, because there is no pattern behind the killing, they'll never figure out what's happening and thus can never adapt to it, there must be a method to the destruction, so they can figure out how to counter the threat >8)
|
Carrus85
Member #2,633
August 2002
![]() |
Ok, so you don't kill random progranisms, you just kill the progranisms that are the smallest on disk or something...
|
CGamesPlay
Member #2,559
July 2002
![]() |
Or just run it in a VM X-G: No, the bitwise ops will take 3 params because of the lack of registers. [edit] -- Ryan Patterson - <http://cgamesplay.com/> |
X-G
Member #856
December 2000
![]() |
How many registers does your VM have? Three is pretty much minimum ... -- |
CGamesPlay
Member #2,559
July 2002
![]() |
X-G: The apps are designed to do one thing: Get themselves wasted [edit] -- Ryan Patterson - <http://cgamesplay.com/> |
Carrus85
Member #2,633
August 2002
![]() |
Now what would be funny is if a program 'adapted' to take control of the VM itself and started going Rogue on your system. That would be hillarious. And, come to think of it, you could implement some form of list in memory of all currently running processes. You could reduce the processor load by only running 10-20 at a time and cycling to another set...
|
Billybob
Member #3,136
January 2003
|
Well, I guess I'm ok with ASM, just as long as you document everything well for us half-non-asm'ers, heh.
|
X-G
Member #856
December 2000
![]() |
CGP: You're going to need the C register at the very least. -- |
Carrus85
Member #2,633
August 2002
![]() |
Move to IRC, anyone? That way we don't have to keep hitting refresh every 10 seconds, and someone could just log the chat to post it on here...
|
CGamesPlay
Member #2,559
July 2002
![]() |
Well, the tree would be kewl, because there could be a node that decided to change other nodes, and it would work much better and more efficiently than just a string of bytes. Altough, consider other possibilities as well. Perhaps model an actual cell's function as it joins with others? No idea is too off, here Carrus: gimme a channel -- Ryan Patterson - <http://cgamesplay.com/> |
|
|