Since VM is volatile in nature, tmpfs data is not preserved between reboots. Hence this file system is used to
store short-lived temporary files. An administrator is allowed to specify the memory placement policies (the
policy itself and the preferred nodes to be allocated) for this file system.
5.1.3.3 sysfs
sysfs is an in-memory file system, which acts as repository for system and device status information,
providing a hierarchical view of the system device tree. The system information that is dynamically
maintained in the sysfs file system is analogous to the process status information that is dynamically
maintained in the proc file system.
sysfs is typically mounted on /sys. It is a window into the kernel, and into the data objects that the kernel
creates and controls.
sysfs is created on boot, and automatically populated when internal objects are registered with their
subsystems. Because of its nature and its design, the hierarchy it creates is a completely accurate
representation of the kernel's internals. An administrator can change kernel object parameters by editing files
in /sys. Access Control is performed by the VFS pathname translation mechanism function
vfs_permission(), which prevents access by normal users to data belonging to the kernel.
The kernel initially determines permissions for files in /sys, but these can be changed. Since files in /sys
are not real disk-based files, there is no object reuse issue with user data.
5.1.3.4 devpts
The devpts file system is a special file system that provides pseudo terminal support. Pseudo terminals are
implemented as character devices. A pair of character device-special files, one corresponding to the master
device and the other corresponding to the slave device, represent a pseudo terminal. The slave device
provides a terminal interface. Instead of a hardware interface and associated hardware supporting the
terminal functions, a process that manipulates the master device of the pseudo terminal implements the
interface.
Any data written on the master device is delivered to the slave device, as though it had been received from a
hardware interface. Any data written on the slave device can be read from the master device.
In order to acquire a pseudo terminal, a process opens the /dev/ptmx master device. The system then
makes available to the process number a slave, which can be accessed as /dev/pts/number. An
administrator can mount the devpts special file system by providing uid, gid, and mode values on the mount
command line. If specified, these values set the owner, group, and mode of the newly created pseudo
terminals to the specified values.
In terms of access control, pseudo terminal devices are identical to device special files. Therefore, access
control is performed by the VFS pathname translation mechanism function vfs_permission(). Because
files in /dev/pts are not real disk-based files with user data, there is no object reuse issue.
5.1.3.5 rootfs
rootfs is a special file system that the kernel mounts during system initialization. This file system provides an
empty directory that serves as an initial mount point, where temporary files can be stored during the boot
process. Then, the kernel mounts the real root file system over the empty directory. The rootfs file system
allows the kernel to easily change the root file system. Because rootfs uses an empty directory that is
replaced by the real root file system before the init process starts, there is no issue of object reuse.
The rootfs is used internally in the kernel when doing root mounting. Because a real file system uses and
replaces rootfs before the init process, there is no mechanism to access it.
45