Hệ điều hành
từ kernel đến memory
Lộ trình 10 chương học sâu OS cho lập trình viên Việt Nam chuẩn bị phỏng vấn. Mỗi chương: lý thuyết chi tiết, ví dụ Linux/Node.js chạy được, sơ đồ ASCII, bài tập, và quiz cuối bài. Học xong, bạn trả lời được mọi câu hỏi OS trong vòng phỏng vấn backend / DevOps.
Tại sao học OS?
OS là nền tảng vô hình dưới mọi đoạn code. Không hiểu OS, bạn vẫn code được — nhưng:
- Phỏng vấn: backend/DevOps/SRE đều hỏi: process vs thread, deadlock, virtual memory, file descriptor.
- Debug production: hiểu OS giúp đọc
strace,top,vmstat; tìm ra bug "vô lý" như memory leak, thread starvation. - Tối ưu hiệu năng: biết khi nào tạo thread, khi nào tạo process, khi nào cần shared memory thay vì pipe.
- Hiểu công cụ: Docker, Node.js event loop, Kubernetes pod — tất cả xây trên OS primitives.
strace ls xem syscall thực, ps -eLf xem thread,
htop xem process state. OS không thể học bằng cách "chỉ đọc" — nó là hệ thống đang chạy ngay dưới ngón tay bạn.
Lộ trình 10 chương
Học theo thứ tự — chương sau xây trên kiến thức chương trước. Click vào card để vào học.
OS là gì? Kernel & System Calls
User space vs kernel space, syscall, mode bit, monolithic vs microkernel.
CHƯƠNG 02 · PROCESSProcess & PCB
Memory layout, PCB, process state diagram, fork/exec, zombie/orphan.
CHƯƠNG 03 · PROCESSThread & Concurrency Models
Process vs Thread, M:N model, thread pool, Node.js event loop.
CHƯƠNG 04 · PROCESSCPU Scheduling
FCFS, SJF, Priority, Round Robin, MLFQ, Linux CFS.
CHƯƠNG 05 · IPCInter-Process Communication
Pipe, FIFO, shared memory, message queue, signal, socket.
CHƯƠNG 06 · CONCURRENCYSynchronization
Race condition, Mutex, Semaphore, Monitor, Producer-Consumer, Reader-Writer.
CHƯƠNG 07 · CONCURRENCYDeadlock
4 điều kiện Coffman, prevention/avoidance, Banker's, lock ordering.
CHƯƠNG 08 · MEMORYMemory Management
Stack vs Heap, virtual memory, MMU, paging, segmentation, GC.
CHƯƠNG 09 · MEMORYPaging & Page Replacement
Page fault, TLB, FIFO/LRU/Clock, working set, thrashing.
CHƯƠNG 10 · I/OFile System & I/O
Inode, file descriptor, blocking/non-blocking, epoll, page cache.
Xem trước — Process State Diagram
Đây là sơ đồ trạng thái process bạn sẽ học chi tiết ở Chương 02:
5 trạng thái: NEW (mới sinh), READY (sẵn sàng chạy), RUNNING (đang chạy trên CPU), BLOCKED (đợi I/O), TERMINATED (đã xong).
Cách dùng tài liệu này
- Đọc giáo trình tổng quan trước (10-15 phút).
- Học tuần tự từ Chương 01 → 10. Tránh nhảy cóc — kiến thức xếp tầng (process → thread → sync → deadlock...).
- Mỗi chương: đọc lý thuyết → xem sơ đồ ASCII → thử lệnh trong terminal thật → làm quiz.
- Cài Linux VM hoặc dùng macOS để có shell Unix-like. Windows dùng WSL2.
- Sau 10 chương, đọc thêm sách Operating Systems: Three Easy Pieces (free) để củng cố.