About Virtual File Systems and System Configuration
procfs
: is mounted at/proc
and provides an interface to kernel data structures, mostly related to processes and hardware.sysfs
: is mounted at/sys
and provides information about devices, kernel modules, file systems, and other kernel components.
These virtual file systems are used to control and report on the running kernel, so that the system configuration can be monitored and adjusted while the operating system is live.
Although not part of the kernel virtual file system collection, the
/etc/sysconfig
system configuration file path is also important because
it provides an interface to many core system configuration variables that are read when the
system boots.
Also see Configure System Settings on Oracle Linux for a hands-on tutorial on how to configure system settings as described in this chapter.
About the /etc/sysconfig Files
The /etc/sysconfig
directory contains some files that control the
system's configuration after boot. The contents of this directory depend on the packages that
you have installed on the system. The /etc/sysconfig
directory largely
provides a single view of many configuration files that are used by systemd and related
components that control system configuration, such as Network Manager. In newer releases of
Oracle Linux, the number of configuration files in this directory is diminishing because
configuration is better handled by systemd and other configuration units. For more information
about systemd, see Oracle Linux 8: Managing the System With systemd.
Certain files that you might find in the /etc/sysconfig
directory include
the following:
-
atd
-
Specifies command line arguments for the
atd
daemon. -
autofs
-
Defines custom options for automatically mounting devices and controlling the operation of the automounter.
-
crond
-
Passes arguments to the
crond
daemon at boot time. -
chronyd
-
Passes arguments to the
chronyd
daemon used for NTP services at boot time. -
firewalld
-
Passes arguments to the firewall daemon (
firewalld
) at boot time. -
grub
-
Specifies default settings for the GRUB 2 bootloader. This file is a symbolic link to
/etc/default/grub
. For more information, see About the GRUB 2 Bootloader. -
named
-
Passes arguments to the name service daemon at boot time. The
named
daemon is a Domain Name System (DNS) server that's part of the Berkeley Internet Name Domain (BIND) distribution. This server maintains a table that associates host names with IP addresses on the network. -
samba
-
Passes arguments to the
smbd
,nmbd
, andwinbindd
daemons at boot time to support file-sharing connectivity for Windows clients, NetBIOS-over-IP naming service, and connection management to domain controllers. -
selinux
-
Controls the state of SELinux on the system. This file is a symbolic link to
/etc/selinux/config
.For more information, see Oracle Linux: Administering SELinux.
-
snapper
-
Defines a list of btrfs file systems and thinly provisioned LVM volumes whose contents can be recorded as snapshots by the
snapper
utility.For more information, see Oracle Linux 8: Managing Local File Systems .
-
sysstat
-
Configures logging parameters for system activity data collector utilities such as
sar
.
For more information, see
/usr/share/doc/initscripts*/sysconfig.txt
.
About the /proc Virtual File System
The files in the /proc
directory hierarchy contain information about the
system hardware and the processes that are running on the system. You can change the
configuration of the kernel by writing to certain files that have write permission.
Files that are under the /proc
directory are virtual files that the
kernel creates on demand to present a view of the underlying data structures and system
information. As such, /proc
is an example of a virtual file system. Most
virtual files are listed as 0 bytes in size, but they contain large amount of information when
viewed.
Virtual files such as /proc/interrupts
,
/proc/meminfo
, /proc/mounts
, and
/proc/partitions
provide a view of the system's hardware. Other files,
such as /proc/filesystems
and the files under
/proc/sys
, provide information about the system's configuration and
through which you can change configurations as needed.
Files that contain information about related topics are grouped into virtual directories. A
separate directory exists in the /proc
directory for each process that's
running on the system. The directory's name corresponds to the numeric process ID. For
example, /proc/1
corresponds to the systemd
process that has
a PID of 1.
To examine virtual files, you can use commands such as
cat
, less
, and
view
, as shown in the following example:
cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 42
model name : Intel(R) Core(TM) i5-2520M CPU @ 2.50GHz
stepping : 7
cpu MHz : 2393.714
cache size : 6144 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
...
For files that contain non human-readable content, you can use utilities such as
lspci
, free
, top
, and
sysctl
to access information. For example, the lspci
command lists PCI devices on a system:
sudo lspci
00:00.0 Host bridge: Intel Corporation 440FX - 82441FX PMC [Natoma] (rev 02)
00:01.0 ISA bridge: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton II]
00:01.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01)
00:02.0 VGA compatible controller: InnoTek Systemberatung GmbH VirtualBox Graphics Adapter
00:03.0 Ethernet controller: Intel Corporation 82540EM Gigabit Ethernet Controller (rev 02)
00:04.0 System peripheral: InnoTek Systemberatung GmbH VirtualBox Guest Service
00:05.0 Multimedia audio controller: Intel Corporation 82801AA AC'97 Audio Controller (rev 01)
00:06.0 USB controller: Apple Inc. KeyLargo/Intrepid USB
00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 08)
00:0b.0 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller
00:0d.0 SATA controller: Intel Corporation 82801HM/HEM (ICH8M/ICH8M-E) SATA Controller [AHCI mode]
(rev 02)
...
See procfs Directory Reference for more information about the different directories available
under /proc
. See Managing Kernel Parameters at Runtime for information on how you can view and change kernel
parameters in /proc/sys
to control system runtime behavior.
About the /sys Virtual File System
In addition to the /proc
file system, the kernel exports information to
the /sys
virtual file system (sysfs
). Programs such as
the dynamic device manager (udev
), use /sys
to access
device and device driver information. See
Oracle Linux 8: Managing System Devices With udev for more information about device management.
Note:
/sys
exposes kernel data structures and control points, which implies that
the directory contains circular references, where a directory links to an ancestor
directory. Thus, a find
command used on /sys
might
never stop.
See sysfs Directory Reference to see more information about the directories that you can
find in /sys
.