Chuyển đến nội dung chính (Skip to content)
Mục lục bài viết
Linux Essentials

Linux Essentials 1.1: Sự phát triển của Linux và các hệ điều hành phổ biến

Linux Essentials 1.1: Sự phát triển của Linux và các hệ điều hành phổ biến

Phân biệt kernel, userspace và bản phân phối Linux; đọc phiên bản, kiến trúc, công cụ quản lý gói và vòng đời hỗ trợ trước khi làm theo hướng dẫn.

Linux trên hai máy có thể là hai môi trường khác nhau

Một đồng nghiệp gửi cho bạn hướng dẫn cài gói bằng apt. Bạn mở máy Linux khác và nhận thông báo không tìm thấy lệnh. Điều đó chưa chứng minh máy bị hỏng. Có thể máy dùng họ phân phối khác, image tối giản hoặc PATH không chứa chương trình. Bước đầu tiên của người hỗ trợ là nhận diện môi trường, rồi mới chọn tài liệu và thao tác phù hợp.

Bài này đối chiếu mục tiêu 1.1 của PDF 010-160, trang in 2–13, tương ứng trang PDF vật lý 11–22. Phần cập nhật liên hệ mục tiêu 011.1 của 010-200. Mốc biên tập là 23/10/2026. Sau bài, bạn cần giải thích được kernel, userspace, bản phân phối và chu kỳ phát hành; chưa cần cài nhiều hệ điều hành để chứng minh đã học xong.

Thực hành dùng Bash và các lệnh chỉ đọc trên Linux. Các giá trị phiên bản phụ thuộc máy của bạn. Bài không giả định đầu ra minh họa là kết quả đã đo trên một VM Ubuntu 26.04 cụ thể. Nếu học từ container, bạn cần lưu ý kernel thường đến từ môi trường host hoặc VM trung gian, trong khi userspace đến từ image container.

Kernel và userspace làm những việc khác nhau

Kernel là thành phần lõi quản lý tài nguyên và giao tiếp với phần cứng thông qua các cơ chế của hệ điều hành. Nó cung cấp giao diện để tiến trình yêu cầu các thao tác như đọc tệp hoặc tạo kết nối. Một ứng dụng không cần tự viết trình điều khiển ổ đĩa để mở tệp; nó làm việc qua thư viện và giao diện hệ thống phù hợp.

Userspace gồm nhiều thành phần chạy ngoài kernel: shell, tiện ích dòng lệnh, thư viện, dịch vụ và giao diện đồ họa. Bash không phải kernel. Một terminal chỉ là một cách tương tác với chương trình dòng lệnh, không phải toàn bộ Linux. Máy chủ không cài desktop vẫn có thể chạy ứng dụng và được quản lý từ xa.

Hãy hình dung một người nhập lệnh đọc tệp: terminal nhận thao tác, shell phân tích lệnh, chương trình được gọi xử lý yêu cầu, rồi kernel hỗ trợ truy cập tài nguyên theo quyền hiện có. Sơ đồ này là mô hình giải thích, không phải dấu vết đã thu từ một lần gọi hệ thống. Những bài sau sẽ giúp bạn phân biệt trách nhiệm từng lớp khi kết quả khác dự kiến.

Các lớp khái niệm từ ứng dụng đến phần cứng; sơ đồ không phải dấu vết hệ thống.
Hình 2. Các lớp khái niệm từ ứng dụng đến phần cứng; sơ đồ không phải dấu vết hệ thống. Mở hình để xem chi tiết.

Một bản phân phối cung cấp nhiều hơn kernel

Bản phân phối kết hợp kernel với phần mềm userspace, repository, công cụ cài đặt, cấu hình và cơ chế bảo trì. Người duy trì quyết định các phiên bản được tích hợp, bản vá, thời điểm phát hành và chính sách hỗ trợ. Vì vậy hai máy có cùng phiên bản kernel vẫn có thể khác thư viện, gói và hành vi công cụ.

Họ Debian thường gắn với định dạng deb và công cụ dpkg/APT. Các hệ thuộc họ Enterprise Linux thường dùng RPM và công cụ như DNF. SUSE có công cụ Zypper; Alpine dùng APK. Đây là cách nhận diện ban đầu, không phải bằng chứng rằng mọi lệnh quản trị hoặc mọi gói đều tương đương giữa các họ. Đừng đổi đuôi tệp gói rồi coi như nó đã tương thích.

Ubuntu dựa trên Debian nhưng có lịch phát hành và tổ chức bảo trì riêng. Fedora, CentOS Stream và các bản Enterprise Linux cũng có quan hệ và vai trò riêng; không xem chúng là những tên thay thế hoàn toàn cho nhau. Khi đọc bài cũ nhắc “CentOS”, cần xác định rõ dòng sản phẩm và phiên bản trước khi dùng hướng dẫn trong môi trường hiện nay.

Phần mở rộng này giúp bạn đọc tài liệu cũ có điều kiện. Mục đích không phải xếp hạng bản phân phối nào tốt nhất cho mọi người. Với công việc hỗ trợ, chọn đúng nguồn và hiểu vòng đời thường có giá trị hơn việc tranh luận giao diện desktop nào đẹp hơn.

Stable, rolling và LTS trả lời những câu hỏi nào

Một bản phát hành theo chu kỳ thường cố định tập phiên bản nền tảng trong một khoảng thời gian. Người duy trì có thể đưa bản vá bảo mật về nhánh gói cũ thay vì đổi ngay lên phiên bản upstream mới nhất. Vì vậy chỉ nhìn số phiên bản rồi kết luận gói chưa được vá có thể dẫn đến chẩn đoán sai; cần đối chiếu thông báo và trạng thái gói của nhà phân phối.

Rolling release cập nhật liên tục theo chính sách dự án, thay vì buộc mọi thay đổi vào một lần nâng phiên bản lớn của toàn hệ thống. Điều này có thể giúp tiếp cận phần mềm mới sớm hơn, đồng thời yêu cầu người dùng chú ý hơn đến cập nhật và thay đổi tương thích. Chữ stable không phải lời hứa không bao giờ có lỗi; nó thường liên quan đến cách duy trì hoặc mức thay đổi của một nhánh.

LTS là nhãn hỗ trợ dài hạn theo chính sách cụ thể của nhà phát hành. Tại mốc biên tập, Canonical công bố Ubuntu 26.04 LTS và 24.04 LTS trong bảng vòng đời. Phạm vi hỗ trợ khác nhau giữa thành phần và loại dịch vụ. Đừng mặc định một phần mềm tự tải bên ngoài được bảo trì cùng thời hạn với toàn bộ hệ điều hành.

Với lab này, Ubuntu 26.04 LTS là nền chính dự kiến; 24.04 LTS là môi trường đối chiếu khi cần. Việc chọn một LTS cho cả nhóm giúp giảm số biến khác nhau khi trao đổi kết quả. Nó không yêu cầu người học nâng cấp máy công việc hoặc thay bản đang được IT hỗ trợ.

Nhận diện môi trường bằng các câu hỏi chỉ đọc

Trước hết, đọc thông tin bản phân phối và kiến trúc. Chạy trong terminal của môi trường bạn thực sự muốn kiểm tra, không chạy trên host rồi gán kết quả cho guest.

cat /etc/os-release
uname -r
uname -m

Trong /etc/os-release, chú ý các trường như NAME, ID và VERSION_ID nếu có. Chúng mô tả userspace của bản phân phối. uname -r trả phiên bản kernel; uname -m trả kiến trúc mà kernel báo. Không dùng một dòng uname để thay thế toàn bộ thông tin môi trường trong ticket hỗ trợ.

Tiếp theo, kiểm tra một vài công cụ quản lý gói có nằm trong PATH hay không. Khối dưới chỉ dò chương trình, không cài gói và không cập nhật repository. Có nhiều hơn một công cụ được tìm thấy cũng không chứng minh tất cả đều là công cụ chính của hệ thống.

for tool in apt dnf zypper apk; do
  if command -v "$tool" >/dev/null 2>&1; then
    printf '%s\n' "$tool"
  fi
done

Nếu không có kết quả, kiểm tra image và PATH trước khi kết luận. Một container tối giản có thể bỏ trình quản lý gói hoặc chỉ chứa runtime ứng dụng. Không cần thêm sudo vào phép dò này; quyền cao hơn không phải đáp án mặc định cho thiếu lệnh.

Nhận diện bản phân phối, kernel và môi trường trước khi chọn hướng dẫn.
Hình 1. Nhận diện bản phân phối, kernel và môi trường trước khi chọn hướng dẫn. Mở hình để xem chi tiết.

VM, container, cloud và thiết bị nhúng

Máy ảo thường chạy kernel guest riêng trên phần cứng ảo. Container thường cô lập tiến trình và tài nguyên trong khi dùng kernel của môi trường Linux nền. Trên macOS hoặc Windows, nền Linux đó có thể là một VM do công cụ container quản lý. Vì vậy câu nói “container dùng kernel host” cần hiểu đúng host Linux trực tiếp của container, không nhất thiết kernel của hệ điều hành desktop bạn nhìn thấy.

Cloud mô tả cách cung cấp tài nguyên và dịch vụ, không phải tên một bản phân phối. Một máy Linux trên cloud vẫn cần quản lý danh tính, cập nhật và dữ liệu theo trách nhiệm của người sử dụng. VM cloud, container và dịch vụ được quản lý có ranh giới kiểm soát khác nhau; bạn không thể dùng cùng một quy trình thao tác phần cứng cho cả ba.

Thiết bị nhúng và Android cho thấy kernel Linux có thể xuất hiện trong sản phẩm không giống desktop GNU/Linux thông thường. Có kernel Linux không bảo đảm có Bash, APT hoặc cùng bộ công cụ dòng lệnh. Đó là lý do cần xác định thành phần và môi trường, thay vì chỉ hỏi “máy có chạy Linux không”.

Viết một ghi nhận môi trường có ích

Sau bài thực hành, ghi bốn thông tin: bản phân phối/phiên bản từ os-release, kernel từ uname, kiến trúc và loại môi trường. Thêm mục đích máy và công cụ quản lý gói tìm thấy nếu có. Không đưa IP riêng, tên khách hàng hoặc danh sách phần mềm nhạy cảm vào ghi chú công khai.

Tự kiểm tra 1: Hai container có cùng uname -r nhưng os-release khác nhau có bất thường không? Không nhất thiết; kernel có thể dùng chung trong khi image userspace khác nhau. Tự kiểm tra 2: Gói có số phiên bản upstream cũ chắc chắn chưa vá? Không thể kết luận như vậy nếu nhà phân phối backport bản vá.

Tự kiểm tra 3: Tìm thấy apt có đủ để xác nhận Ubuntu không? Không. Cần đọc thông tin bản phân phối và bối cảnh image. Bạn đạt bài khi có thể giải thích các câu trả lời này bằng ranh giới kernel/userspace và chính sách bảo trì. Bước tiếp theo là nhận biết nhóm ứng dụng và repository, rồi luyện cách shell phân tích một dòng lệnh.

Bài liên quan trong bộ LPI

Tìm hiểu thêm