2 New Features and Changes
Unless indicated otherwise, the following new features, major enhancements, bug fixes, and other changes that are introduced in this release of Oracle Linux 9 apply to both the x86_64 and 64-bit Arm (aarch64) platforms.
Installation and Boot
The following features, enhancements, and changes related to installation and boot are introduced in this release of Oracle Linux 9.
Graphical Installation Program Activates the Network Automatically During Interactive Installations
In the interactive installation mode that uses the graphical user interface, the network is automatically enabled. Manually activating the network is no longer required.
Note that this change does not impact the kickstart installations and installations that
use the ip= boot option.
Licensing and User Setting Configuration Screens No Longer Part of Post Installation
Initial setup screens for licensing and for configuring users that previously appeared as post installation steps are now disabled. To restore these screens, run the following commands which install and enable the relevant packages, and then reboot the system. The initial setup screens appear when the boot up system is completed.
sudo dnf install initial-setup initial-setup-gui -y
systemctl enable initial setup
rebootFor kickstart installations, add and enable these packages as follows:
firstboot --enable
%packages
@^graphical-server-environment
initial-setup-gui
%endRoot Account Is Locked by Default
As an added security feature, the root account in an Oracle Linux 9 installation is locked by default. However, the installation program provides options for you to enable SSH root logins with appropriately set passwords during the installation. For instructions, see Oracle Linux 9: Installing Oracle Linux.
Kickstart Changes Have Been Implemented
The following changes in Oracle Linux 9 affect how you configure automatic installations that use kickstart:
-
All boot options must use the
instprefix; otherwise, those options are ignored. Add the prefix to previously configured standalone options to maintain their functionality. -
The new timesource command replaces the previous timezone --ntpservers command, which has been deprecated.
-
The following kickstart commands and options are removed and generate errors if used:
-
device
-
deviceprobe
-
dmraid
-
install
Instead, use the subcommands or methods directly as commands.
-
multipath
-
bootloader --upgrade
-
ignoredisk --interactive
-
partition --active
-
harddrive --biospart
-
autostep
-
Kernel and System Libraries
The following notable features, enhancements, and changes apply to the Red Hat Compatible Kernel (RHCK) that's shipped with the current Oracle Linux 9 version.
RHCK Kernel Signed With Trusted Secure Boot Certificates
This feature eliminates the need to enroll a separate public key to use the kernel versions on systems that have UEFI Secure Boot enabled. Previous releases required you to enroll a separate public key by using the Machine Owner Key (MOK) facility.
Control Group Version 2 Enabled by Default
Version 2 of the control groups (cgroup-v2) is enabled together with
version 1 (cgroup-v1).
cgroup-v2 implements a single hierarchy model to simplify the management
of control groups. The model ensures that a process can only be a member of a single control
group at a time. The feature is integrated with systemd and improves
resource control configuration on an Oracle Linux system.
Note that feature incompatibilities exist between cgroup-v2 and
cgroup-v1. Moreover, control interfaces are different between the two
versions. Consequently, third-party software that has a direct dependency on
cgroup-v1 might not run properly in the cgroup-v2
environment.
While both versions are enabled in the kernel, no default control group version is set in
the kernel. Instead, the version that mounts at startup is determined by
systemd.
To use cgroup-v1, add the following parameters to the kernel command
line:
systemd.unified_cgroup_hierarchy=0
systemd.legacy_systemd_cgroup_controllerKernel Changes Might Affect Third-Party Kernel Modules
Linux distributions with a kernel version prior to 5.9 included support for exporting GPL functions as non-GPL functions. This support enabled users to link proprietary functions to GPL kernel functions by using the shim mechanism. In this release, upstream changes have been incorporated into the kernel that enable Oracle Linux to enforce GPL more strictly. Accordingly, shim is now rebuffed.
Important:
Partners and independent software vendors (ISVs) should test their kernel modules with an early version of Oracle Linux 9 to ensure compliance with GPL.
Fixes to strace Utility
In this release, the strace utility correctly displays SELinux context
mismatches through the extension of the utilities --secontext option. This
extension is the mismatch parameter. See the following example:
[...]
$ strace --secontext=full,mismatch -e statx stat /home/user/file
statx(AT_FDCWD, "/home/user/file" [system_u:object_r:user_home_t:s0!!unconfined_u:object_r:user_home_t:s0], ...
$ strace --secontext=mismatch -e statx stat /home/user/file
statx(AT_FDCWD, "/home/user/file" [user_home_t:s0], ...perf-top Capable of Sorting by a Specific Column
The perf-top system profiling tool can sort samples by an arbitrary
event column instead of just the first column when multiple events in the group are sampled.
Samples are sorted through the --group-sort-idx option, where you press a
number key to sort the table by the data column that corresponds to that key. Column
numbering starts from 0.
New Jigawatts Package Added
The new jigawatts package includes a Java library that works to improve
the functionality of the Checkpoint/Restore in Userspace (CRIU) utility specifically on Java
applications.
trace-cmd reset Behavior Change
Instead of disabling, trace-cmd reset now resets settings of the
ftrace framework to their default values. This behavior specifically
affects tracing_on, trace_clock,
set_event_pid, and tracing_max_latency.
Support for Extended Berkeley Packet Filter
The Extended Berkeley Packet Filter (eBPF) is an in-kernel virtual machine that enables code execution in the kernel space in a restricted sandbox environment with access to a limited set of functions. The virtual machine executes a special assembly-like code.
Crash Utility 8.0.0
This version of the utility has a new offset parameter in the
add-symbol-file command that helps to set the
kaslr-offset to gdb. The parameter also upgrades
gdb-7.6 to gdb-10.2.
Changes Implemented on makedumpfile Utility
The following enhancements and improvements are in the utility:
-
Support for the Zstandard compression capability
The utility is thus able to take advantage of
zstd's high compression ratios which improve compression efficiency especially in large memory systems. The improved compression mechanism creates a smallervmcorefile within a reasonable compression time. -
New options improve ways to obtain an estimate of the vmcore size
The following options can be used with the
makedumpcommand:-
--dry-runperforms all operations specified by the command without writing the output file. -
--show-statsprints the report messages. This option is an alternative to enabling bit 4 that is provided to the--message-leveloption.The following shows an example in the use of these options:
sudo makedumpfile --dry-run --show-stats -l --message-level 7 -d 31 /proc/kcore dump.dummy
-
Support for numatop Utility for Intel Xeon Scalable Processors
numatop monitors and analyzes threads and processes running on Numa
systems. It uses Intel performance counter sampling technologies and associates the
performance data with Linux system runtime information for better analysis
of Numa systems deployed in production.
New crashkernel.default File for kdump Memory
Allocation
In the kexec-tools package, the new crashkernel.default
file for kdump contains a default crash kernel value for the corresponding
kernel build. kdump uses the value to control the default crash kernel
memory value of each kernel.
crashkernel.default serves as a good reference for kdump
memory reservation. By basing on this value, you can configure the desired setting for
crashkernel=. Consequently, memory allocation for kdump
is improved for systems that have less than 4 GB of available memory.
To query the default crashkernel value, type:
sudo kdumpctl get-default-crashkernel For more details, refer to the
/usr/share/doc/kexec-tools/crashkernel-howto.txt file.
Core Scheduling Functionality Added
The core scheduling functionality enables you to define groups of tasks that can share a CPU core, and thereby exclude tasks that should not trust each other from sharing the same resource. This feature enhances security by mitigating some cross-Symmetric Multithreading (SMT) attacks. It also isolates tasks that need a whole core, such as those that are performed in real-time environments or those that rely on specific processor features, such as Single Instruction, Multiple Data (SIMD) processing.
CPU Hot-Plug in hv_24x7 and hv_gpci PMUs
PMU counters can correctly react to the hot plugging of a CPU, such that if an
hv_gpci event counter is running on a CPU that becomes disabled, the
counting redirects to another CPU.
IRDMA Driver Added
The IRDMA driver enables RDMA functionality on the following RDMA-capable Intel network devices:
-
Ethernet Network Adapter X722: an Internet Wide-area RDMA Protocol (iWARP) device.
This device supports only iWARP and a more limited set of configuration parameters.
-
Ethernet Controller E810: a device that supports iWARP and RDMA over Converged Ethernet (RoCEv2)
This device iWARP and RoCEv2 RDMA transports, Priority Flow Control (PFC), and Explicit Congestion Notification (ECN).
The IRDMA module replaces as well as extends the Application Binary Interface (ABI)
defined for the legacy i40iw module for X722. The change is backward compatible with legacy
X722 RDMA-Core provider (libi40iw).
aarch64: Default Page Size on Arm Platform Changed to 4 KB
Based on UEK R7 implementation, the default page size on the 64-bit Arm platform has changed from 64 KB to 4 KB. This new size pairs well with the workloads and memory amounts that exist on the majority of Arm-based systems. To use large page sizes efficiently, ensure that you specify the huge pages option, which addresses a greater amount of memory for workloads with large data sets.
aarch64: kexec_file_load Enabled by Default
For systems using the 64-bit Arm architecture, the added kexec_file_load
system call provides an in-kernel kexec loader for kdump
which enables an unsigned kernel to work correctly. Prior to this update, an unsigned kernel
failed to load with secure boot enabled and kexec_file_load() specified.
Operating System and Software Management
The following features, enhancements, and changes related to the OS and software management are introduced in this Oracle Linux 9 release.
RPM Updated to Version 4.16
The updated version includes notable changes such as the following:
-
Support for new SPEC features such as caret version operator,
%autopatchfor specifying patch ranges, meta or unordered dependencies, generation of dynamic build dependencies through the%generate_buildrequiressection, and so on. -
RPM is fully based on the sqlite library. For Berkeley DB databases, Read-only support is provided.
-
rpm-audit-pluginis a new plugin for recording audit log events on transactions. -
Validation of UTF-8 headers is performed at build time.
-
Increased parallelism is applied in package builds.
New RPM Plugin Notifies fapolicyd About Changes During RPM
Transactions
Updated rpm packages include a new RPM plugin that integrates the
fapolicyd framework with the RPM database. By informing
fapolicyd about any installed and changed files during an RPM
transaction, the plugin enables fapolicyd to support integrity checking.
The plugin's functionality extends its coverage beyond just Yum transactions to changes made
by RPM as a whole. Thus, the plugin is effectively a replacement to the Yum plugin.
Support for Signing Keys Using EdDSA Public Key Algorithm
This added support to the rpm command enables you to use EdDSA-generated keys for signing and verifying packages. However, RSA continues to be the default public key algorithm in GnuPG.
RPM Supports ZSTD Algorithm
RPM supports the Zstandard (zstd) compression algorithm, which makes
package installations faster, especially in large transactions. Oracle Linux 9 uses
Zstandard as the default compression algorithm.
New Options Available for DNF
The following are new DNF options:
-
exclude_from_weak_autodetectautomatically detects unwanted weak dependencies of packages being installed. Thus, providers of the weak dependencies are not installed as weak dependencies. However, if pulled in, these weak dependencies are installed as regular dependencies. The option is enabled by default. -
exclude_from_weakprevents the installation of packages as weak dependencies.
libmodulemd Packages Updated to Version 2.13.0
This version of libmodulemd packages includes the following features and
changes:
-
Support for delisting demodularized packages from a module.
-
Support for validating
modulemd-packager-v3documents by usingmodulemd-validator --type, where--typeis a new option. -
Fortified parsing integers.
Shells and Command Line Tools
The following features, enhancements, and changes related to shells and command line tools are introduced in this Oracle Linux 9 release.
bash Library Version 8.1
In this library, bracketed paste mode is enabled by default. This mode causes text that you paste on your terminal to be highlighted and requires you to press Enter to execute the command in the text. This feature prevents you from executing malicious commands.
To disable the feature, add the following line to either $HOME/.inputrc or
/etc/inputrc:
set enable-bracketed-paste off-
If added to
$HOME/.inputrc, the feature is disabled for a specific user. -
If added to
/etc/inputrc, the feature is disabled for all users.
Disabling the feature causes pasted commands on the terminal to be immediately executed.
Additional Shell Related Packages Available With Updated Versions
-
opal-prd 6.7.1 -
lvspd 1.7.12 -
Fetchmail 6.4.24 -
Eigen 3.4
New cdrskin Package Introduced
The package replaces the cdrecord executable. However, the
cdrskin package includes the cdrecord command as a
symbolic link to the cdrskin binary so that existing user scripts need not
be revised.
util-linux-core Added as a Package
The util-linux-core is added as a subpackage to the
util-linux package to manage scenarios where the size of installed
package is a critical issue, such as in buildroots, some containers, and boot images.
However, for standard installations, install the util-linux package,
which automatically includes the util-linux-core package.
Compilers and Development Tools
The following features, enhancements, and changes related to compilers and development tools are introduced in this Oracle Linux 9 release.
Summary List of Tools and Compilers and Their Latest Versions
-
System toolchain components
-
GCC 11.2.1
-
glibc 2.34
-
binutils 2.35.2
-
-
Performance tools and debuggers
-
GDB 10.2
-
Valgrind 3.18.1
-
SystemTap 4.6
-
Dyninst 11.0.0
-
elfutils 0.186
-
-
Performance monitoring tools
-
PCP 5.3.5
-
Grafana 7.5.11
-
-
Compiler toolsets
-
LLVM Toolset 13.0.1
-
Rust Toolset 1.58.1
-
Go Toolset 1.17.7
-
-
python-jsonpointeris rebased to version 2.0 -
grafana-pcpis rebased to 3.2.0
GCC Updated to Version 11.2
This version includes notable changes such as the following:
-
DWARF Version 5 is used as the default debugging format.
-
Diagnostics column numbers represent real column numbers by default and recognizes multicolumn numbers.
-
The straight-line code vectorizer considers the whole function when vectorizing.
-
A series of conditional expressions that compare the same variable can be transformed into a switch statement if each of them contains a comparison expression.
-
Procedural optimizations have been implemented through a new IPS-modref pass which tracks side effects of function calls and improves the precision of points-to analysis, and the identical code folding pass, which is improved to increase the number of unified functions and reduce compile-time memory use.
-
Memory allocation during linking is improved to reduce peak memory use.
-
Through the new
GCC_EXTRA_DIAGNOSTIC_OUTPUTenvironment variable in IDEs, you can request machine-readable "fix-it-hints" without adjusting build flags.
Go Toolset Updated to Version 1.17.7
This version includes notable changes such as the following:
-
The
GO111MODULEenvironment variable is set toonby default. To revert this setting, set the variable toauto. -
The Go linker uses less resources and improves code robustness and maintainability in all supported CPU architectures and operating systems.
-
The new
embedpackage enables you to access embedded files while compiling. -
All functions of the
io/ioutilpackage have been moved to theioandospackages, both of which provide better definitions. -
The Delve debugger 1.6.0 supports Go Toolset 1.16.6.
Go FIPS Mode Supported With OpenSSL 3
With this support, you can use the OpenSSL library while on Go FIPS mode.
Rust Toolset Updated to Version 1.54.0
This version includes notable changes such as the following:
-
The Rust standard library is available for the
wasm32-unknown-unknowntarget and enables you to generate WebAssembly binaries, including newly stabilized intrinsics. -
You can use constant-value parameters to define generics. This change enables you to write functions completely generic over the values of any integer, boolean, or character type, and arrays generic over their element type as well as their length. Additionally, you can also iterate items from an array by value by using the new standard library’s array type API
std::array::IntoIter. -
Rust includes the
IntoIteratorimplementation for arrays. Use theIntoIteratortrait to iterate over arrays by value and pass arrays to methods. However,array.into_iter()still iterates values by reference until the 2021 edition of Rust. -
The syntax for
orpatterns allows nesting anywhere in the pattern, for example:Pattern(1|2)instead ofPattern(1)|Pattern(2). -
Unicode identifiers can contain all valid identifier characters as defined in the Unicode Standard Annex #31.
-
Methods and trait implementations have been stabilized.
LLVM Toolset Updated to Version 12.0.1
This version includes notable changes such as the following:
-
New compiler flag
-march=x86-64-v[234]introduced. -
Compiler flag
-fasynchronous-unwind-tablesof theclangcompiler is the default on Oracle Linux aarch64 systems in this release. -
The
clangcompiler supports the C++20[[likely]]and[[unlikely]]attributes. -
With the newly added function attribute
tune-cpu, microarchitectural optimizations can be applied independently from thetarget-cpuattribute or TargetMachine CPU. -
The
-fsanitize=unsigned-shift-basesanitizer is added to the integer sanitizer-fsanitizer=integerto improve security. -
The WebAssembly backend is now enabled in LLVM. when enables you to generate WebAssembly binaries with LLVM and Clang.
CMake Updated to Version 3.20.2
This version includes notable changes such as the following:
-
C++ compiler modes can be specified through the target properties
CXX_STANDARD,CUDA_STANDARD, andOBJCXX_STANDARDor, alternatively, thecxx_std_23metafeature of the compile features section. -
The NVIDIA CUDA compiler as a symbolic link is supported.
-
The Intel oneAPI NextGen LLVM compilers are supported with the
IntelLLVMcompiler ID. -
CMake now facilitates cross compiling for Android by merging with the Android NDK’s toolchain file.
-
When generating a project build system, the cmake command rejects unknown arguments that start with a hyphen.
To use CMake on projects that require this or an earlier version, use the command cmake_minimum_required (version 3.20.2).
Java in Oracle Linux 9
In this release, Java includes the following packages:
-
java-17-openjdk -
java-11-openjdk -
java-1.8.0-openjdk
Java Tools Implementation
In this release, Java tools include the following:
-
Maven 6.3.6 -
Ant 1.10.9
You can install these tools as non modular RPM packages from AppStream.
SWIG 4.0 Available in CodeReady Builder Repository
Version 4.0 of Simplified Wrapper and Interface Generator (SWIG), which includes support for PHP 8, can be installed as an RPM package from the CRB repository.
pcp Updated to Version 5.3.5
The Performance Co-Pilot (PCP) package (pcp) includes bug fixes,
enhancements, and new features, including the following:
-
Large number of hosts can have performance metrics centrally logged (
pmloggerfarms) and automatically monitored with performance rules (pmiefarms). -
New
pcp-sstool for historical socket statistics is supported. -
php-htoptool is improved. -
Extensions have been added to the over-the-wire PCP protocol, which support higher resolution timestamps.
Desktop
The following desktop features are included with Oracle Linux 9:
GNOME Desktop Environment Updated to Version 40
This version includes numerous new and improved features, including a redesigned Activities Overview that provides for better navigation of the system and the launching of applications. Note that workspaces are now arranged horizontally and the window overview, as well as the application grid, are accessed vertically.
Pipewire as Default Audio Service
Pipewire replaces both the PulseAudio and Jack audio services that was used in previous releases. All audio applications that use these earlier services are redirected to Pipewire. Jack applications work well with default Oracle Linux configurations and therefore do not require additional configurations.
Power Profiles in GNOME
Power profiles enable you to optimize power usage of your system. The selected profile persists across system reboots. You can select from the following:
-
Performancesets the system for peak performance but reduces battery life. The profile is not available in all system configurations. -
Balancedis the default profile which provides standard performance and power consumption. -
Power Saverprioritizes battery life and can impact system performance. The system switches to this profile automatically if low battery level is detected.
Boot Loader Changes
Configuration files are unified across CPU architectures. These files are stored in
/boot/grub2, regardless of the platform. The
grub.cfg file that GRUB previously used on UEFI systems is now a symbolic
link to /boot/grub2/grub.cfg. This change provides benefits, such as
improved user experience, simplified GRUB layout configuration, the ability to boot the same
installation with either EFI or legacy BIOS, and so on.
Langpacks Replaces comps Language Groups
Previously, language support was provided by comps language groups, which
required you to install the corresponding code-support
package. In this release, you would install the langpacks-code
package instead.
Single Application GNOME Sessions Supported
This support enables users to use a lightweight UI for single applications. Also described as the kiosk mode of a GNOME session, this feature displays a full-screen window only of the application that you have configured. In this mode, use of resources is less intensive than in a standard GNOME session.
Dynamic Programming Languages, Web and Database Servers
The following features, enhancements, and changes related to programming languages, web servers, and database servers are introduced in this Oracle Linux 9 release.
Python 3.9
Python 3.9 is the default version in Oracle Linux 9, and is also installed by default. Python 3.9 will be supported for the entire Oracle Linux 9 life cycle. However, additional versions of Python 3 are also distributed as RPM packages with a shorter life cycle through the AppStream repository. These versions can be installed in parallel.
The /usr/bin/python command and other Python-related commands, such
as pip, are made available in an unversioned form and point to the
default Python 3.9 version.
Note:
Python 2 is excluded in Oracle Linux 9.
Node.js 16
The following are notable changes:
-
The
V8engine is updated to version 9.2. -
The
npmpackage manager is updated to version 7.20.3. -
A new
Timers PromisesAPI that provides an alternative set of timer functions that returnPromiseobjects is included. -
A new experimental
Web StreamsAPI is included. -
Node.js is compatible with OpenSSL version 3.0.
Node.js 16 is the initial version of this Application Stream. However, additional Node.js versions will be provided as modules with a shorter life cycle in future minor releases of Oracle Linux 9.
Ruby 3.0.3
The following are notable changes:
-
Concurrency and parallelism features, such as Ractor and Fiber Scheduler.
-
Static analysis features, such as the RBS language and the Typeprof utility,
-
Pattern matching with the
case/inexpression is no longer experimental. -
The experimental one-line pattern matching feature is redesigned.
-
The Find pattern is added as an experimental feature.
Ruby 3.0 is the initial version of this Application Stream. Additional versions of Ruby will be provided as modules with a shorter life cycle in future minor releases of Oracle Linux 9.
Perl 5.32
This version includes numerous enhancements and bug fixes, some of which are the following:
-
Support for Unicode 13.0
-
Enhanced
qrquote-like operator -
Alpha assertions and script runs no longer experimental
-
Faster feature checks
-
Ability to dump compiled patterns prior to optimization
Perl 5.32 is the initial version of this Application Stream. Additional versions of Perl will be provided as modules with a shorter life cycle in future minor releases of Oracle Linux 9.
PHP 8.0
This version includes numerous enhancements and bug fixes, some of which are the following:
-
New self-documented and order-independent named arguments so you can specify only required parameters
-
New attributes for using structured metadata with PHP's native syntax
-
New union types for using native union types in place of PHPDoc annotations for a combination of types. These types are validated at runtime.
-
Error exception is consistently generated when parameter validation fails.
-
Improved
Just-In-Timecompilation performance
PHP 8.0 is the initial version of this Application Stream. Additional versions of PHP will be provided as modules with a shorter life cycle in future minor releases of Oracle Linux 9.
Git 2.31 and Git LFS 2.13
Git 2.31 includes numerous enhancements, some of which are the following:
-
Status of sparse checkout is included in the output of git status.
-
git archive --add-file includes untracked files in a snapshot from a tree-like identifier.
-
clone.remotedefaultnameenables you to customize nickname for a source remote repository. -
Maximum length of output file names is now configurable beyond the previous 64 byte limit.
-
PCRE1 library no longer supported.
In addition, the Git Large File Storage (LFS) extension 2.13 includes numerous enhancements, some of which are the following:
-
SHA-256 repositories, as well as the
socks5hprotocol, are supported. -
The git lfs install|uninstall commands include a new
--worktreeoption. -
The git lfs migrate import command includes a new
--aboveoption.
Subversion 1.14
Subversion 1.14 is the initial version of this Application Stream. Additional versions of Subversion will be provided as modules with a shorter life cycle in future minor releases of Oracle Linux 9.
Apache HTTP Server 2.4.51
The following are notable changes:
-
Changes to the Apache HTTP Server Control Interface (
apachectl)-
In the apachectl status output, systemctl pager is disabled.
-
Instead of the previous behavior of issuing warnings, the apachectl fails if you include additional arguments to the command.
-
The graceful-stop subcommand returns immediately.
-
The configtest subcommand runs httpd -t without changing the SELinux context.
-
-
The Apache eXtenSion tool (
apxs) does not use or expose compiler optimization flags in the process of building thehttpdpackage. -
The
mod_luaApache module is provided in a separate package. -
In the
mod_access_compatmodule's deprecatedAllowdirective, the use of the comment character (#) generates a syntax error. -
Kernel thread IDs are directly used in error log messages for accuracy and conciseness.
Apache HTTP Server 2.4 is the initial version of this Application Stream, which you can install easily as an RPM package.
nginx 1.20
The following are notable changes:
-
Support for client SSL certificate validation using the Online Certificate Status Protocol (OCSP).
-
Through the
min_freeparameter of theproxy_cache_pathdirective, the driver now supports cache clearing. -
A new
ngx_stream_set_modulemodule is introduced. -
New directives as well as directive variables are supported.
-
Support for HTTP/2 is improved.
Varnish Cache 6.6
Varnish Cache 6.5, which is a high-performance HTTP reverse proxy, provides a number of enhancements and bug fixes version 6.0 available.
Varnish Cache 6 is the initial version of this Application Stream.
Squid 5.2
Squid 5.2 is a high-performance proxy caching server for web clients. Squid 5.2 includes support for FTP, Gopher, and HTTP data objects as well as the following additional features:
-
Uses a received IP address immediately when request forwarding requires it.
-
New directive have been introduced.
-
dns_v4_firstdirective no longer included in this version. -
Uses the
CDN-Loopheader for loop detection in Content Delivery Networks (CDN). -
Internet Content Adaptation Protocol (ICAP) trailers introduced as a new feature to enable ICAP agents to reliably send message metadata after the message body.
-
New configuration options are introduced to replace existing ones, such as
mark_client_packetforclientside_markandshared_transient_entries_limitforcollapsed_forwarding_shared_entries_limit.
Squid 5.2 is the initial version of this Application Stream.
MySQL 8.0
Oracle Linux 9 includes MySQL version 8.0. MySQL 8.0 is the initial version of this Application Stream.
For this software's documentation, see https://dev.mysql.com/doc/relnotes/mysql/8.0/en/
Redis 6.2
Among enhancements and fixes in this version, the most notable is that the paths of Redis
server configuration files are dedicated directories /etc/redis/redis.conf
and /etc/redis/sentinel.conf. In Oracle Linux 8, these files were located
in /etc/redis.conf and /etc/redis-sentinel.conf.
Redis 6 is the initial version of this Application Stream. In future minor releases of Oracle Linux 9, additional Redis versions will be provided as modules with a shorter life cycle.
File Systems and Storage
The following features, enhancements, and changes related to file systems and storage are introduced in this Oracle Linux 9 release.
XFS File System Includes New Features
The XFS file system supports two new options for the mkfs.xfs command:
bigtime that supports timestamps beyond the year 2038 and
inobtcount that reduces mount time on large file systems.
Caution:
These options are enabled by default. Consequently, in Oracle Linux 9, the mkfs.xfs command creates an XFS file system that is unmountable by previous kernels where these options are not supported. To disable these options, type the mkfs.xfs command as follows:
mkfs.xfs -m bigtime=0,inobtcount=0
For more information about file systems in Oracle Linux, see Oracle Linux 9: Performing File System Administration.
High Availability and Clusters
The following features, enhancements, and changes related to high availability are introduced in this Oracle Linux 9 release.
Changed Default Setting of resource-stickiness meta-attribute
The change is in response to user preference that resources are not automatically moved in the process of a cluster balancing operation. Only newly-created clusters are affected by this change. The behavior does not change for existing clusters.
This new default value of 1 keeps the resources in place during
balancing. However, a possible consequence might be that newly added nodes become
resourceless and would require the administrator to manually intervene to allot resources to
the nodes. Both resource stickiness (1) and non-stickiness
(0) can produce unexpected behavior. However, user preference is to
implement stickiness for resources.
If you prefer the old behavior for your cluster, delete the
resource-stickiness entry from resource defaults.
New LVM Volume Group Flag for Controlling Autoactivation
The setautoactivation flag controls whether logical volumes that are
created from a volume group are automatically activated upon startup. When creating a volume
group to be managed by Pacemaker in a cluster, you can set this flag to n
by using the vgcreate --setautoactivation n command for the volume
group. Running this command prevents possible data corruption. If you have an existing
volume group that is used in a Pacemaker cluster, set the flag by using the
vgchange --setautoactivation n command.
New Options for pcs resource status and pcs stonith
status Commands
The pcs resource status and the pcs stonith status commands include support for the following new options:
-
The pcs resource status node= node_id and pcs stonith status node= node_id options display the status of resources that are configured on a specific node.
-
The pcs resource status resource_id and pcs stonith status resource_id options display the status of a single resource.
-
The pcs resource status tag_id and pcs stonith status tag_id options display the status of all of the resources with a specified tag.
Reduced Output Display Option for pcs resource safe-disable
Command
To print errors only in a report instead of including lengthy simulation results, you can
use the --brief option in some pcs resource
subcommands as follows:
-
pcs resource safe-disable --brief
-
pcs resource disable --safe --brief
The error report now always contains resource IDs of affected resources.
New pcs Command for Updating SCSI Fencing Device
The new pcs stonith update-scsi-devices command enables you to update SCSI devices without causing a restart of other cluster resources. The pcs stonith update command causes a restart of all of the resources that are running on the same node that the stonith resource was running.
fence_watchdog Agent for Configuring Watchdog-Only SBD Setup
Use the new fence_watchdog agent to configure a watchdog-only SBD
setup. This setup enables cluster configurations where only some nodes use watchdog-only SBD
for fencing, while other nodes use other fencing types. Note that a cluster may only have a
single such device, and it must be named watchdog. Previous watchdog-only
SBD configurations had no such flexibility and required that all of the nodes in the cluster
use SBD.
Local Mode Version of pcs Cluster Setup Command Supported
The --corosync-conf option switches the pcs cluster setup command to
local mode. In this mode, the pcs command creates a
corosync.conf file and saves on the local node only without communicating
with any other node. You can thus create a corosync.conf file in a script
and handle that file by using a script.
Location Constraint Removed Following Resource Move
The pcs resource move command adds a constraint to the resource to prevent it from running on its original node. By default, the location constraint is automatically removed when the resource has been moved. The removal does not necessarily move the resource back to the original node. Where resources can run at that point depends on how your resources are initially configured. To move a resource and leave the resulting constraint in place, use the pcs resource move-with-constraint command.
pcs Command Accepts Promoted and Unpromoted Roles
The pcs command accepts the Promoted and
Unpromoted anywhere roles that are specified in Pacemaker configuration.
Note that these role names are the functional equivalent of the Master and
Slave Pacemaker roles that was used in previous releases. Also, these
role names are visible in configuration displays and help pages.
Infrastructure Services
The following features, enhancements, and changes related to infrastructure services are introduced in this Oracle Linux 9 release.
chrony Updated to Version 4.1
-
This updated
chronypackage includes notable changes including the following:-
Additional support for Network Time Security (NTS) authentication.
-
In Oracle Linux 9, Authenticated Network Time Protocol (NTP) sources are trusted over non-authenticated NTP sources. To restore the previous behavior, add the
autoselectmode ignoreargument to thechrony.conffile. -
Removal of support for authentication with the following RIPEMD keys:
RMD128,RMD160,RMD256,RMD320. -
Removal of support for long non-standard MACs in NTPv4 packets. If you are using
chrony 2.xnon-MD5/SHA1keys, you will need to configurechronyby using theversion 3option.
The following differences exist between this release's version of
chronyfrom the version in Oracle Linux 8:-
The
seccompfilter is enabled by default.The
-F Zoption is set in/etc/sysconfig/chronyd. -
The
seccompfilter conflicts with themailonchangedirective. If you set this directive in/etc/chrony.conf, then disable the filter by removing the-F Zsetting.
-
Networking
The following features, enhancements, and changes related to networking are introduced in this Oracle Linux 9 release.
WireGuard Available in UEK
WireGuard is a Virtual Private Network (VPN) implementation with advanced security features, but is also designed to be simple to use and can be a replacement for earlier tunneling protocols. WireGuard has been in production support in the UEK release since UEK R6U3 and continues to be a supported feature in Oracle Linux 9, with UEK R7. For more details, see Unbreakable Enterprise Kernel Release 7: Release Notes (5.15.0-0.30) . To configure WireGuard, see Oracle Linux: Configuring Virtual Private Networks.
Note, however, that in RHCK, WireGuard is available only as a Technology Preview. See Technology Preview.
diag Modules Available With Kernel Image
diag modules:
CONFIG_INET_DIAG
CONFIG_INET_RAW_DIAG
CONFIG_INET_TCP_DIAG
CONFIG_INET_UDP_DIAG
CONFIG_NETLINK_DIAG
CONFIG_PACKET_DIAG
CONFIG_UNIX_DIAG
Being part of the kernel, these modules no longer need to be dynamically loaded with the
ss command. The change facilitates debugging of networking issues
regardless of customer policy in the kernel modules.
Core and IPv4-related Networking Kernel Parameters Added To
sysctl
For a list of these parameters and their descriptions, install the
kernel-doc package and refer to the following files:
-
/usr/share/doc/kernel-doc-version/Documentation/admin-guide/sysctl/net.rst -
/usr/share/doc/kernel-doc-version/Documentation/networking/ip-sysctl.rst
nmstate API Uses More Inclusive Terminology
As part of an ongoing effort to make terms more inclusive, the term slave
term has been replaced with the term port in the nmstate
API.
NetworkManager Support for queue_id in a Bond Port
NetworkManager ports that are in a bond include support for the setting
the queue_id parameter.
For example, if eth1 is a port of a bond interface, you can enable the
queue_id parameter for that bond port by using the following command:
sudo nmcli connection modify eth1 bond-port.queue-id 1
sudo nmcli connection up eth1Note:
A
network interface that needs to use this option should configure it with multiple calls
until the appropriate priorities are set for all interfaces. For more information, see the
/usr/share/docs/kernel-doc-_version/Documentation/networking/bonding.rst
file, which is provided in the kernel-docs package.
RDMA Packages From Oracle
Oracle provides Remote Direct Memory Access (RDMA) packages for use with UEK R7 to enable direct memory access between two systems that are connected by a network. For more details, see Unbreakable Enterprise Kernel Release 7: Release Notes (5.15.0-0.30).
Security
The following features, enhancements, and changes related to security are introduced in this Oracle Linux 9 release.
System-Wide crypto-policies More Secure
System wide cryptographic policies are more secure through the disabling of older
cryptographic algorithms and increased minimum RSA key size. Using SHA-1 is restricted in
the DEFAULT crypto policy. With the exception of HMAC and DNSSec usage,
SHA-1 is not allowed in TLS, DTLS, SSH, IKEv2 and Kerberos protocols. As part of this
change, some algorithms have been disabled.
If you require that some of the disabled algorithms and ciphers be enabled, use policy modifiers or customize the policy.
OpenSSL Version 3.0.1 Supported
This version contains enhancements and fixes such as new versioning schemes, support for new algorithms, new HTTP(S) client that supports GET and POST, and many others. The following are features related to OpenSSL:
-
OpenSSL supports new concept of providers
The OpenSSL 3.0.1 toolkit introduces the concept of providers, which are collections of algorithms from which you can choose for different applications. The following providers are provided:
base,default,FIPS,legacy, andnull.By default, OpenSSL loads and activates the default provider, which is comprised of commonly used algorithms such as RSA, DSA, DH, CAMELLIA, SHA-1, and SHA-2. If the FIPS flag is set in the kernel, the FIPS provider is automatically loaded, and no manual switching to FIPS mode is required. To change the provider on the system level, edit theopenssl.cnfconfiguration file.Caution:
Explicitly activating a provider overrides the default provider selection, which might make the system remotely inaccessible.
-
OpenSSL random bit generator includes CPACF support
The
opensslpackages provide support for the CP Assist for Cryptographic Functions (CPACF) in the OpenSSL NIST SP800-90A-compliant AES-based deterministic random bit generator (DRBG). -
openssl-spkaccan create SPKAC files signed with SHA-1 and SHA-256You can use the openssl-spkac utility to create Netscape signed public key and challenge (SPKAC) files that are signed with hashes different from MD5. Likewise, you can also create and verify SPKAC files that are signed with SHA-1 and SHA-256 hashes.
To use FIPS-approved only algorithms, you need only to set the FIPS flag in the kernel. OpenSSL then opens the FIPS provider that contains the approved algorithms. Thus, you no longer need to switch OpenSSL to FIPS mode.
openCryptoki 3.17.0 Supported
Some differences exist between this version and what is provided upstream. Although
opencryptoki supports the old data format that uses non-FIPs approved
algorithms, the FIPS provider no longer allows those algorithms. Thus, you must migrate your
existing tokens to the new format before enabling FIPS mode on your system. To migrate
tokens using the old data format, use the pkcstok_migrate utility. See
https://www.ibm.com/docs/en/linux-on-systems?topic=tools-pkcstok-migrate.
GnuTLS Version 3.7.3 Provided
gnutls 3.7.3 packages include numerous improvements and bug fixes over
previous versions, including the following: Fixed timing of the early date (zero round trip
data, 0-RTT) exchange; the cerutil tool no longer inherits the CRL
(Certificate Revocation List) distribution point from the certificate authority (CA) when
signing a certificate signing request (CSR).
Network Security Service 3.71
The Network Security Services (NSS) libraries 3.71 support only the SQLite format. Support for legacy DBM format has been removed.
System Roles Support VPN Management
With the availability of VPN support, the Oracle Linux System Role can be used to more easily create VPN tunnels for host-to-host and mesh connections that involve large numbers of hosts. Consequently, you obtain a VPN configuration interface as well as tunneling configuration s that are more stable and constant within the System Roles project.
OpenSSH Updated to Version 8.7p1
OpenSSH 8.7p1 includes notable features and enhancements such as
LogVerbose configuration, client address-based rate-limiting through new
directives, support for Universal 2nd Factor (U2F) hardware authenticators specified by the
FIDO Alliance, and others. This version also includes the following fixes:
-
A bug fix to address an exploitable integer overflow issue in the private key parsing code for the XMSS key type. This key type is still experimental and support for it is not compiled by default. No user-facing
autoconfoption exists in portable OpenSSH to enable it. -
A bug fix to clarify the semantics of the
ClientAliveCountMax=0keyword has been implemented in Oracle Linux 9. Instead of the previous behavior of instantly killing the connection after the first liveness test, regardless of its success, the mechanism entirely disables connection killing. -
Added protection is provided for private keys at rest in RAM against speculation and memory side-channel attacks like Spectre, Meltdown, and Rambleed. Oracle Linux 9 encrypts private keys when not in use with a symmetric key that is derived from a relatively large “prekey” that consists of random data (currently 16 KB).
Libreswan 4.6 Supported
This version of Libreswan contains enhancements and fixes. Notably, because IKEv2 is now
generally deployed, IKEv1 packets are no longer supported by default. If your setup requires
the use of IKEv1 packets, you can enable support for these packets by adding the
ikev1-policy=accept line to the /etc/ipsec.conf file.
stunnel 5.62 Supported
This package version includes bug fixes and enhancements such as enabling or disabling the
resumption of a session through the sessionResume option and the
availability of a Bash-completion script.
Nettle Updated to Version 3.7.3
This new version contains the following enhancements:
-
New algorithms and modes are supported, such as
Ed448,SHAKE256,AES-XTS, andSIV-CMAC. -
Support is provided for architecture-specific optimizations for existing algorithms.
pk11-kit Updated to Version 0.24
In this package version, the subdirectory for the location of distrusted Certificate
Authorities is renamed blocklist for easier identification.
cyrus-sasl Uses GDBM Instead of Berkeley DB
The cyrus-sasl package no longer has the libdb
dependency. Further, the sasldb plugin uses the GDBM (GNU
dbm) database format instead of Berkeley DB.
To migrate existing SASL databases that are stored in the old Berkeley DB format, use the following command:
cyrusbdb2current sasldb-path new-pathUpdated SELinux Policy With the Current Kernel
Performance of SELinux has improved through faster loading of SELinux policy to the kernel, reduction of memory overhead, and efficient disk space use. Additionally, the SELinux policy integrates well with the current kernel and can use the current's permissions, classes, and capabilities. which improves security. Better granularity in defining permissions enables systems to run with the MLS SELinuxpolicy, which can prevent systems with permissions undefined in the policy from starting.
Additionally, you can only disable SELinux by using the selinux=0
parameter in the kernel command line. Using the older method of disabling SELinux in the
/etc/selinux/config does not disable SELinux; but rather, SELinux
stays enabled, but no policy is loaded.
By default, SELinux policy prohibits commands with text relocation libraries. SELinux can
enter commands that use libraries requiring text relocation provided that the library files
have the textrel_shlib_t label.
scap-security-guide 0.1.60 Changes
In this version, rules for hardening PAM stack use authselect as the
configuration tool.
fapolicyd Supports Version 1.1
The following are notable features in this version:
-
/etc/fapolicyd/rules.d/replaces/etc/fapolicyd/fapolicyd.rulesto store files that allow or deny execution rules. -
The new
/etc/fapolicyd/trust.ddirectory supports separating a list of trusted files into more files. You can also add an entry for a file by using thefapolicyd-cli -fcommand syntax enables you to add an entry for a file with the--trust-filedirective to these files. -
White spaces in file names are supported through the
fapolicydtrust database. -
fapolicydstores the correct path to an executable file when it adds the file to the trust database.
Rsyslog Package Includes rsyslog-mmfields Subpackage
The subpackage provides the mmfields module as an alternative to the
property replacer field extraction. The module extracts all the fields at once and stores
them inside the structured data part. Thus, mmfields enables you to process
field based log formats such as the Common Event Format (CEF). You can also use the module
in cases where you need a large number of fields, or reuse specific fields.
logrotate Provided in a Separate rsyslog-logrotate
Package
In this release, the logrotate configuration has been removed from the
main rsyslog package and is included in a new
rsyslog-logrotate package. This change is useful in certain minimal
environments for preventing the installation of unnecessary dependencies, for example, where
log rotation is not required.
sudo Program Includes Python Plugins
The sudo 1.9 program provides capability for writing
sudo plugins in Python. This capability makes it easier to enhance the
sudo program to more precisely suit specific scenarios.
Virtualization
The following features, enhancements, and changes related to virtualization are introduced in this Oracle Linux 9 release.
QEMU Uses Clang
In Oracle Linux 9, the QEMU emulator is built by using the Clang compiler. This improvement enables the KVM hypervisor to use several advanced security and debugging features, which provides better opportunities for future feature development.
Support for SafeStack on VMs
As of Oracle Linux 9, the QEMU machine emulator on x86_64 and AMD64 hardware can use the SafeStack feature. SafeStack is a enhanced compiler-based stack protection feature that reduces the ability of an attacker to exploit a stack- based buffer overflow to change return pointers in the stack and create Return-Oriented Programming (ROP) attacks. This change makes virtual machines (VMs) that are hosted on Oracle Linux 9 significantly more secure against ROP-based vulnerabilities.
Containers
The following features, enhancements, and changes related to containers are introduced in this Oracle Linux 9 release.
Podman Supports Short Names
The registries.conf file now accepts configuration of short-name aliases
for images in the [aliases] table. The short-names modes are:
-
Enforcing: If no matching alias is found during the image pull, Podman prompts the user to choose one of the unqualified-search registries. If the selected image is pulled successfully, Podman automatically records a new short-name alias in the
$HOME/.cache/containers/short-name-aliases.conffile (rootless user) and in the/var/cache/containers/short-name-aliases.conf(root user). If the user cannot be prompted (for example,stdinorstdoutare not a TTY), Podman fails. Note that theshort-name-aliases.conffile has precedence overregistries.conffile if both specify the same alias. -
Permissive: Similar to enforcing mode, but Podman does not fail if the user cannot be prompted. Instead, Podman searches in all unqualified-search registries in the given order. Note that no alias is recorded.
Changes in container-tools Module
The container-tools module contains the Podman, Buildah, Skopeo, and
runc tools. The rolling stream, represented by the
container-tools:ol8 stream in Oracle Linux 8, is named
container-tools:latest in Oracle Linux 9. Similarly to Oracle Linux 8,
stable versions of container tools are going to be available in numbered streams (for
example, 3.0).
containers-common Package Available In
containers-tools:latest Module
The containers-common package has been added to the
container-tools:latest module. The containers-common
package contains common configuration files and documentation for the container tools'
ecosystem, such as Podman, Buildah, and Skopeo.
podman-py Package Available
The podman-py package has been added to the
container-tools:3.0 stable module stream and the
container-tools:latest module. The podman-py package is
a library of bindings to use the RESTful API of Podman.
Improvements From Control Groups Version 2
With the availability of cgroupv2, system administrators can limit
resources for any application without causing performance problems that were encountered in
the previous version.
For additional information about notable changes in cgroupv2, see unresolvable-reference.html#ol9-features-kernel.
container-tools meta-package Available
This RPM meta-package includes Podman, Buildah, Skopeo, CRIU, Udica, and all required libraries, and are in Oracle Linux 9. To install the container-tools meta-package, run the following command:
sudo dnf install container-tools
Cloud Environment
The following changes and features apply to Oracle Linux used in cloud environments.
WALinuxAgent Updated to Version 2.3.0.2
The Windows Azure Linux Agent (WALinuxAgent) has been upgraded to upstream version 2.3.0.2, which introduces a number of bug fixes and enhancement, most notably the following:
-
Support has been added for RequiredFeatures and GoalStateAggregateStatus APIs.
-
Fallback locations for extension manifests have been added.
-
Missing calls to
str.format()have been added when creating exceptions.