The following topics related to Red Hat Enterprise Linux 4 are covered in this document:
Introduction (this section)
Overview of this release
The following list includes brief summaries of some of the more significant aspects of Red Hat Enterprise Linux 4:
Red Hat Enterprise Linux 4 includes an implementation of SELinux. SELinux represents a major shift in the way users, programs, and processes interact. By default, SELinux is installed and enabled in this release.
During the installation you have the option of disabling SELinux, setting it to log warning messages only, or to use its targeted policy, which confines the following daemons only:
The targeted policy is active by default.
Red Hat Enterprise Linux 4 support for SELinux uses Extended Attributes on ext2/ext3 file systems. This means that, when a file is written to a default-mounted ext2/ext3 file system, an extended attribute will also be written.
This will cause problems on systems that dual boot between Red Hat Enterprise Linux 4 and Red Hat Enterprise Linux 2.1. The Red Hat Enterprise Linux 2.1 kernels do not support extended attributes, and can crash when encountering them.
For more information about SELinux, refer to the Red Hat SELinux Policy Guide, available online at:
The mount command has been changed to do the following on NFS mounts:
· TCP is now the default transport on NFS mounts. This means that a mount command that does not explicitly specify UDP as the desired protocol (for example, mount foo:/bar /mnt) now uses TCP to communicate with the server, instead of UDP.
· Using the verbose (-v) option now causes RPC error messages to be written to standard output.
Red Hat Enterprise Linux 4 supports UTF-8 encoding by default for Chinese, Japanese, and Korean locales.
Red Hat Enterprise Linux 4 now uses IIIMF for input of Chinese, Japanese, and Korean by default.
Red Hat Enterprise Linux 4 supports 5 Indian (Indic) languages: Bengali, Gujarati, Hindi, Punjabi, and Tamil. In addition, the high-quality Lohit font family for the supported languages has been included.
Subversion 1.1 is now included in Red Hat Enterprise Linux; the Subversion version control system is designed to be a replacement for CVS and features truly atomic commits, versioning of files, directories and metadata, along with most current features of CVS.
Red Hat Enterprise Linux 3 introduced the Native POSIX Thread Library (NPTL) — an implementation of POSIX threading support that greatly improved performance, scalability, semantic correctness, and standards compliance over the LinuxThreads implementation used previously.
While most threaded applications were not impacted by the introduction of NPTL, applications that relied on those semantics of LinuxThreads that were contrary to the POSIX specification would not operate correctly. As noted at the time of NPTL's introduction, Red Hat recommended that such applications be updated so that they complied with POSIX (and could therefore use NPTL.)
While support for LinuxThreads still exists for Red Hat Enterprise Linux 4, this statement serves as advance notice that Red Hat Enterprise Linux 5 will no longer include support for LinuxThreads. Therefore, applications that require LinuxThreads support must be updated before they will be able to work properly on a Red Hat Enterprise Linux 5 system.
Several workarounds exist that permit applications requiring the use of LinuxThreads to continue operation under Red Hat Enterprise Linux 3 and 4. These workarounds include:
Using the LD_ASSUME_KERNEL environment variable to select LinuxThreads instead of NPTL at runtime
Using an explicit rpath to /lib/i686/ or /lib/ to select LinuxThreads instead of NPTL at runtime
Statically linking the application to use LinuxThreads instead of NPTL (strongly discouraged)
In order to determine whether an application is using NPTL or LinuxThreads, add following two environment variables to the application's environment:
(Where <filename> is the name to be given to each debug output log file. More than one file can be generated if the program forks other processes; all debug output log filenames include the PID of process generating the file.)
Then start the application and use it as you normally would.
If no debug output log file was produced, the application is statically linked. The application will not be affected by the missing LinuxThreads DSO but, as with all statically linked applications, no guarantees for compatibility are given if the application dynamically loads any code (directly via dlopen() or indirectly via NSS.)
If one or more debug output log files were produced, review each one for any references to libpthread — in particular, a line also containing the string "calling init". The grep utility can do this easily:
grep "calling init.*libpthread" <filename>.*
(Where <filename> refers to the name used in the LD_DEBUG_OUTPUT environment variable.)
If the path preceding libpthread is /lib/tls/, the application is using NPTL, and no further action needs to be taken. Any other path means that LinuxThreads is being used, and the application must be updated and rebuilt to support NPTL.
This section outlines those issues that are related to Anaconda (the Red Hat Enterprise Linux installation program) and installing Red Hat Enterprise Linux 4 in general.
If you are copying the contents of the Red Hat Enterprise Linux 4 CD-ROMs (in preparation for a network-based installation, for example) be sure you copy the CD-ROMs for the operating system only. Do not copy the Extras CD-ROM, or any of the layered product CD-ROMs, as this will overwrite files necessary for Anaconda's proper operation.
These CD-ROMs must be installed after Red Hat Enterprise Linux has been installed.
System configurations that use a vdisk (instead of standard DASD) for swap must disable the use of this vdisk before upgrading a current Red Hat Enterprise Linux installation to Red Hat Enterprise Linux 4.
To do this, comment out the appropriate line (identifiable by the word "swap") in /etc/fstab by placing a "#" character at the start of the line. You may then reboot to start the upgrade process.
The following sections contain information regarding packages that have undergone significant changes for Red Hat Enterprise Linux 4. For easier access, they are organized using the same groups used in Anaconda.
This section contains information related to basic system components.
Red Hat Enterprise Linux 4 contains OpenSSH 3.9, which includes strict permission and ownership checks for the ~/.ssh/config file. These checks mean that ssh will exit if this file does not have appropriate ownership and permissions.
Therefore, make sure that ~/.ssh/config is owned by the owner of ~/, and that its permissions are set to mode 600.
This section contains the most elemental components of Red Hat Enterprise Linux, including the kernel.
The ext2online utility has been added for online growing of existing ext3 file systems.
It is important to keep in mind that ext2online does not grow the underlying block device itself — there must be sufficient unused space already present on the device. The easiest way to ensure this is to use LVM volumes and to run lvresize or lvextend to extend the device.
In addition, file systems must be specially prepared in order to be resized past a certain point. The preparation involves reserving a small amount of space into which on-disk tables can grow. For newly-created file systems, mke2fs reserves such space automatically; the space reserved is sufficient to grow the file system by a factor of 1000. The creation of this reserved space can be disabled by the following command:
mke2fs -O ^resize_inode
Future releases of Red Hat Enterprise Linux will allow the creation of this reserved space on existing file systems.
The version of glibc provided with Red Hat Enterprise Linux 4 performs additional internal sanity checks to prevent and detect data corruption as early as possible. By default, should corruption be detected, a message similar to the following will be displayed on standard error (or logged via syslog if stderr is not open):
*** glibc detected *** double free or corruption: 0x0937d008 ***
By default, the program that generated this error will also be killed; however, this (and whether or not an error message is generated) can be controlled via the MALLOC_CHECK_ environment variable. The following settings are supported:
0 — Do not generate an error message, and do not kill the program
1 — Generate an error message, but do not kill the program
2 — Do not generate an error message, but kill the program
3 — Generate an error message and kill the program
If MALLOC_CHECK_ is explicitly set a value other than 0, this causes glibc to perform more tests that are more extensive than the default, and may impact performance.
Should you have a program from a third party ISV that triggers these corruption checks and displays a message, you should file a defect report with the application's vendor, since this indicates a serious bug.
This section contains notes relating to the Red Hat Enterprise Linux 4 kernel.
Although Red Hat Enterprise Linux 4 includes support for rawio, it is now a deprecated interface. If your application performs device access using this interface, Red Hat encourages you to modify your application to open the block device with the O_DIRECT flag. The rawio interface will exist for the life of Red Hat Enterprise Linux 4, but is a candidate for removal from future releases.
Asynchronous I/O (AIO) on file systems is currently only supported in O_DIRECT, or non-buffered mode. Also note that the asynchronous poll interface is no longer present, and that AIO on pipes is no longer supported.
The sound subsystem is now based on ALSA; the OSS modules are no longer available.
System environments using the kernel's "hugepage" functionality should be aware that the name of the /proc/ entry controlling this feature changed between Red Hat Enterprise Linux 3 and Red Hat Enterprise Linux 4:
Red Hat Enterprise Linux 3 used /proc/sys/vm/hugetlb_pool and specified the desired size in megabytes
Red Hat Enterprise Linux 4 uses /proc/sys/vm/nr_hugepages and specifies the size by the desired number of pages (refer to /proc/meminfo for the size of hugepages on your system)
The initial release of Red Hat Enterprise Linux 4 does not support USB hard disk drives. However, other USB storage devices, such as flash media, CD-ROM and DVD-ROM devices are currently supported.
The kernel shipped with Red Hat Enterprise Linux 4 includes the new megaraid_mbox driver from LSI Logic, which replaces the megaraid driver. The megaraid_mbox driver has an improved design, is compatible with the 2.6 kernel, and includes support for the latest hardware. However, megaraid_mbox does not support some of the older hardware that was supported by the megaraid driver.
Adapters with the following PCI vendor ID and device ID pairs are not supported by the megaraid_mbox driver:
vendor, device 0x101E, 0x9010