What is red hat linux kernel

What is the Linux kernel?

Overview

The Linux® kernel is the main component of a Linux operating system (OS) and is the core interface between a computer’s hardware and its processes. It communicates between the 2, managing resources as efficiently as possible.

The kernel is so named because—like a seed inside a hard shell—it exists within the OS and controls all the major functions of the hardware, whether it’s a phone, laptop, server, or any other kind of computer.

What the kernel does

The kernel has 4 jobs:

Memory management: Keep track of how much memory is used to store what, and where

  • Process management: Determine which processes can use the central processing unit (CPU), when, and for how long
  • Device drivers: Act as mediator/interpreter between the hardware and processes
  • System calls and security: Receive requests for service from the processes
  • The kernel, if implemented properly, is invisible to the user, working in its own little world known as kernel space, where it allocates memory and keeps track of where everything is stored. What the user sees—like web browsers and files—are known as the user space. These applications interact with the kernel through a system call interface (SCI).

    Think about it like this. The kernel is a busy personal assistant for a powerful executive (the hardware). It’s the assistant’s job to relay messages and requests (processes) from employees and the public (users) to the executive, to remember what is stored where (memory), and to determine who has access to the executive at any given time and for how long.

    Where the kernel fits within the OS

    To put the kernel in context, you can think of a Linux machine as having 3 layers:

    1. The hardware: The physical machine—the bottom or base of the system, made up of memory (RAM) and the processor or central processing unit (CPU), as well as input/output (I/O) devices such as storage, networking, and graphics. The CPU performs computations and reads from, and writes to, memory.
    2. The Linux kernel: The core of the OS. (See? It’s right in the middle.) It’s software residing in memory that tells the CPU what to do.
    3. User processes: These are the running programs that the kernel manages. User processes are what collectively make up user space. User processes are also known as just processes. The kernel also allows these processes and servers to communicate with each other (known as inter-process communication, or IPC).

    Code executed by the system runs on CPUs in 1 of 2 modes: kernel mode or user mode. Code running in the kernel mode has unrestricted access to the hardware, while user mode restricts access to the CPU and memory to the SCI. A similar separation exists for memory (kernel space and user space). These 2 small details form the base for some complicated operations like privilege separation for security, building containers, and virtual machines.

    This also means that if a process fails in user mode, the damage is limited and can be recovered by the kernel. However, because of its access to memory and the processor, a kernel process crash can crash the entire system. Since there are safeguards in place and permissions required to cross boundaries, user process crashes usually can’t cause too many problems.

    Читайте также:  Nvidia geforce g205m windows 10

    Why choose Red Hat?

    At Red Hat, Linux is the foundation of everything we do. Red Hat is the second largest corporate contributor to the Linux kernel, bringing with it the experience and expertise of 25 years and a large community of partners, customers, and experts from across the industry. That’s a long relationship, with a history and level of experience that’s hard to come by.

    The Linux kernel is open source, and open source is at the core of Red Hat’s values. Learn why we’ve built our company on our conviction that Red Hat® Enterprise Linux is the best.

    Источник

    Red Hat Customer Portal

    Log in to Your Red Hat Account

    Your Red Hat account gives you access to your profile, preferences, and services, depending on your status.

    If you are a new customer, register now for access to product evaluations and purchasing capabilities.

    Need access to an account?

    If your company has an existing Red Hat account, your organization administrator can grant you access.

    Red Hat Account

    Customer Portal

    For your security, if you’re on a public computer and have finished using your Red Hat services, please be sure to log out.

    Select Your Language

    Red Hat Training

    A Red Hat training course is available for RHEL 8

    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:

    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.

    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 8 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-whitelists — contains information pertaining to the RHEL kernel ABI, including a list of kernel symbols that are needed by external Linux kernel modules and a yum 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.
    Читайте также:  Виджет точного времени для windows 10

    Additional resources

    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.

    Prerequisites

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

    Источник

    Red Hat Customer Portal

    Log in to Your Red Hat Account

    Your Red Hat account gives you access to your profile, preferences, and services, depending on your status.

    If you are a new customer, register now for access to product evaluations and purchasing capabilities.

    Need access to an account?

    If your company has an existing Red Hat account, your organization administrator can grant you access.

    Red Hat Account

    Customer Portal

    For your security, if you’re on a public computer and have finished using your Red Hat services, please be sure to log out.

    Select Your Language

    Red Hat Training

    A Red Hat training course is available for Red Hat Enterprise Linux

    Chapter 4. Kernel features

    This chapter explains the purpose and use of kernel features that enable many user space tools and includes resources for further investigation of those tools.

    4.1. Control groups

    4.1.1. What is a control group?

    Control Group Namespaces are a Technology Preview in Red Hat Enterprise Linux 7.5

    Linux Control Groups (cgroups) enable limits on the use of system hardware, ensuring that an individual process running inside a cgroup only utilizes as much as has been allowed in the cgroups configuration.

    Control Groups restrict the volume of usage on a resource that has been enabled by a namespace . For example, the network namespace allows a process to access a particular network card, the cgroup ensures that the process does not exceed 50% usage of that card, ensuring bandwidth is available for other processes.

    Control Group Namespaces provide a virtualized view of individual cgroups through the /proc/self/ns/cgroup interface.

    The purpose is to prevent leakage of privileged data from the global namespaces to the cgroup and to enable other features, such as container migration.

    Because it is now much easier to associate a container with a single cgroup, containers have a much more coherent cgroup view, it also enables tasks inside the container to have a virtualized view of the cgroup it belongs to.

    4.1.2. What is a namespace?

    Namespaces are a kernel feature that allow a virtual view of isolated system resources. By isolating a process from system resources, you can specify and control what a process is able to interact with. Namespaces are an essential part of Control Groups.

    4.1.3. Supported namespaces

    The following namespaces are supported from Red Hat Enterprise Linux 7.5 and later

    Источник

    What is the latest kernel release for my version of Red Hat Enterprise Linux?

    I read an interesting question on the Red Hat Learning Community forums recently. What is the latest kernel version for my version of Red Hat Enterprise Linux (RHEL)? In this post we’ll see how you can find out.

    Some users, trying to be helpful, gave a specific version of the kernel package. Unfortunately, that might only be valid at the time of writing. A better approach would be to understand where to get that information about the latest kernel version for a given version of RHEL.

    When Red Hat releases a major or minor update to RHEL, they ship it with a specific branch of the kernel version. This page in the customer portal shows the kernel version «branch» associated with a release of RHEL (e.g. RHEL7.6).

    Figure 1: Listing of RHEL releases with kernel versions

    That means, for example with RHEL7.6, that it shipped with the kernel version branch 3.10.0-957. From an operating system point of view, that kernel is built from source 3.10.0 available from the kernel package. The Red Hat distributed kernel package has its own versioning, in this case, 957.

    Читайте также:  Гамма настройка монитора для windows

    Looking at the kernel packages in Figure 2, one can see that at the time of writing, the latest version of that kernel package’s branch 3.10.0-957 is 3.10.0-957.38.3, found here:

    There are newer kernel versions available in other branches, such as kernel version 3.10.0-1062 (for RHEL7.7), and 4.18.0-80 (for RHEL8). They are not from the same branch and are not intended for RHEL7.6.

    Do you know about Red Hat Enterprise Linux’s latest features and updates?

    Getting the latest kernel for your RHEL systems

    Where to download the latest kernel? The latest kernel for a specific version of RHEL should be installed within the OS, using the yum command. The full command to list the kernel package available is:

    yum list kernel

    The RHEL administrator, with a system that has the latest available kernel installed, should be confident that the system has updates installed that comply with their organization’s requirements. The Red Hat team makes the latest kernel version available in the RHEL repos. So it should be the question of only seeing what the latest version of the kernel package is available for that system using yum list kernel . But there are several reasons why your system’s view of the latest available kernel may be different than the one available directly from the Red Hat Customer Portal:

    The system is connected to Red Hat Satellite. Red Hat Satellite allows administrators to provide specific packages to systems within their organization. This is accomplished with a «Content View.» It could be that the system subscribed to a Red Hat Satellite is registered to some «Content Views» which are not updated. As a result, the command yum list kernel is not showing the latest version of that kernel package branch locally because an update is not available from the Satellite server.

    There is an add-on for the Red Hat Enterprise Linux subscription called Extended Update Support (EUS). EUS is used by organizations that want to stay on a minor or «dot» release of Red Hat Enterprise Linux for a longer period of time instead of moving to a new minor release.

    As an example, an organization may choose to use RHEL 7.6 EUS so that the systems can stay on the 7.6 packages, but still get security updates for a period of up to two years instead of moving to RHEL 7.7. Maybe the repository where the latest version of the kernel is not available with the system’s subscription because the system is subscribed to an EUS repository. Here it seems that this is the case with kernel package version 3.10.0-957.35.2. This version is only available for systems that use an EUS add-on subscription:

    (read the «Available from» and the «Repo label»)

    Figure 2: Illustration to show the kernel 3.10.0-957.38.3.el7 if available from products in these repos label

    Summary

    The source of the information for knowing the latest kernel version of a given RHEL version is within RHEL.

    The command yum list kernel shows what has been officially prepared and released for that version of RHEL. It is possible to see the latest version of the kernel packages for a given kernel version branch online. That might not be the latest version available for a given system depending on subscriptions, access to repositories and internal management if using Red Hat Satellite.

    Additional comments

    The information above is how it should be. Sometimes, at operational level it is possible to modify the kernel in order to support a specific device or not supported hardware. So it is possible to see that some RHEL users have installed a different kernel version branch on a given RHEL. Maybe that has an impact on official Red Hat support. Possibly, a better action if a newer kernel is required would be to upgrade RHEL itself.

    Источник

    Оцените статью