Between RHEL 6, RHEL 7 and RHEL 8 there are numerous changes in tools, commands and workflows.
We have included the possible difference between them in this article.
We have gone through several Red Hat articles and RHEL 6, 7 and 8 Release Notes to gather this information for you.
We have added a comparison table based on categories. It has five categories and each type contains related information about it.
This will help you figure out the major differences between Red Hat Enterprise Linux 6, 7 and 8 versions.
If we have missed anything, please feel free to add your comments below, so that we can update this article accordingly. It will help others.
Red Hat Enterprise Linux 8 (Ootpa) is based on Fedora 28 and modular software repository, curated 3rd-party software repositories notable new features.
This release provides a stable, secure and good foundation to deploy Linux containers to public and private clouds, which support customer’s workloads and operations seamlessly.
General Information
S.No | Description | RHEL 8 | RHEL 7 | RHEL 6 |
---|---|---|---|---|
1 | General Availability Date | 14-Nov-18 | 10-Jun-14 | 10-Nov-10 |
2 | Code Name | Ootpa | Maipo | Santiago |
3 | Kernel Version | 4.18 | 3.10.0-123 | 2.6.32-71 |
4 | End of Full Support | May-2024 | Q4 2019 | 10-May-16 |
5 | End of Maintenance Support 1 | N/A | Q4 2020 | 10-May-17 |
6 | End of Maintenance Support 2 | May-2029 | 30-Jun-2024 | 30-Nov-20 |
7 | End of Extended Life cycle Support | TBD | N/A | 30-Jun-24 |
8 | Last Minor Release | TBD | 7.7 | 6.10 |
Boot Process Related Changes
S.No | Description | RHEL 8 | RHEL 7 | RHEL 6 |
---|---|---|---|---|
1 | Boot Loader: The GRUB2 looks very similar to GRUB but there are many features added. | GRUB 2 | GRUB 2 | Legacy GRUB |
2 | Runlevel: Runlevels are referred as target but there is no difference but they merged runlevel 2,3,4 into one. | runlevel0.target -> poweroff.target runlevel1.target -> rescue.target runlevel2.target -> multi-user.target runlevel3.target -> multi-user.target runlevel4.target -> multi-user.target runlevel5.target -> graphical.target runlevel6.target -> reboot.target | runlevel0.target -> poweroff.target runlevel1.target -> rescue.target runlevel2.target -> multi-user.target runlevel3.target -> multi-user.target runlevel4.target -> multi-user.target runlevel5.target -> graphical.target runlevel6.target -> reboot.target | runlevel 0 runlevel 1 runlevel 2 runlevel 3 runlevel 4 runlevel 5 runlevel 6 |
3 | To view runlevel/target | systemctl get-default | systemctl get-default | runlevel |
4 | To change runlevel/target | systemctl isolate [Name.target] | systemctl isolate [Name.target] | init [runlevel] |
5 | To configure default runlevel/target | systemctl set-default [Name.target] | systemctl set-default [Name.target] | /etc/inittab |
6 | To break root password or Boot into single user mode | Append rd.break or init=/bin/bash to kernel cmdline | Append rd.break or init=/bin/bash to kernel cmdline | Append 1 or s or init=/bin/bash to kernel cmdline |
7 | KDUMP | Kdump is enabled by default and will run without any problems if the system has too much RAM. | Kdump is enabled by default and will run without any problems if the system has too much RAM (up to 3 TB). | Kdump is enabled by default and will run without any problems if the system has too much RAM. |
Major Package Changes
S.No | Description | RHEL 8 | RHEL 7 | RHEL 6 |
---|---|---|---|---|
1 | System Manager: Systemd is a new init system and system manager which was adapted by most of the major distribution. | systemd | systemd | upstart |
2 | Service Manager | systemctl command | systemctl command | service command |
3 | Enable Service on Boot | systemctl command | systemctl command | chkconfig |
4 | Network Time Synchronization | Only Chrony (faster time sync and useful for the systems which are not online all the time) | It supports Chrony and ntp | ntp |
5 | Network Bonding | Teamd | Teamd | Bonding |
6 | To view ports/sockets | ss and lsof | ss and lsof | netstat, ss and lsof |
7 | Cluster Resource Manager | Pacemaker | Pacemaker | Rgmanager |
8 | GUI Interface (Desktop) | Gnome 3.28 | Gnome 3 | Gnome 2 |
9 | Default Display Server | Wayland | X.Org | X.Org |
10 | Default Database | MySQL 8.0, MariaDB 10.3, PostgreSQL 10 and 9.6, and Redis 5.0 | MariaDB | MySQL |
11 | Default Firewall | Firewalld, it uses nftables framework in the backend | Firewalld, it uses Iptables framework in the backend | Iptables |
12 | Temporary Files Management | systemd-tmpfiles | systemd-tmpfiles | tmpwatch |
13 | Load Balancer Technology | Keepalived and HAProxy | Keepalived and HAProxy | Piranha |
14 | Python | Python 3 | Python 2.7.5 | Python 2.0 |
15 | PHP | PHP 7.2 | PHP 5.4 | PHP 5.3 |
16 | Compiler | GCC 8.2.1 | GCC 4.8.2 | GCC 4.4 |
File System Related Changes
S.No | Description | RHEL 8 | RHEL 7 | RHEL 6 |
---|---|---|---|---|
1 | Default File System | XFS | XFS | EXT4 |
2 | File System Check | xfs_repair | xfs_repair | e2fsck |
3 | File System Extend: xfs_growfs (This doesn’t allow you to reduce a filesystem) | xfs_growfs | xfs_growfs | resize2fs |
Other Changes
S.No | Description | RHEL 8 | RHEL 7 | RHEL 6 |
---|---|---|---|---|
1 | First Process owned by | systemd (PID 1) | systemd (PID 1) | init (PID 1) |
2 | Network Interface Name | enpXXX (enp0s3) | enpXXX (enp0s3) | eth0 |
3 | Host Name Change | It needs to be defined in /etc/hostname file | /etc/hostname | It’s defined in /etc/sysconfig/network file |
4 | UID Allocation Change | 0-999 UIDs are reserved for system and application users. | 0-999 | 0-499 |
5 | Max Supported (Individual) File & Filesystem Size | XFS= 500TB XFS= 1024TB | XFS= 500TB XFS= 500TB | EXT4= 16TB EXT4= 16TB |
6 | ISO Image | Only 64-Bit | Only 64-Bit | 32-Bit and 64-Bit |
7 | Mount Options Change | By default user_xattr and acl mount options are enabled | By default user_xattr and acl mount options are enabled | Need to enable them manually |
8 | Default Repos | Repo ID: rhel-8-for-x86_64-appstream-rpms Repo Name: Red Hat Enterprise Linux 8 for x86_64 – AppStream (RPMs) Repo ID: rhel-8-for-x86_64-baseos-rpms Repo Name: Red Hat Enterprise Linux 8 for x86_64 – BaseOS (RPMs) | Repo ID: rhel-7-server-rpms Repo Name: Red Hat Enterprise Linux 7 Server (RPMs) | Repo ID: rhel-6-server-rpms Repo Name: Red Hat Enterprise Linux 6 Server (RPMs) |
9 | Package Management | By default both are installed, YUM symbolic link to DNF | By default only YUM and DNF can be installed from the Extra repo | Only YUM |
10 | Max. RAM Supported | 24 TB on x86_64 architecture | 12 TB on x86_64 architecture | 12 TB on x86_64 architecture |
11 | Directories Change | Directories /bin, /sbin, /lib and /lib64 are now all under the /usr directory | All these under the /usr directory | All these under the / directory |
12 | Logging | rsyslog and journal | rsyslog and journal | Only rsyslog |
13 | Minimum required disk space | 10GB minimum, 20GB recommended | 10GB minimum, 20GB recommended | 1GB minimum, 5GB recommended |
14 | Is the upgrade possible? | Yes | Yes, RHEL 7.7 to RHEL 8 | Yes, RHEL 6.10 to RHEL 7.7 |
15 | Virtual Machines Management | cockpit | virt-manager | virt-manager |
Closing Notes
In this guide, we have shown you several differences between RHEL 8, RHEL 7 and RHEL 6.
If you have any questions, please feel free to add your comments below, and we will address them at the earliest. Happy Learning!
it’s very useful and informative .
Nice article. good job 🙂