Skip to contentSkip to conversation

question about running program from a RAM disk

DISCUSSION Hua Zhong 5 participants 6 messages Feb 28, 2002 – Mar 1, 2002

lore
Share & tools
lore

Hua Zhong

author
#0 lore raw

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

#1 lore raw
Quoted 10 lines · Hua Zhong

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
author
#2 lore raw

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

Quoted 5 lines · Hua Zhong
Quoted 4 lines

Hi all:

If I run a program from a RAM disk, will Linux be able to run it

directly

Quoted 2 lines
Quoted 2 lines

from
the disk itself (as the image is already in memory), or do it the same

way

Quoted 19 lines
Quoted 5 lines

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
#3 lore raw
Quoted 3 lines · Hua Zhong

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

Signature · 4 lines
Scott Murray
SOMA Networks, Inc.
Toronto, Ontario
e-mail: [email protected]
#4 lore raw
In reply to Richard B. Johnson
Quoted 5 lines · Hua Zhong

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

#5 lore raw
In reply to Richard B. Johnson
Followup to:  <[email protected]>
By author:    "Hua Zhong" <[email protected]>
In newsgroup: linux.dev.kernel
Quoted 5 lines

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

Signature · 3 lines
<[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]>