Linux Fundamentals - Nền tảng Linux cho DevOps
Linux là hệ điều hành quan trọng nhất trong thế giới DevOps. Hầu hết các server, container, và cloud instance đều chạy Linux. Đây là kiến thức nền tảng bắt buộc với mọi kỹ sư vận hành hệ thống.
Linux là gì?
Linux là một hệ điều hành mã nguồn mở (open-source OS) dựa trên nhân Kernel Linux, được tạo ra bởi Linus Torvalds vào năm 1991. Điểm mấu chốt: Linux không phải một hệ điều hành hoàn chỉnh mà là Kernel. Hệ điều hành hoàn chỉnh mà chúng ta dùng hàng ngày là GNU/Linux — kết hợp Kernel Linux với các công cụ từ dự án GNU.
Tại sao Linux quan trọng với DevOps?
| Lý do | Giải thích |
|---|---|
| Miễn phí & Mã nguồn mở | Không chi phí license, có thể tùy biến sâu |
| Ổn định & Bảo mật | Uptime hàng năm, model bảo mật chặt chẽ |
| Hiệu năng cao | Overhead thấp, kiểm soát tài nguyên tốt |
| Cộng đồng lớn | Tài liệu phong phú, tooling đa dạng |
| Cloud-native | AWS, GCP, Azure đều dùng Linux làm nền |
| Container | Docker, Kubernetes hoạt động trên Linux Kernel |
Các bản phân phối (Distro) phổ biến
Khuyến nghị cho DevOps
- Ubuntu 22.04/24.04 LTS → phổ biến nhất trong cloud, tài liệu dồi dào
- Amazon Linux 2023 → tối ưu cho AWS EC2
- Rocky Linux / AlmaLinux → thay thế CentOS trong production RHEL-based
Kiến trúc hệ thống Linux
Mô hình phân lớp (Layered Architecture)
Kernel làm gì?
- Process Management: Tạo, lên lịch (schedule), huỷ tiến trình
- Memory Management: Cấp phát RAM, quản lý virtual memory, swap
- Device Drivers: Giao tiếp phần cứng (disk, NIC, GPU)
- File System: Đọc/ghi file, mount/umount
- Network Stack: TCP/IP, socket, routing
Filesystem Hierarchy Standard (FHS)
Mọi bản phân phối Linux đều tuân theo chuẩn FHS — một cây thư mục thống nhất bắt đầu từ / (root).
| Thư mục | Mục đích | Ví dụ |
|---|---|---|
/bin, /usr/bin | Lệnh binary cơ bản | ls, grep, curl |
/sbin, /usr/sbin | Lệnh admin (root) | iptables, fdisk, reboot |
/etc | File cấu hình toàn hệ thống | /etc/nginx/nginx.conf |
/home | Thư mục người dùng | /home/sontn/ |
/root | Home của root user | /root/.bashrc |
/var/log | Log hệ thống | /var/log/syslog, auth.log |
/tmp | File tạm (xoá khi reboot) | Temp build files |
/proc | Virtual FS — thông tin kernel real-time | /proc/cpuinfo, /proc/meminfo |
/dev | Device files | /dev/sda (disk), /dev/null |
/opt | Phần mềm bên thứ 3 | /opt/docker/ |
Lộ trình học Linux
| Trang | Nội dung |
|---|---|
| Terminal & Quản lý File | Điều hướng, tìm kiếm, xem và chỉnh sửa file |
| Quyền truy cập File | chmod, chown, SUID, umask |
| User & Group | useradd, sudo, /etc/passwd |
| Process & systemd | ps, kill, systemctl, journalctl |
| Package Manager | apt, dnf, rpm |
| Quản lý Mạng | ip, ss, curl, firewall |
| Disk & Storage | df, du, mount, fstab |
| Log hệ thống | /var/log, journalctl, dmesg |
| SSH & Remote Access | ssh-keygen, scp, rsync, config |
| Shell Scripting | Variables, loops, functions |
| Điều tra hệ thống | Troubleshoot CPU, memory, disk, network |