Hi all:
If I run a program from a RAM disk, will Linux be able to run it directly
from
the disk itself (as the image is already in memory), or do it the same way
as running from a disk?
Thanks.
Hua
In the final system we are going to turn off swap. I had dreamed that Linux
could directly use the page frame on the RAM disk instead of doing another
copy :-)
Thanks for the reply
Hua
----- Original Message -----
From: "Richard B. Johnson" <[email protected]>
To: "Hua Zhong" <[email protected]>
Cc: "Linux Kernel Mailing List" <[email protected]>
Sent: Thursday, February 28, 2002 2:12 PM
Subject: Re: question about running program from a RAM disk
> On Thu, 28 Feb 2002, Hua Zhong wrote:
>
> > Hi all:
> >
> > If I run a program from a RAM disk, will Linux be able to run it
directly
> > from
> > the disk itself (as the image is already in memory), or do it the same
way
> > as running from a disk?
> >
> > Thanks.
> >
> > Hua
>
> It does it the same was as from a mechanical disk. If it uses
> dynamic linking, the default, the runtime libraries are
> memory-mapped and shared. In a perfect system, a very large
> program is not read into user's virtual address space all at
> once. Page-faults bring in, or discard, pages as required.
>
> Cheers,
> Dick Johnson
>
> Penguin : Linux version 2.4.1 on an i686 machine (797.90 BogoMips).
>
> 111,111,111 * 111,111,111 = 12,345,678,987,654,321
>
On Thu, 28 Feb 2002, Hua Zhong wrote:
> Hi all:
>
> If I run a program from a RAM disk, will Linux be able to run it directly
> from
> the disk itself (as the image is already in memory), or do it the same way
> as running from a disk?
>
> Thanks.
>
> Hua
It does it the same was as from a mechanical disk. If it uses
dynamic linking, the default, the runtime libraries are
memory-mapped and shared. In a perfect system, a very large
program is not read into user's virtual address space all at
once. Page-faults bring in, or discard, pages as required.
Cheers,
Dick Johnson
Penguin : Linux version 2.4.1 on an i686 machine (797.90 BogoMips).
111,111,111 * 111,111,111 = 12,345,678,987,654,321
On Thursday 28 February 2002 23:24, Hua Zhong wrote:
> In the final system we are going to turn off swap. I had dreamed that Linux
> could directly use the page frame on the RAM disk instead of doing another
> copy :-)
>
> Thanks for the reply
You could use ramfs, which does so for sure.
I am actually not sure about the ramdisk code.
Regards
Oliver
On Thu, 28 Feb 2002, Hua Zhong wrote:
> In the final system we are going to turn off swap. I had dreamed that Linux
> could directly use the page frame on the RAM disk instead of doing another
> copy :-)
Both ramfs and tmpfs do what you're asking for. If you are booting
from an initial ramdisk, it's possible to copy the contents of your
ramdisk into a ramfs or tmpfs filesystem at boot time, change roots
with the pivot_root utility, and then throw away the ramdisk. See
Documentation/initrd.txt for more information on this.
Scott
--
Scott Murray
SOMA Networks, Inc.
Toronto, Ontario
e-mail: [email protected]
Followup to: <[email protected]>
By author: "Hua Zhong" <[email protected]>
In newsgroup: linux.dev.kernel
>
> In the final system we are going to turn off swap. I had dreamed that Linux
> could directly use the page frame on the RAM disk instead of doing another
> copy :-)
>
However, the reply you got was completely irrelevant; he didn't answer
your question at all (even though he probably thought.)
The answer to your question is that a ramdisk lives directly in the
block cache and does not have to be copied.
You may want to consider migrating to a ramfs or tmpfs, which lives
directly in the *page* cache and therefore reduces overhead further.
-hpa
--
<[email protected]> at work, <[email protected]> in private!
"Unix gives you enough rope to shoot yourself in the foot."
http://www.zytor.com/~hpa/puzzle.txt <[email protected]>