Menu Close

Chapter 1. The Linux kernel RPM

The following sections describe the Linux kernel RPM package provided and maintained by Red Hat.

1.1. What an RPM is

An RPM package is a file containing other files and their metadata (information about the files that are needed by the system).

Specifically, an RPM package consists of the cpio archive.

The cpio archive contains:

  • Files
  • RPM header (package metadata)

    The rpm package manager uses this metadata to determine dependencies, where to install files, and other information.

Types of RPM packages

There are two types of RPM packages. Both types share the file format and tooling, but have different contents and serve different purposes:

  • Source RPM (SRPM)

    An SRPM contains source code and a SPEC file, which describes how to build the source code into a binary RPM. Optionally, the patches to source code are included as well.

  • Binary RPM

    A binary RPM contains the binaries built from the sources and patches.

1.2. The Linux kernel RPM package overview

The kernel RPM is a meta package that does not contain any files, but rather ensures that the following required sub-packages are properly installed:

  • kernel-core - contains the binary image of the kernel, all initramfs-related objects to bootstrap the system, and a minimal number of kernel modules to ensure core functionality. This sub-package alone could be used in virtualized and cloud environments to provide a Red Hat Enterprise Linux 9 kernel with a quick boot time and a small disk size footprint.
  • kernel-modules - contains the remaining kernel modules that are not present in kernel-core.

The small set of kernel sub-packages above aims to provide a reduced maintenance surface to system administrators especially in virtualized and cloud environments.

Optional kernel packages are for example:

  • kernel-modules-extra - contains kernel modules for rare hardware and modules which loading is disabled by default.
  • kernel-debug — contains a kernel with numerous debugging options enabled for kernel diagnosis, at the expense of reduced performance.
  • kernel-tools — contains tools for manipulating the Linux kernel and supporting documentation.
  • kernel-devel — contains the kernel headers and makefiles sufficient to build modules against the kernel package.
  • kernel-abi-stablelists — contains information pertaining to the RHEL kernel ABI, including a list of kernel symbols that are needed by external Linux kernel modules and a dnf plug-in to aid enforcement.
  • kernel-headers — includes the C header files that specify the interface between the Linux kernel and user-space libraries and programs. The header files define structures and constants that are needed for building most standard programs.

1.3. Displaying contents of the kernel package

The following procedure describes how to view the contents of the kernel package and its sub-packages without installing them using the rpm command.


  • Obtained kernel, kernel-core, kernel-modules, kernel-modules-extra RPM packages for your CPU architecture


  • List modules for kernel:

    $ rpm -qlp <kernel_rpm>
    (contains no files)
  • List modules for kernel-core:
$ rpm -qlp <kernel-core_rpm>
  • List modules for kernel-modules:
$ rpm -qlp <kernel-modules_rpm>
  • List modules for kernel-modules-extra:
$ rpm -qlp <kernel-modules-extra_rpm>

Additional resources