I was just wondering — is there any way to load a program (gVim for example) along with needed libraries into physical memory permamently for a one boot up? It would be nice to open it every time in nothing flat. Ramdisk is one option but I would have to copy all needed files there (probably a little mess in directory tree ). Any more ideas?
i thought about that.
The only solution that i could think of i couldn't find it: it would be a fuse filesystem that clones the directory where you mount it and copies it to ram. When you read, it should read from ram. When you write, it should write to both.
It should also have the option of "copy to ram as the directory is read" and "copy to ram on mount".
It doesn't seem complicated. The ramfs could be mounted inside of /tmp.
If someone is encouraged, it would be really cool, specially when you have apps like amule, that eat all disk cache after a few time.
I've also wanted this behavior (alas I'm no programmer). Ramdisk, as zergu mentioned, is not a true solution. If your RAM is full (because of working on very large files or having a thousand tabs open in firefox, for example), some used-up RAM will still have to be swapped out to accomodate the program you want to launch. This would be slow.
Perhaps... if there were a way to keep telling a program that it's currently in use even if it actually isn't. Hmm..
you know... linux is better than you at this sort of stuff... it loads things into ram, and caches them until it deems it's no longer needed. I've never had a problem with something like gvim starting up...
Still you can try preload, or some fancy ramdisk tricks
Better at what? Better at determining what kind of behavior *I* want from my computer? Hehe.
I think what the other posters and I want is to be able to launch a certain program instantly regardless of anything, and not depending on what the OS "deems" should happen.
Better at what? Better at determining what kind of behavior *I* want from my computer? Hehe.
Better at knowing when to maintain programs in memory, and when to remove them so the memory can be used for other things.
The problem with maintaining things in RAM, is that that ram is not freed. If this goes too high, it can cause massive swapping.
preloading all of gvim results in:
-rwxr-xr-x 1 root root 1438060 2007-03-04 07:56 /lib/libc.so.6 -rwxr-xr-x 1 root root 25217 2007-03-04 07:56 /lib/libcrypt.so.1 -rwxr-xr-x 1 root root 13446 2007-03-04 07:56 /lib/libdl.so.2 -rwxr-xr-x 1 root root 176787 2007-03-04 07:56 /lib/libm.so.6 -rwxr-xr-x 1 root root 111241 2007-03-04 07:56 /lib/libpthread.so.0 -rwxr-xr-x 1 root root 12477 2007-03-04 07:56 /lib/libutil.so.1 -rwxr-xr-x 1 root root 97575 2006-11-11 14:55 /usr/lib/libICE.so.6 -rwxr-xr-x 1 root root 37535 2006-11-11 14:59 /usr/lib/libSM.so.6 -rwxr-xr-x 1 root root 1063266 2007-02-27 16:59 /usr/lib/libX11.so.6 -rwxr-xr-x 1 root root 9812 2006-11-11 15:03 /usr/lib/libXau.so.6 -rwxr-xr-x 1 root root 40307 2006-11-11 15:20 /usr/lib/libXcursor.so.1 -rwxr-xr-x 1 root root 20620 2006-11-11 15:27 /usr/lib/libXdmcp.so.6 -rwxr-xr-x 1 root root 63628 2007-02-01 17:10 /usr/lib/libXext.so.6 -rwxr-xr-x 1 root root 17791 2006-11-11 15:09 /usr/lib/libXfixes.so.3 -rwxr-xr-x 1 root root 34191 2006-11-11 15:46 /usr/lib/libXi.so.6 -rwxr-xr-x 1 root root 8876 2005-12-18 06:47 /usr/lib/libXinerama.so.1 -rwxr-xr-x 1 root root 25198 2007-02-28 13:54 /usr/lib/libXrandr.so.2 -rwxr-xr-x 1 root root 33767 2006-11-11 15:17 /usr/lib/libXrender.so.1 -rwxr-xr-x 1 root root 361552 2007-02-01 17:08 /usr/lib/libXt.so.6 -rw-r--r-- 1 root root 27984 2006-06-29 23:57 /usr/lib/libacl.so.1 -rwxr-xr-x 1 root root 131572 2007-01-22 12:46 /usr/lib/libatk-1.0.so.0 -rw-r--r-- 1 root root 15458 2006-07-04 02:48 /usr/lib/libattr.so.1 -rwxr-xr-x 1 root root 465297 2006-11-11 16:13 /usr/lib/libcairo.so.2 -rwxr-xr-x 1 root root 159973 2006-08-18 15:44 /usr/lib/libexpat.so.1 -rwxr-xr-x 1 root root 212151 2006-12-22 17:12 /usr/lib/libfontconfig.so.1 -rwxr-xr-x 1 root root 559411 2007-02-08 04:32 /usr/lib/libfreetype.so.6 -rwxr-xr-x 1 root root 658596 2007-02-02 04:54 /usr/lib/libgdk-x11-2.0.so.0 -rwxr-xr-x 1 root root 108560 2007-02-02 04:54 /usr/lib/libgdk_pixbuf-2.0.so.0 -rwxr-xr-x 1 root root 722331 2007-01-20 05:41 /usr/lib/libglib-2.0.so.0 -rwxr-xr-x 1 root root 12814 2007-01-20 05:41 /usr/lib/libgmodule-2.0.so.0 -rwxr-xr-x 1 root root 296607 2007-01-20 05:41 /usr/lib/libgobject-2.0.so.0 -rwxr-xr-x 1 root root 4217572 2007-02-02 04:54 /usr/lib/libgtk-x11-2.0.so.0 -rwxr-xr-x 1 root root 296368 2006-12-25 02:26 /usr/lib/libncurses.so.5 -rwxr-xr-x 1 root root 291343 2007-02-26 16:39 /usr/lib/libpango-1.0.so.0 -rwxr-xr-x 1 root root 42260 2007-02-26 16:39 /usr/lib/libpangocairo-1.0.so.0 -rwxr-xr-x 1 root root 198973 2007-02-26 16:39 /usr/lib/libpangoft2-1.0.so.0 -rwxr-xr-x 1 root root 154248 2007-02-08 04:53 /usr/lib/libpng12.so.0 -rwxr-xr-x 1 root root 880808 2006-12-05 10:16 /usr/lib/libruby.so.1.8 -rwxr-xr-x 1 root root 78102 2005-07-20 13:58 /usr/lib/libz.so.1 -rwxr-xr-x 1 root root 3840124 2007-02-06 17:44 /usr/bin/gvim Total: 16961898
Which is fairly significant for some systems.
Yes, in that case I wouldn't want to keep gvim preloaded. But I would still want this behavior.
Your first post was kinda impertinent, because we simply wanted to have the choice of preloading certain programs (and not necessarily gvim). I'm sure the other posters didn't want to take over the whole memory management business that linux is so good at. So your saying "linux is better than you..." is like, huh? Where'd that come from? Were you implying that we should just forget the whole idea?
It's all about choice, man.
Last edited by Simastrick (2007-03-12 09:30:36)
i'm sorry+correct me if i'm wrong...but
i think he was referring to the fact that when you run an app. and exit, it remains cached in ram until the space is required, so if you run it again, providing you didn't run out of ram or something.. it will start pretty much instantly which imo, in most cases makes the initial copy,+ subsequent double writes pointless.
for me, (visually) gnome-terminal starts in about 1 second ... every run after that init. it's instant, basically the bottleneck is shifted to how fast gtk redraws the window.
amarok 2-3 seconds ..
sub. 1 second.
The.Revolution.Is.Coming - - To fight, To hunger, To Resist!
Indeed, what you say is true, "...providing you didn't run out of ram..."
I frequently work with very large files (high-resolution, multi-layer graphics, mostly) and often I have a few heavy-duty programs open at the same time. More often than not, my ram fills up, hence the relevance of this thread (for me, at least).
And yes, I also want certain programs to open instantly on first launch, not just on subsequent launches.
Please. The main idea of this thread exists because some people feel the need for the "perm-loading" behavior. Stop implying that it's 'pointless' and giving us your compromise-type solutions.
Last edited by Simastrick (2007-03-12 11:29:40)
So your saying "linux is better than you..." is like, huh? Where'd that come from?
Your car is better than you at going fast.
An umbrella is better than you at keeping yourself dry.
These are facts. Saying that linux is better that you at managing which apps are cached and which are not is also a fact. There's no need to get hyper sensitive here. noriko has the right of it. I am saying that when you start and app, then exit is doe the exact same thing as if you cached the application yourself.
Stop implying that it's 'pointless' and giving us your compromise-type solutions.
But that's the truth. It is pointless. A few years ago everyone was into using 'preload' to make things start faster. No one talks about it these days. Why? Because it just doesn't make a huge difference. Linux is good at maintaining this stuff in ram, and far better than a human can do (it operates millions of times a second).
If you really want to waste your time, here's preload's website: http://sourceforge.net/projects/preload
A side-issue which provides boot -to-ram with the same caveat of first load is slower than subsequent calls.
Live Larch provides copy-to-ram of the whole OS and packages of interest in addition. It can boot from flash stick, CD/DVD rom and can be made r/w through pacman. Copy-to-ram requires much ram but the system runs at normal speed.
It may provide something of interest to you if you have many GB's of ram.
Prediction...This year will be a very odd year!
Hard work does not kill people but why risk it: Charlie Mccarthy
A man is not complete until he is married..then..he is finished.
When ALL is lost, what can be found? Even bytes get lonely for a little bit! X-ray confirms Iam spineless!
One thing that actually will speed things up is mounting your root into ram on boot. Then writing some pretty complicated stuff to handle it. I did it in gentoo back in the day.
The real advantage in loading / in ram is not as much the speed of things ( which is dramatic, let me tell you ), but the security. Your entire root can be deleted, and all you have to do is reboot because it happened in fake RAM land.
Sorry if this detracts from topic?
All of root to ram? I might be able to on my computer at school with 32GB of ram...but maybe I am misunderstanding what you mean by all of root? My personal computers root uses almost 5GB of HD space and I am sure it grows with time.
Well, certain things you would not put in ram, like /home. It all depends on your system. I had a very very minimal setup. Like my current server, it has just under 1 gig in it's /
OK, ps mine was without /home. Thanks, this sounds like very involved choosing. If you must have this then I guess preload is the way to go much simpler.