Facebook   Twitter    YouTube    RSS Feed    Android App    iPhone and iPad App     BlackBerry App    
Subscribe to Newsletter



Results 1 to 14 of 14

Thread: So my brain has been... well thinking haha

  1. #1

    Default So my brain has been... well thinking haha

    Ok so I am busy working in C++ with some variable pointers and all and my brain has sort of come up with this software conception.

    Basically I have been working with memory addresses and all and this is what made me think. There already might be something similar to this but I don't know. I am thinking of an application of some kind that will run in the background and be able to keep a time based history of the memory in RAM of applications that are busy been used. For example if you accidently close Word without saving or something the application would keeping a constant minute(or however long you set) backup of the Word running saved to be reloaded into RAM. This would be so you would be able to go back in time on your computer and select the application a few minutes back before it was closed. This would work for example with any application being used in RAM. I do understand it would probably use a lot of HDD space but hopefully not too much if I could make it only save certain changes.

    Hopefully my explaining is not too bad.

    The idea would to be for the app to start at login, then if you do something wrong or make some kind of mistake where ctrl-z doesn't work, it can restore the lost changes of an app over a certain time frame.

    Kind of like a copy-paste of RAM instead of text.

    Sound plausible? Would I get any restrictions on the memory address from the other programs?

    Just a concept so if it sounds far-fetched shoot my idea down

  2. #2

    Default

    Not bad. By closing Word, the address of RAM thats being used gets cleared. So your app would need to save each address to HDD and every backup would need a separate file (so you don't overwrite the backup of Word with the now cleared memory contents.)

    Also, Word has a restore backup feature, so it probably uses that...

  3. #3
    Super Grandmaster jingaling's Avatar
    Join Date
    Mar 2012
    Location
    Gauteng
    Posts
    7,505

    Default

    It sounds great for apps other than MS Office as you can setup 'auto recovery' to run every few minutes or however long you set.
    Your idea is definitely not far fetched.

  4. #4

    Default

    Quote Originally Posted by Sysem View Post
    Not bad. By closing Word, the address of RAM thats being used gets cleared. So your app would need to save each address to HDD and every backup would need a separate file (so you don't overwrite the backup of Word with the now cleared memory contents.)

    Also, Word has a restore backup feature, so it probably uses that...
    Yea the program would save each time frame as a separate file (and delete old ones after certain time frame) but also not every change in the RAM would have to be saved so it would save lets say 1x100MB file as a base then use periodic updates of 20MB for example and then merge with the base when opened to save space.

    Its kind of like a page file. True Word does have a backup but also for other programs like if your computer suddenly crashes at least you can go load the program from the saved state.

  5. #5

    Default

    The more I think of it, the better it sounds So many times I've stopped playing a game because the Auto Save was too far back!

  6. #6

    Default

    Quote Originally Posted by Sysem View Post
    The more I think of it, the better it sounds So many times I've stopped playing a game because the Auto Save was too far back!
    Hmm problem is something like a game, well decent game is that it uses at least 1GB of RAM so saving that to the HDD every few minutes might be problematic for both computer performance and HDD space. The app would have to run very efficiently so you don't notice it slowing the system down.

  7. #7

    Default

    Not a bad idea at all. A few problems though: IMMENSE IO activity, especially on secondary storage and the major one is that just keeping copies of your RAM contents will be useless, you also need to save CPU data like registers, program counters etc. Not only that, you'll need to reload dynamically assigned memory and pointers to their same locations (the OS or compiler usually takes care of this so you'll need to dig very deep). Nevermind the problems that would cause if you opened something new and it got memory allocated to where a previous, backed up item was and you still want to keep the new thing open.

    This is not a quick, 1-month project
    change is inevitable... cognitiveradio.co.za

  8. #8

    Default

    Also, GFX RAM I suppose?

  9. #9

    Default

    Quote Originally Posted by UnUnOctium View Post
    Not a bad idea at all. A few problems though: IMMENSE IO activity, especially on secondary storage and the major one is that just keeping copies of your RAM contents will be useless, you also need to save CPU data like registers, program counters etc. Not only that, you'll need to reload dynamically assigned memory and pointers to their same locations (the OS or compiler usually takes care of this so you'll need to dig very deep). Nevermind the problems that would cause if you opened something new and it got memory allocated to where a previous, backed up item was and you still want to keep the new thing open.

    This is not a quick, 1-month project
    True, true and true.

    Unfortunately you are right about the memory pointers, they would have to point to the exact memory address, unless you maybe do a find and replace kind of of memory addresses. The program wouldn't be so intensive for small applications such as documents/other apps but when it comes to bigger things that's where most computers would just not be able to keep up with the data flow. Hopefully there must be a way that would save the data in such a way where the data stored in the CPU registers and the current process cycle wouldn't be needed.

    I don't think I would ever have the time in the next few years to even attempt this, but the concept is all I need maybe if I get to my PhD level someday.. Haha

  10. #10
    Grandmaster
    Join Date
    Aug 2006
    Location
    Putting the tor in Pretoria
    Posts
    1,209

    Default

    Cool idea, but I don't think it is particularly easy... with software dev, anything is possible, but this will push that statement. Your problem is, you need a snapshot of the entire system at a given time, but to get that snapshot takes time... time during which things change, lots of things. Also the overhead on an application like this will be enormous, effectively using the entire system for the time it takes to take a snapshot.

    What you basically want is windows' hibernate to run every minute or so, except that windows hibernate runs for longer than a minute.

    Now doing this on an application specific level would be possible and very interesting though...
    "Life's journey is not to arrive at the grave safely in a well preserved body, but rather to skid in sideways, totally worn out shouting “f#ck, what a ride!"

  11. #11

    Default

    Quote Originally Posted by Frikkenator View Post
    Cool idea, but I don't think it is particularly easy... with software dev, anything is possible, but this will push that statement. Your problem is, you need a snapshot of the entire system at a given time, but to get that snapshot takes time... time during which things change, lots of things. Also the overhead on an application like this will be enormous, effectively using the entire system for the time it takes to take a snapshot.

    What you basically want is windows' hibernate to run every minute or so, except that windows hibernate runs for longer than a minute.

    Now doing this on an application specific level would be possible and very interesting though...
    Actually, Java virtual machine. There should be a way to make it save states and since all Java-based programs are executed & wrapped in it, you'll be able to save & restore states without needing to mess about with host OS kernel funk.
    change is inevitable... cognitiveradio.co.za

  12. #12

    Default

    People have tried inventing a time machine for years now... applying it to the PC... interesting.

    It would actually come in VERY handy in an IT support environment, especially if you could make it make it "remember" almost indefinitely. That way the user phones IT up, and IT just restores their last state. We'd look like GODS...

  13. #13

    Default

    Wouldn't ASLR cause problems with such a scheme?
    <sig Type=Disclaimer>UPFRONT DISCLAIMER:(©FarligOpptreden 2009) Don't like my code, speak to them.</sig>
    <sig Type=PimpMySticky>Need help with .NET?</sig>

  14. #14

    Default

    Quote Originally Posted by dequadin View Post
    Wouldn't ASLR cause problems with such a scheme?
    Yes that might be a big problem..

    ASLR can be disabled in Windows 7, by using the Enhanced Mitigation Experience Toolkit provided by Microsoft
    Or maybe not haha

Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •