romfs | download | related (boot) (embedded) (ports) | contact
romfs is a space-efficient, small, read-only filesystem originally for Linux and used by some Linux based projects. It is a block-based filesystem, that means it makes use of block (or sector) accessible storage driver (like disks, CDs, ROM drives). It is part of stock Linux kernels since about version 2.1.21 (about January, 1997). All current (2.4--2.6) kernel sources contain support for romfs, but depending on the distributor, it might not have been compiled in.
A working Linux system requires the kernel, and at least some programs running, which obviously needs a filesystem too. Most Linux disk filesystems are designed to be high performance, supporting all POSIX features, sometimes elaborate recovery on crashes (journaling), and that usually makes them quite heavy-weight, and thus often inappropriate in some special purposes.
romfs makes two shortcuts: first, it's read-only, you can't
simply use
your disk if it's a romfs disk, you must
build its image beforehand. Second, it stores only the absolute
minimum required from a filing system. No modification dates,
no unix permissions. These all might sound as large drawbacks,
but they are usually not.
You can browse the kernel code at any LXR site, see google:
The description of the filesystem layout is available at:
Got questions? You can reach me at chexum+dev@gmail.com. I am Janos Farkas.
There are at least two main uses where romfs, despite its limitations, is almost perfect.
romfs itself, although it may sound weird at first, cannot handle ROMs of any kind. It is just a file system, working over a block device. If you need to access a real ROM device, you need another driver to make your device appear as a disk.
An example driver for the 2.0 kernel versions can be found at:
Some Linux distributions use romfs during booting, or initial setup time, the most prominent are some PPC and Sparc systems.
SILO (sparc-boot.org),
the Sparc
bootloader, also supports loading kernels from romfs boot
disks.
See also the
SILO project page at freshmeat.
uClinux,
the microcontroller Linux, is a port of the kernel, and
selected user-space programs to capable, embedded
processors, like some smaller
Motorola m68k,
and ARM systems.
In turn, uClinux is used, or was mentioned as used by the following projects and companies:
KiSS, which became known from probably the first consumer DVD player supporting DivX. Some(?) of their players run Linux and have the firmware in romfs format. Now they are apparently a Cisco/Linksys venture.
Axis has developed an embedded chip for Linux (no less!) called ETRAX. It's not just a CPU, but a "system-on-a-chip solution", containing even I/O and Ethernet controllers. On the software front, they also seem to have a modified genromfs in a different way to support including device nodes in the image.
The following sites contain other information about Linux related embedded projects:
KallistiOS, a
pseudo-microkernel operating system for gaming consoles
(currently DreamCast and GameBoy Advance),
also support romfs as a native filesystem.
See also for DreamCast development:
Vitaly A. Mamkin
created a romfs driver to be used under
RTEMS.
It is available at
http://www.sinor.ru/~mavir/soft/soft.html
(Site seems disappeared when checked at end of 2002.)
Bo Branten has created a driver to access romfs format filesystems under Windows NT/2000. See his page for details.
Harald Welte has developed a (user-space) tool to extract files from romfs images, called romfsck, available from the above page.
eCos from Red Hat, is an embedded, unix-like, fully customizable operating system kernel, which seems to have a component called ROMFS, presumably to access ROMs available in specific architectures, but it's obviously different from the one in the Linux kernel. How different? I just don't know.
Acorn,
now mostly famous for its
ARM architecture,
had some machines with RISC OS,
which included a
ROMFS
(ROM filing system)
also,
apparently a virtual filesystem
to access ROMs of peripherals (podules?).
Information is scarce, even
at Google.
The
ARM range of processors
was later bought by Intel,
in the process of improving, renamed to
StrongARM,
later
XScale,
and some of them are now called
PCA Application Processors.
Older releases of genromfs (0.1-0.3) are available at
ftp://ftp.banki.hu/pub/Linux/local/,
the old distribution site.
romfs
| Powered by
|
2009-11-01 20:59:27Z
Google
Farkas János
Opinions and shameless baits:
DMCA *
Scientology *
Dianetics *
koan19.net =
koan19.org =
koan19.com