AddThis Social Bookmark Button

04 Root File Systems (RFS)

RFS Overview

Basically the developer can define his own hierarchy standard for RFS, but it is always a better practice to follow common hierarchy standard, which is called Filesystems Hierarchy Standard (FHS). This standard defines root file system directories and their usage purposes. For the embedded systems, the developer can remove some multi-user directories, such as /home, /mnt, /opt and /root. However it is not recommended to remove /tmp and /var as well, because some software may use those directories.

 

glibc
glibc includes seveal libraries and four kinds of files:
actual share libraries, such as libm-2.2.3.so
symbol link to major version libraries with version number, such as libc.so.6;
symbol link to major version libraries without version number, such as libc.so;
static libraries, such as libdl.a.

Kernel Module
Copy the kernel modules to RFS.

Kernel Image
Copy the kernel image to RFS.

Device File
According to UNIX/Linux, any objects or devices in OS can be considered as file (some expection such as Ethernet). The device files are also put in the /dev directories. The developer should check a documentation in the source tree called Documentation/devices.txt for device file naming convention. Besides physical device file, the system may require some basic abstract device file such as mem, null, zero, random, tty0, console and symbol link fd.

Main System Applications

BusyBox, by Bruce Perens. It is the major software package included in most embedded Linux distribution. This software supports most command set used in Linux in single execuite binary file. It is not going to support all the command options, but it addresses most requirements in embedded Linux. It can be cross-complied with glibc or uClibc, in static or dynamic linking, can be configured for custom demands.

 

 

TinyLogin As complementary software for BusiyBox, it offers many features related to the system login. For example, addgroup, adduser, login, getty, su, sulogin.

 

 

 

 

embutils is developed by Felix von Leitner. This project only supports ARM/i386/PPC/MIPS. embuitls can offer one file for most commands or many smalled files for each commands. embutils can only linked with diet lib. The overall foorprints of embutils and BusyBox are almost equal.

 

 

 

Custom Application
It is fully denpends on developer himself to implement application software for the embedded system.

System Initialization

System initialization is the last step of kernel bootup, which loading many system services before application lauching up.

 

 

 

 

System V init, the standard init package.

 

 

 

 

 

BusyBox init, it is suitable for embedded systems, which offers most of the features of System V init.

 

 

 

 

Minit, by Felix von Leitner, as well as diet libc and embutils. Minit use /etc/minit instead of /etc/inittab. This package is not a mature one, but we can keep tuned to check it out later.