Quay lại

2025/03/27

10. Tìm Hiểu Hai Nhân Oracle Linux “UEK” và “RHCK”

Oracle Linux có hai nhân: Nhân Tương Thích Red Hat (RHCK), là một nhân tương thích với RHEL, và Nhân Doanh Nghiệp Không Thể Phá Vỡ (UEK) riêng của Oracle Linux.

Nếu bạn chưa từng sử dụng Oracle Linux trước đây, bạn có thể lo lắng về Nhân Doanh Nghiệp Không Thể Phá Vỡ. Trong bài viết này, chúng tôi sẽ giải thích về Nhân Doanh Nghiệp Không Thể Phá Vỡ, cũng như tính tương thích của nó và các tiêu chí để xác định khi nào nên sử dụng nó.

Nhân Tương Thích Red Hat và Nhân Doanh Nghiệp Không Thể Phá Vỡ

Như một phần giới thiệu cơ bản, chúng tôi sẽ cung cấp tổng quan về Nhân Tương Thích Red Hat và Nhân Doanh Nghiệp Không Thể Phá Vỡ.

Nhân Tương Thích Red Hat là gì?

Như tên gọi của nó, Nhân Tương Thích Red Hat (RHCK) là một nhân tương thích với RHEL, đơn giản chỉ là một phiên bản được xây dựng lại từ mã nguồn nhân RHEL. Vì nó chỉ là một phiên bản được xây dựng lại, nó sẽ hoạt động giống như RHEL, bao gồm cả lỗi, miễn là số phiên bản giống nhau.

Bảng sau đây cho thấy các phiên bản RHCK và glibc cho từng phiên bản chính của Oracle Linux. Để nhấn mạnh tính tương thích trong cùng một phiên bản chính của Linux, các phiên bản cơ sở của các thành phần quan trọng như nhân và glibc sẽ không thay đổi. Thay vào đó, khi có bản cập nhật, số phát hành sẽ thay đổi như được mô tả dưới đây.

Phiên bản Linux Phiên bản RHCK Phiên bản glibc
Oracle Linux 9 5.14.0 2.34
Oracle Linux 8 4.18.0 2.28
Oracle Linux 7 3.10.0 2.17

Sơ đồ sau đây cho thấy tên gói RPM cho nhân và glibc. Khi một gói cập nhật được phát hành, phiên bản cơ sở vẫn giữ nguyên và bản phát hành được cập nhật.

Hình 1. Phiên bản và Bản phát hành của nhân/glibc

Nhân Doanh Nghiệp Không Thể Phá Vỡ là gì?

Nhân Doanh Nghiệp Không Thể Phá Vỡ (UEK) là một nhân độc đáo của Oracle Linux, dựa trên một nhân mới hơn RHCK và tương thích với RHCK. Tài liệu sau cung cấp tham chiếu về các tính năng của nó.

Tài liệu chính thức: Nhân Doanh Nghiệp Không Thể Phá Vỡ

Nhân Doanh Nghiệp Không Thể Phá Vỡ (UEK) là một nhân Linux được Oracle xây dựng và hỗ trợ thông qua hỗ trợ Oracle Linux. Trọng tâm của nó là hiệu suất, độ ổn định và giảm thiểu việc chuyển ngược bằng cách theo sát mã nguồn chính thống một cách thực tế nhất có thể. UEK được kiểm tra kỹ lưỡng và sử dụng để chạy Hệ thống Kỹ thuật của Oracle, Cơ sở Hạ tầng Đám mây Oracle, và các triển khai doanh nghiệp lớn cho khách hàng Oracle.

Hướng Dẫn Cài Đặt Cơ Sở Dữ Liệu cho Linux

Nhân Doanh Nghiệp Không Thể Phá Vỡ được bao gồm và kích hoạt mặc định trong các nhân Oracle Linux. Nó dựa trên một phiên bản phát triển chính thống ổn định gần đây của nhân Linux, và cũng bao gồm các tối ưu hóa được phát triển cùng với các nhóm kỹ thuật Cơ sở Dữ liệu Oracle, phần mềm trung gian Oracle, và phần cứng Oracle để đảm bảo độ ổn định và hiệu suất tối ưu cho các khối lượng công việc doanh nghiệp đòi hỏi khắt khe nhất.

Các điểm chính là:

  • UEK là một nhân Linux được Oracle phát triển và hỗ trợ.
  • Nhân mặc định của Oracle Linux
  • Dựa trên phiên bản ổn định mới của nhân Linux chính thống
  • Được phát triển cùng với các nhóm Exadata và Cơ sở Dữ liệu Oracle, tập trung vào hiệu suất và độ ổn định
  • Được thử nghiệm trong các môi trường khối lượng công việc doanh nghiệp quy mô lớn bao gồm Exadata và Cơ sở Hạ tầng Đám mây Oracle

Mối quan hệ giữa Oracle Linux và phiên bản nhân

Số phiên bản UEK thay đổi tùy thuộc vào nhân mà nó dựa trên, và được đặt tên, ví dụ, UEK6 và UEK7. Ngoài ra, một sự khác biệt lớn so với RHCK là phiên bản chính của Oracle Linux và phiên bản UEK không cố định. Bảng sau cho thấy sự tương ứng giữa UEK và Oracle Linux. Như bạn có thể thấy từ bảng này, Oracle Linux 8 có thể sử dụng UEK6 và UEK7.

Phiên bản UEK Phiên bản nhân Oracle Linux 7 Oracle Linux 8 Oracle Linux 9
UEK7 5.15.0 ×
UEK6 5.4.17 ×
UEK5 4.14.35 × ×
UEK4 4.1.12 × ×

Bảng sau so sánh các phiên bản nhân của RHCK và UEK cho Oracle Linux. Oracle Linux 9 được phát hành vào năm 2022, vì vậy sự khác biệt giữa các phiên bản RHCK và UEK là nhỏ. Tuy nhiên, vì Oracle Linux 7 và Oracle Linux 8 đã được phát hành từ lâu, sự khác biệt giữa các phiên bản RHCK và UEK là lớn.

Phiên bản Linux RHCK UEK
Oracle Linux 9 5.14.0 5.15.0
Oracle Linux 8 4.18.0 5.4.17, 5.15.0
Oracle Linux 7 3.10.0 4.1.12, 4.14.35, 5.4.17

Quy ước đặt tên phiên bản nhân Linux

Bây giờ chúng ta đã đề cập đến các phiên bản nhân Linux, hãy xem lại quy ước đặt tên. Thực tế, không có quy ước nào tuyệt đối, vì nó đã thay đổi nhiều lần và quy ước đặt tên hơi khác nhau giữa kernel.org gốc và các bản phân phối Linux.

Quy ước đặt tên tại kernel.org

Đầu tiên, hãy xem xét quy ước đặt tên được sử dụng bởi trang web chính thức của nhân Linux, kernel.org. Các nhân Linux được đặt tên như “abc” và được gọi như sau. Tuy nhiên, quy ước đặt tên này không phải là tuyệt đối.

a: Số phát hành chính
b: Số phát hành phụ
c: Số bản vá hoặc số sửa đổi

Ngoài ra, phiên bản tiếp theo sau 5.196.0, nhưng điều này không phải vì các chức năng đã thay đổi đáng kể. Đơn giản là vì không mong muốn số b quá lớn, và đây là quy ước tăng a khi b đạt khoảng 20. Và c là các sửa đổi cấp bản vá như sửa lỗi. Vì lý do này, giờ đây thường gọi số phát hành hoặc số phiên bản là sự kết hợp của “ab” hoặc “abc“.

Trong sơ đồ sau, Phát hành Chính bị gạch bỏ vì nó không còn được sử dụng nhiều, nhưng vẫn được dùng khi bạn muốn rõ ràng về số đầu tiên.

Hình 2. Quy ước đặt tên phiên bản nhân Linux

Hãy xem sơ đồ sau. Nó cho thấy lịch sử phát triển của nhân Linux. Các phần màu xám là giai đoạn phát triển, và sau một khoảng thời gian nhất định, việc phát triển chuyển sang phiên bản tiếp theo. Nói cách khác, một bản phát hành Linux cụ thể “abc” lặp lại chu kỳ sống “phát triển → hỗ trợ → LTS (Hỗ trợ Dài Hạn)” một lần mỗi vài năm. Nhân LTS được phát hành mỗi năm một lần và được hỗ trợ khoảng năm năm.

Nguồn: https://en.wikipedia.org/wiki/Linux_kernel_version_history

Hình 3. Lịch sử phiên bản nhân Linux 6.x

Hình 4. Lịch sử phiên bản nhân Linux 5.x

Quy ước đặt tên của bản phân phối Linux

Quy ước đặt tên của các bản phân phối Linux và kernel.org hơi khác nhau. Các nhân của bản phân phối Linux được đặt tên như “abc-z“, nhưng thực tế, hầu hết các bản phân phối có “ab0-z” nơi c là số không. Điều này không chỉ đúng với RHEL mà còn với Ubuntu, và cũng áp dụng cho UEK7 trở lên.

Sơ đồ sau cho thấy cách gọi các phiên bản nhân trong các bản phân phối Linux. Hiện tại không có sự hiểu biết chung, và nó dường như thay đổi tùy thuộc vào ngữ cảnh và người sử dụng.

Hình 5. Tên bản phân phối Linux

Thuật ngữ Phiên bản Cơ sở là mới đối với nền tảng này. Nó chỉ ra phiên bản kernel.org mà nó dựa trên. Tuy nhiên, số c bị buộc phải là số không, nên ngay cả khi phiên bản cơ sở là 5.15.0, phiên bản nhân mà nó dựa trên không nhất thiết là 5.15.0. Ví dụ, UEK7 là phiên bản 5.15.0, nhưng nó dựa trên 5.15.6.

$ rpm -q --changelog  kernel-uek-5.15.0-105.125.6.2.2.el9uek | tail -n 2
- Linux 5.15.6 (Greg Kroah-Hartman)

Mối quan hệ giữa mainline, longterm, stable, và rc

Hãy xem trang của nhân Linux chính thức, Kho Lưu Trữ Nhân Linux. Có nhiều phiên bản nhân Linux được liệt kê, với các nhãn như mainline, longterm, stable, và rc. Tôi sẽ giải thích từng cái dưới đây.

Hình 6. Kho Lưu Trữ Nhân Linux

Sơ đồ sau cho thấy một số phiên bản nhân được trích xuất từ kernel.org với các bình luận được thêm vào. Mainline là phát triển chính. Khi một rc (ứng cử viên phát hành) có sẵn, nó trở thành phiên bản chính thức, vì vậy mainline và stable đề cập đến cùng một trạng thái. Trong số các phiên bản ổn định, cứ vài phiên bản một lần, chúng trở thành dài hạn và được hỗ trợ trong thời gian dài.

Hình 7. Chu kỳ sống trên kernel.org

Backporting là gì?

Có một từ cần nhớ ở đây: backporting. Backporting đề cập đến việc áp dụng các tính năng hoặc bản sửa lỗi có trong phiên bản mới hơn của phần mềm vào phiên bản cũ hơn của phần mềm.

Ví dụ, việc áp dụng một bản vá mới được giới thiệu trong phiên bản 6.0 vào phiên bản 5.0 được gọi là backporting. Nói chung, sự khác biệt giữa hai phiên bản càng lớn, sự khác biệt trong cơ sở mã càng lớn, khiến việc áp dụng càng khó khăn hơn. Ngoài ra, có những trường hợp lỗi liên quan không tồn tại trong phiên bản cũ hơn, khiến backporting không cần thiết.

Một số người có thể tự hỏi điều ngược lại với backport là gì. Ví dụ, đó là trường hợp áp dụng một bản sửa lỗi từ phiên bản phần mềm 5.0 vào phiên bản phần mềm mới hơn 6.0. Tôi đã nghiên cứu một chút, nhưng không có thuật ngữ chung, và có vẻ như backport, merging, forward-porting, v.v. được sử dụng. Có vẻ nhiều người gọi nó là backport mà không suy nghĩ nhiều.

Đoạn văn sau là một phần của mô tả về UEK được giới thiệu ở phần đầu.

Trọng tâm của nó là hiệu suất, độ ổn định, và giảm thiểu backport bằng cách theo sát mã nguồn chính thống một cách thực tế nhất có thể.

Xét đến những gì chúng ta đã thảo luận cho đến nay, Oracle đưa ra các tuyên bố sau:

  • Các cơ sở mã nguồn chính thống mới hơn có khả năng mang lại hiệu suất và độ ổn định tốt hơn vì chúng tích hợp nhiều tính năng mới và sửa lỗi hơn.
  • Bắt đầu với mã nguồn chính thống mới hơn có nghĩa là có ít sự khác biệt trong mã nguồn, vì vậy cần ít backporting nhất.

Kiến thức cơ bản về nội bộ Linux

Một trong những điều quan trọng nhất cần biết về UEK là tính tương thích của nó với nhân RHEL (RHCK). Để hiểu tính tương thích, kiến thức về hệ điều hành Linux là cần thiết. Do đó, chúng tôi sẽ giải thích các kiến thức cơ bản về cấu trúc nội bộ của Linux.

Các thành phần chính của hệ điều hành Linux

Sơ đồ sau cho thấy các thành phần chính của hệ điều hành Linux và mối quan hệ của chúng. Điều quan trọng là phải ghi nhớ thông tin này khi cố gắng hiểu hệ điều hành Linux.

  • Nhân Linux
    Nhân là thành phần cốt lõi của hệ điều hành Linux. Nó nhận yêu cầu từ các ứng dụng và thực hiện quản lý quá trình và quản lý bộ nhớ để thực thi chương trình. Nó cũng sử dụng trình điều khiển thiết bị, là các mô-đun nhân, để quản lý hệ thống tệp và điều khiển thiết bị cho I/O. Vai trò của nhân có thể được tóm tắt như sau. Tốt nhất là hiểu nó như một hàm tác động lên phần cứng.
    • Quản lý tài nguyên phần cứng cho CPU, bộ nhớ, đĩa, card mạng, v.v.
    • Quản lý và điều khiển quá trình cho các ứng dụng chạy trên Linux
  • Mô-đun Nhân
    Các mô-đun nhân là các tệp nhị phân mở rộng chức năng của nhân. Chúng chủ yếu là trình điều khiển thiết bị, và ở định dạng có thể tải khi cần. Điều này cho phép hỗ trợ phần cứng mới chỉ bằng cách thêm trình điều khiển, và cũng giảm việc sử dụng bộ nhớ.
  • Thư viện Hệ thống
    Thư viện hệ thống (hoặc đơn giản là thư viện) là tập hợp các hàm thường được các chương trình sử dụng, cung cấp hầu hết các chức năng do hệ điều hành cung cấp. Nổi tiếng nhất là glibc, thư viện C tiêu chuẩn được sử dụng trong Linux. Nó được gọi là glibc vì ban đầu nó được GNU phát triển dưới dạng Thư viện C GNU.

Hình 8. Cấu trúc nội bộ của Linux

Hiểu các kiến thức cơ bản (hàm thư viện và lệnh gọi hệ thống)

Các ứng dụng trong Hình 8 đề cập đến các chương trình khác nhau, bao gồm các lệnh và tiện ích được bao gồm tiêu chuẩn trong hệ điều hành. Các chương trình này chạy bằng cách gọi các hàm thư viện và lệnh gọi hệ thống. Hãy hiểu sự khác biệt giữa chúng.

“Thư viện /lib64/usr/lib được cài đặt trong và . Nếu bạn hiển thị thông tin ký hiệu của glibc bằng lệnh nm, bạn sẽ thấy rằng nó chứa printf(). Thông tin ký hiệu đề cập đến các hàm và biến có trong thư viện hoặc chương trình thực thi.

printf() Hoạt động như được cung cấp trong các đối số, đưa ra hướng dẫn cho nhân nếu cần.

$ rpm -qf /lib64/libc.so.6
glibc-2.34-60.0.3.el9.x86_64

$ nm /lib64/libc.so.6 | grep "T printf"
000000000006f430 T printf
000000000006e8f0 T printf_size
000000000006f350 T printf_size_info

“Lệnh gọi hệ thống” cung cấp các hàm để vận hành phần cứng như nhập/xuất tệp, tạo quá trình mới, giao tiếp mạng, v.v. Trong Hình 8, một lệnh gọi hệ thống được gọi trực tiếp từ ứng dụng. Tuy nhiên, nó cũng có thể được gọi qua hàm bao bọc lệnh gọi hệ thống có trong glibc.

Bạn đã đọc đến đây chưa? Bạn có thể thấy rằng các thư viện như glibc rất quan trọng. Vì lý do này, các bản phân phối dựa trên RHEL không thay đổi phiên bản glibc cho đến khi phiên bản chính thay đổi.

Chế độ nhân và chế độ người dùng

Mô tả chế độ nhânchế độ người dùng.

Các chương trình truy cập tài nguyên phần cứng, như nhân và trình điều khiển thiết bị, chạy trong một chế độ đặc quyền đặc biệt gọi là “chế độ nhân.” Chúng chạy trong một không gian bộ nhớ duy nhất, cách ly sử dụng các tính năng bảo vệ của CPU, và vì không yêu cầu chuyển đổi ngữ cảnh, chúng chạy rất nhanh. Nhân không chỉ chạy từng quá trình mà còn cung cấp quyền truy cập được bảo vệ vào phần cứng.

Ngược lại, các chương trình thông thường chạy trong không gian bộ nhớ gọi là “chế độ người dùng.” Các chương trình chạy trong chế độ người dùng không thể truy cập trực tiếp phần cứng. Thay vào đó, chúng truy cập các hàm nhân thông qua lệnh gọi hệ thống, và cuối cùng nhân truy cập phần cứng.

Tóm tắt kiến thức cơ bản

Hãy tóm tắt ngắn gọn các kiến thức cơ bản về nội bộ Linux mà chúng ta đã đề cập cho đến nay.

  • Cả nhân và glibc đều là các thành phần quan trọng của Linux, nhưng chúng có vai trò khác nhau
  • Nhân chịu trách nhiệm điều khiển phần cứng.
  • Thư viện cung cấp các hàm được các chương trình thông thường sử dụng. Thư viện quan trọng nhất là glibc.
  • Để truy cập phần cứng, bạn cần thực hiện lệnh gọi hệ thống.
  • Các chương trình truy cập phần cứng qua lệnh gọi hệ thống hoặc hàm thư viện.

Cách hoạt động của container

Tiếp theo, chúng tôi sẽ giải thích về container. Bạn có thể tự hỏi, “Tại sao lại là container?” sau khi giải thích về nhân. Đó là vì hiểu cách container hoạt động là một chủ đề tốt để hiểu về tính tương thích của nhân.

Cấu trúc Container

Sơ đồ sau so sánh ảo hóa dựa trên hypervisor và dựa trên container: Một máy ảo có hệ điều hành khách và nhân, trong khi một container chỉ chứa ứng dụng và thư viện, nhưng không có nhân.

Hình 9. Sự khác biệt giữa loại hypervisor và loại container

Lý do tại sao không cần nhân trong container là vì nó sử dụng nhân trong hệ điều hành chủ. Mặc dù container sử dụng các tính năng Linux như cgroups và Namespace để cách ly các container với nhau, chúng chỉ là các quá trình chạy trên hệ điều hành chủ. Xem sơ đồ sau. Một container sẽ chạy nếu nó chứa các thư viện và chương trình cần thiết để chạy ứng dụng.

Hình 10. Cách container hoạt động

Tính tương thích của nhân Linux

Có một điều quan trọng ở đây.

Nó sẽ hoạt động ngay cả khi hệ điều hành mà hình ảnh container được tạo ra là phiên bản Linux khác với hệ điều hành chủ.

Ví dụ, giả sử hệ điều hành chủ mà động cơ container chạy là Ubuntu Server 22.04 LTS. Trong trường hợp này, ngay cả khi hình ảnh container được tạo bằng Oracle Linux 9, nó sẽ hoạt động miễn là các thư viện và tệp nhị phân cần thiết được bao gồm. Mặc dù cả hai cần phải là Linux, chúng có thể hoạt động ngay cả khi các phiên bản nhân Linux hơi khác nhau.

Tuy nhiên, đây là vấn đề liệu nó có hoạt động về mặt kỹ thuật hay không, và không liên quan gì đến việc nhà cung cấp có cung cấp hỗ trợ kỹ thuật hay không.

Hình 11. Tính tương thích của nhân Linux

Hãy để tôi giải thích chi tiết hơn một chút. Xem Hình 12 dưới đây. Giao diện giữa ứng dụng và nhân trong lệnh gọi hệ thống Linux được gọi là Giao diện Nhị phân Ứng dụng (ABI). Nhân Linux được phát triển với sự cân nhắc về tính tương thích để các lệnh gọi hệ thống từ các phiên bản trước có thể được gọi với cùng thông số kỹ thuật. Do đó, ngay cả khi phiên bản nhân Linux hơi khác nhau, các ứng dụng sẽ hoạt động theo cùng một cách.

Hình 12. Duy trì tính tương thích qua Giao diện Nhị phân Ứng dụng

Giao diện Nhị phân Ứng dụng (ABI)

ABI là định nghĩa giao diện, cụ thể là tên lệnh gọi hệ thống, kiểu dữ liệu đối số, số lượng đối số, kiểu dữ liệu giá trị trả về và giá trị, v.v. Nhân Linux được phát triển để những thứ này không thay đổi. Nếu ABI không thay đổi, sẽ không có lỗi khi gọi lệnh gọi hệ thống.

Tuy nhiên, nếu phiên bản nhân khác nhau, việc triển khai nội bộ của lệnh gọi hệ thống có thể khác nhau. Tuy nhiên, lệnh gọi hệ thống là một lệnh nguyên thủy đối với phần cứng, như “ghi dữ liệu vào đĩa” hoặc “phân bổ bộ nhớ.” Do đó, hành vi bên ngoài cũng được làm để giống nhau. Đây là cách tính tương thích được duy trì.

Hình 13. Tính tương thích được duy trì bởi ABI

Các không tương thích cần lưu ý

Mặt khác, bạn nên cẩn thận với những không tương thích nào? Xem Hình 14 dưới đây. Đó là các mô-đun nhân như trình điều khiển thiết bị. Ngay cả khi số phiên bản nhân khớp nhau, chúng có thể không hoạt động nếu số phát hành ở cuối khác nhau. Một số mô-đun nhân có thể hấp thụ sự khác biệt nhỏ trong số phát hành, nhưng việc biên dịch lại được khuyến nghị.

Mặc dù không liên quan gì đến nhân, một điều cần cẩn thận về tính tương thích ứng dụng là các thư viện được sử dụng trong ngôn ngữ, khung, v.v. Thư viện thường được cập nhật thường xuyên, và thường có các hạn chế như thư viện XXX 2.0 trở lên.

Hình 14. Không tương thích của mô-đun nhân

So sánh UEK và RHCK

Bây giờ chúng ta đã đề cập đến các kiến thức cơ bản, cuối cùng chúng ta có thể đến với chủ đề chính của sự so sánh: tính tương thích và tính năng.

Tính tương thích với RHCK

Đây là về tính tương thích giữa UEK và RHCK. Nếu bạn đã đọc đến đây, có lẽ bạn đã biết. UEK được phát triển để duy trì tính tương thích ABI với RHCK. Do đó, nếu đó là một ứng dụng thông thường chạy trong chế độ người dùng, nó là tương thích.

Tuy nhiên, có một vài điều cần lưu ý.

Hỗ trợ cho các sản phẩm phần mềm thương mại
Điểm đầu tiên là liệu sản phẩm phần mềm thương mại có được hỗ trợ hay không. Ngay cả khi một sản phẩm phần mềm thương mại hỗ trợ Oracle Linux, nó có thể hỗ trợ RHCK nhưng không hỗ trợ UEK. Thực tế, các ứng dụng chạy trong chế độ người dùng thường chạy mà không có vấn đề gì, nhưng nếu bạn muốn ưu tiên chính sách hỗ trợ của nhà cung cấp, hãy sử dụng RHCK.

Một ví dụ về phần mềm thương mại cần chú ý đến tính tương thích là các sản phẩm chống vi-rút. Một số sản phẩm chống vi-rút chạy dưới dạng mô-đun nhân, vì vậy trong trường hợp đó, bạn cần kiểm tra xem chúng có tương thích không.

Không có nhiều lựa chọn phần mềm tiếng Nhật, nhưng bạn có thể kiểm tra tính tương thích Oracle Linux trong danh mục ISV Oracle Linux.

Khi sử dụng máy chủ của nhà sản xuất nổi tiếng
Điều quan trọng nhất cần lưu ý là Oracle Linux được bao gồm trong danh sách phần cứng được hỗ trợ. Nếu nó không được nhà sản xuất hỗ trợ, có khả năng cao họ sẽ không thể giúp bạn nếu có bất kỳ vấn đề nào xảy ra.

Ngoài ra, vì các máy chủ được trang bị phần cứng đặc biệt như bộ điều khiển RAID và NIC, các nhà sản xuất có thể cung cấp trình điều khiển thiết bị riêng của họ. Nếu các trình điều khiển không được hỗ trợ, bạn có thể không sử dụng được chúng.

Kiểm tra trang web của nhà sản xuất hoặc Danh sách Chứng nhận Phần cứng Oracle Linux để biết thông tin hỗ trợ, bao gồm cả thông tin về hỗ trợ RHCK và UEK.

Sự khác biệt về tính năng

Thật khó để khái quát về sự khác biệt trong tính năng, vì chúng thay đổi theo phiên bản nhân, nhưng nói chung, UEK dựa trên một nhân chính thống mới hơn, vì vậy nó có hiệu suất tốt hơn và nhiều tính năng hơn.

Ví dụ, trong Oracle Linux 9, phiên bản cơ sở của UEK7 là 5.15.0, và phiên bản cơ sở của RHCK là 5.14.0. Hiện tại không có nhiều khác biệt. Tuy nhiên, như được hiển thị trong bảng sau, UEK thay đổi ngay cả trong cùng một phiên bản chính. Trong vài năm nữa, UEK8 sẽ được phát hành cho Oracle Linux 9, và sự khác biệt trong các phiên bản nhân sẽ mở rộng.

Phiên bản Linux UEK4 UEK5 UEK6 UEK7
Oracle Linux 9 × × ×
Oracle Linux 8 × ×
Oracle Linux 7 ×

Các tính năng nổi tiếng độc quyền của UEK bao gồm ocfs2 và btfs. Có những tính năng khác, nhưng để biết chi tiết, vui lòng xem “Tính năng Mới và Thay đổi” trong “Ghi chú Phát hành Nhân Doanh Nghiệp Không Thể Phá Vỡ“.

Hình 15. Ghi chú Phát hành Nhân Doanh Nghiệp Không Thể Phá Vỡ 7

Tóm tắt: Khi nào nên sử dụng UEK hay RHCK?

UEK được thiết kế cho khối lượng công việc Cơ sở Dữ liệu Oracle và Oracle Linux KVM quy mô lớn, và dựa trên một nhân mới hơn, điều này có nghĩa là nó thường cung cấp hiệu suất và tính năng tốt hơn.

Tuy nhiên, UEK không phải là điều bắt buộc tuyệt đối. Tôi tin rằng bạn nên sử dụng chúng tùy theo tình huống và mục đích. Trong các trường hợp 1 và 2 sau đây, bạn nên xem xét sử dụng RHCK. Điều quan trọng là hiểu sự khác biệt giữa UEK và RHCK và sử dụng chúng một cách phù hợp. Tôi cũng sẽ giới thiệu một bảng tóm tắt những gì tôi đã giải thích cho đến nay.

  1. Nếu bạn đang sử dụng một máy chủ vật lý và nhà sản xuất chỉ hỗ trợ RHCK
    , hãy sử dụng RHCK.
  2. Nếu bạn đang sử dụng phần mềm thương mại và nhà cung cấp chỉ hỗ trợ RHCK
    , tốt hơn nên sử dụng RHCK. Tuy nhiên, nếu bạn sử dụng nó trên hệ thống của riêng mình và có thể chịu được rủi ro, UEK cũng là một lựa chọn.

Ưu điểm và nhược điểm của UEK so với RHCK

Mục Ưu điểm Nhược điểm
Chức năng và Hiệu suất Tùy thuộc vào phiên bản UEK và RHCK nào bạn đang so sánh, UEK có khả năng có tính năng và hiệu suất tốt hơn vì nó sử dụng nhân chính thống mới hơn, và cũng có thể có tối ưu hóa cho Cơ sở Dữ liệu Oracle.
Tính tương thích của ứng dụng chạy trong chế độ người dùng Tương thích Trong trường hợp các sản phẩm gói thương mại, hỗ trợ có thể không có sẵn tùy thuộc vào chính sách hỗ trợ của nhà cung cấp.
Mô-đun nhân chạy trong chế độ nhân Các trình điều khiển thiết bị, v.v. được cung cấp dưới dạng mã nguồn có khả năng tương thích Phần mềm chống vi-rút và trình điều khiển thiết bị chạy trong chế độ nhân thường không tương thích.
Khác Các máy chủ từ các nhà sản xuất nổi tiếng có thể hỗ trợ Oracle Linux (RHCK) nhưng không hỗ trợ UEK.