Giáo trình Hệ điều hành – PGS. Từ Minh Phương (Học viện Công nghệ Bưu chính Viễn thông)
Tổng quan về giáo trình
Giáo trình Hệ điều hành do PGS. Từ Minh Phương biên soạn, được Nhà xuất bản Thông tin và Truyền thông phát hành năm 2016, phục vụ công tác đào tạo tại Học viện Công nghệ Bưu chính Viễn thông. Trong chương trình đào tạo đại học và cao đẳng ngành Công nghệ thông tin cùng các ngành kỹ thuật liên quan, môn học Hệ điều hành giữ vị trí môn cơ sở ngành bắt buộc.
+-------------------------------------------------------------+
| Người dùng (Users) |
+-------------------------------------------------------------+
| Chương trình ứng dụng / Tiện ích (Applications / Utilities) |
+-------------------------------------------------------------+
| Hệ điều hành (Operating System) |
| - Quản lý tiến trình (Process Management) |
| - Quản lý bộ nhớ (Memory Management) |
| - Quản lý vào/ra & File (I/O & File System) |
+-------------------------------------------------------------+
| Phần cứng máy tính (Hardware: CPU, RAM, Disk, Devices) |
+-------------------------------------------------------------+
Về mục tiêu học tập (learning outcomes), giáo trình hướng đến việc trang bị cho người học hệ thống khái niệm và nguyên lý hoạt động tổng quát của hệ điều hành như một thành phần trung gian quản lý tài nguyên và điều khiển chương trình. Người học sau khi hoàn thành chương trình có khả năng:
- Hiểu rõ bản chất tổ chức kiến trúc phần cứng và cơ chế trừu tượng hóa tài nguyên phần cứng thành tài nguyên ảo.
- Nắm vững cơ chế vận hành, điều phối tiến trình và đồng bộ hóa tiến trình đồng thời trong hệ thống đa nhiệm.
- Phân tích được các kỹ thuật quản lý bộ nhớ thực, cơ chế bộ nhớ ảo và kỹ thuật phân trang/phân đoạn.
- Giải thích được cấu trúc tổ chức không gian lưu trữ vật lý và logic của hệ thống tập tin (file system).
Về cách tiếp cận, kiến thức hệ điều hành được phân loại thành ba dạng chính:
- Kiến thức cài đặt, sử dụng và khai thác hệ điều hành.
- Kiến thức thiết kế và xây dựng hệ điều hành.
- Khái niệm và nguyên lý hoạt động chung của hệ điều hành trong hệ thống máy tính.
Giáo trình tập trung vào dạng kiến thức thứ ba: cung cấp nền tảng nguyên lý tổng quát, không phụ thuộc vào một phần mềm thương mại đơn lẻ. Để liên kết lý thuyết với thực tế, các giải pháp kỹ thuật được minh họa thông qua các hệ điều hành tiêu biểu như UNIX, MINIX, Linux, MS-DOS và họ hệ điều hành Windows (từ Windows NT đến Windows 8).
Cấu trúc giáo trình gồm 4 chương chính:
- Chương 1: Giới thiệu chung (lịch sử phát triển, kiến trúc phần cứng, dịch vụ, giao diện lập trình, các mô hình cấu trúc hệ điều hành và các xu hướng tính toán mới).
- Chương 2: Quản lý tiến trình.
- Chương 3: Quản lý bộ nhớ.
- Chương 4: Hệ thống file.
Nội dung kiến thức cốt lõi
+-------------------------------------------------------------------------+
| CẤU TRÚC 4 CHƯƠNG CỦA GIÁO TRÌNH |
+-------------------------------------------------------------------------+
| Chương 1: Giới thiệu chung |
+-------------------------------------------------------------------------+
| Chương 2: Quản lý tiến trình |
+-------------------------------------------------------------------------+
| Chương 3: Quản lý bộ nhớ |
+-------------------------------------------------------------------------+
| Chương 4: Hệ thống file |
+-------------------------------------------------------------------------+
Các chương và chủ đề chính
Nội dung giáo trình được triển khai theo quy trình logic từ phần cứng nền tảng, cơ chế trừu tượng hóa tài nguyên đến các phân hệ quản lý chức năng cụ thể:
Chương 1: Giới thiệu chung
- Tổ chức phần cứng máy tính: Trình bày kiến trúc kết nối CPU, bộ nhớ chính (RAM), thiết bị ngoại vi qua bus hệ thống; chu trình thực hiện lệnh của CPU; cơ chế ngắt (interrupt) và mảng véc-tơ ngắt (interrupt vector bắt đầu từ địa chỉ 0); bộ định thời (timer) để thu hồi quyền điều khiển CPU; phân cấp hệ thống bộ nhớ dạng hình tháp (từ thanh ghi, cache, DRAM đến SSD, đĩa từ, đĩa quang, băng từ); cơ chế vào/ra dữ liệu thông qua ngắt và truy cập trực tiếp bộ nhớ (DMA - Direct Memory Access).
- Khái niệm và dịch vụ hệ điều hành: Hai chức năng cốt lõi gồm quản lý tài nguyên (CPU, bộ nhớ, thiết bị vào/ra) và quản lý thực hiện chương trình (tạo máy ảo/tài nguyên ảo). Các dịch vụ cung cấp gồm nạp/chạy chương trình, giao diện người dùng (CLI và GUI), thao tác file, phát hiện/xử lý lỗi, truyền thông điệp (message passing) hoặc bộ nhớ dùng chung (shared memory), bảo mật và cơ chế khởi động (bootstrapping qua BIOS và OS loader).
- Chế độ thực thi: Phân định chế độ nhân (kernel/privilege mode, bit thanh ghi = 0) có toàn quyền truy cập phần cứng và chế độ người dùng (user mode, bit thanh ghi = 1) bị giới hạn quyền.
- Giao diện lập trình: Phân tích mối quan hệ giữa lời gọi hệ thống (system call) và giao diện lập trình ứng dụng (API). Giáo trình đối chiếu các hàm API Win32 và POSIX:
- Tạo/kết thúc tiến trình:
fork, execve, exit (POSIX) tương ứng CreateProcess, ExitProcess (Win32).
- Thao tác file/thư mục:
open, close, read, write, lseek, stat, mkdir, rmdir, unlink, chdir (POSIX) tương ứng CreateFile, CloseHandle, ReadFile, WriteFile, SetFilePointer, GetFileAttributeExt, CreateDirectory, RemoveDirectory, DeleteFile, SetCurrentDirectory (Win32).
- Cú pháp mã nguồn minh họa: Lời gọi hệ thống mức nhân
ZwWriteFile và hàm API WriteFile trong thư viện Win32.
- Lịch sử phát triển và xu hướng: Phân tích 4 giai đoạn tiến hóa:
- Hệ thống đơn giản (thập niên 1940-1950, lập trình bằng bảng cắm/bìa đục lỗ, chưa có HĐH).
- Xử lý theo lô (batch processing, máy IBM 701 của General Motors, chương trình giám sát monitor thường trực).
- Đa chương trình (multiprogramming, nạp nhiều chương trình vào RAM để tận dụng thời gian CPU chờ I/O).
- Chia sẻ thời gian và đa nhiệm (time-sharing/multitasking, phân chia lượng tử thời gian cho terminal).
- Tính toán di động (Android, iOS, Windows Phone; tối ưu pin, GPS, cảm ứng), Ảo hóa (Virtualization với Hypervisor/VMM dạng 1 và dạng 2), và Điện toán đám mây (Cloud Computing: SaaS, PaaS, IaaS; Amazon EC2, Microsoft Azure, Office 365).
- Kiến trúc hệ điều hành: Phân tích ưu/nhược điểm của 4 kiểu cấu trúc: Cấu trúc nguyên khối (Monolithic - ví dụ Linux nạp mô-đun qua
insmod/rmmod), Cấu trúc phân lớp (Layered - ví dụ OS/2), Cấu trúc vi nhân (Microkernel - ví dụ Mach, MINIX), và Cấu trúc lai (Hybrid - ví dụ Windows, iOS).
- Các hệ điều hành tiêu biểu: Phân tích bối cảnh ra đời và đặc tính kỹ thuật của UNIX (Ken Thompson, Dennis Ritchie tại Bell Labs, phát triển phiên bản BSD), MINIX (Andrew Tanenbaum viết cho mục đích giảng dạy), Linux (Linus Torvalds phát triển năm 1991 theo chuẩn POSIX 1003.1 và giấy phép GNU GPL), MS-DOS và các phiên bản Windows.
Chương 2: Quản lý tiến trình
- Khái niệm tiến trình (thực thể động, có không gian nhớ và tài nguyên) phân biệt với chương trình (thực thể tĩnh trên đĩa).
- Trạng thái tiến trình, cấu trúc khối quản lý tiến trình (Process Control Block - PCB).
- Luồng thực hiện (thread/dòng thực hiện).
- Thuật toán điều phối CPU (CPU scheduling).
- Đồng bộ hóa tiến trình, giải quyết xung đột tài nguyên, vùng tranh chấp (race condition) và xử lý bế tắc (deadlock).
Chương 3: Quản lý bộ nhớ
- Không gian địa chỉ vật lý và không gian địa chỉ logic.
- Kỹ thuật tổ chức chương trình trong bộ nhớ: phân chương cố định và biến đổi.
- Kỹ thuật phân trang (paging), phân đoạn (segmentation) và bảng trang.
- Khái niệm, kiến trúc và cơ chế ánh xạ quản lý bộ nhớ ảo (virtual memory).
Chương 4: Hệ thống file
- Khái niệm file và thư mục như sự trừu tượng hóa logic của bộ nhớ ngoài.
- Các thao tác đọc, ghi, tạo, xóa và quản lý thuộc tính file/thư mục.
- Cấu trúc tổ chức bên trong của file và cấu trúc cây thư mục.
- Phương pháp cấp phát không gian lưu trữ khối trên đĩa.
- Các vấn đề về độ tin cậy, sao lưu dự phòng và an toàn bảo mật, phân quyền truy cập hệ thống file.
+--------------------------------------------------------------------+
| TIẾN HÓA CÁC THẾ HỆ HỆ ĐIỀU HÀNH |
+--------------------------------------------------------------------+
| 1. Hệ thống đơn giản (1940-1950) |
| - Không có hệ điều hành; lập trình trực tiếp bằng mã máy |
+--------------------------------------------------------------------+
|
v
| 2. Xử lý theo lô (Batch Processing - Giữa 1950s) |
| - Trình giám sát (Monitor) thường trực; gom nhóm tác vụ |
+--------------------------------------------------------------------+
|
v
| 3. Đa chương trình (Multiprogramming) |
| - Nhiều tiến trình trong RAM; hoán chuyển CPU khi chờ I/O |
+--------------------------------------------------------------------+
|
v
| 4. Đa nhiệm / Chia sẻ thời gian (Time-sharing / Multitasking) |
| - Lượng tử thời gian (Time quantum); tương tác qua Terminal |
+--------------------------------------------------------------------+
|
v
| 5. Tính toán hiện đại (Modern Computing) |
| - Mobile (Android/iOS) | Virtualization (VMM) | Cloud (SaaS/IaaS)|
+--------------------------------------------------------------------+
Kiến thức nền tảng được xây dựng
Giáo trình thiết lập hệ thống nguyên lý máy tính dựa trên các lý thuyết và mô hình chuẩn:
- Lý thuyết trừu tượng hóa tài nguyên (Resource Abstraction): Chuyển đổi phần cứng vật lý phức tạp thành các giao diện logic dễ lập trình: CPU thực thành các CPU ảo thông qua chia sẻ thời gian; bộ nhớ RAM và đĩa cứng thành bộ nhớ ảo; đĩa từ/SSD thành các cấu trúc file và thư mục.
- Cơ chế bảo vệ hệ thống (System Protection Principles): Phân chia không gian hoạt động thông qua cơ chế phần cứng (bit chế độ trong thanh ghi CPU). Chương trình ứng dụng ở User Mode muốn truy xuất phần cứng bắt buộc phải gửi yêu cầu qua lời gọi hệ thống (System Call), kích hoạt chuyển đổi sang Kernel Mode để hệ điều hành kiểm tra tính hợp lệ.
- Cơ chế xử lý bất đồng bộ và điều khiển vào/ra: Nguyên lý hoạt động của véc-tơ ngắt và cơ chế DMA, cho phép truyền dữ liệu khối lượng lớn giữa bộ nhớ và thiết bị ngoại vi mà không tiêu tốn chu kỳ xử lý của CPU.
Kỹ năng phát triển
Thông qua nội dung học thuật, người học phát triển các nhóm kỹ năng:
- Kỹ năng kỹ thuật (Technical skills): Nhận diện cú pháp và cơ chế thực thi của các lời gọi hệ thống trong môi trường Windows (Win32 API) và UNIX/Linux (POSIX API); phân biệt các tập lệnh quản lý tiến trình (
fork, execve, CreateProcess) và quản lý file (read, write, ReadFile, WriteFile).
- Kỹ năng phân tích (Analytical skills): Đánh giá hiệu suất sử dụng CPU giữa mô hình đơn chương trình và đa chương trình; so sánh ưu nhược điểm kiến trúc giữa cấu trúc nguyên khối (Monolithic) và cấu trúc vi nhân (Microkernel) về mặt tốc độ thực thi, độ phức tạp mã nguồn và độ ổn định hệ thống.
- Năng lực thực tiễn (Practical competencies): Vận dụng hiểu biết về phân cấp bộ nhớ, cơ chế nạp mô-đun nhân (
insmod, rmmod) và thao tác dòng lệnh (CLI qua cmd.exe hoặc bash) để phục vụ công việc quản trị hệ thống và lập trình ứng dụng tương tác ở mức hệ thống.
Phương pháp giảng dạy và học tập
Giáo trình được thiết kế theo phương pháp sư phạm diễn dịch kết hợp thực chứng: đi từ nguyên lý hoạt động của phần cứng và bài toán tối ưu tài nguyên, sau đó phân tích các giải pháp thuật toán và kiến trúc phần mềm tương ứng.
+-------------------------------------------------------------------------+
| MÔ HÌNH PHƯƠNG PHÁP SƯ PHẠM CỦA GIÁO TRÌNH |
+-------------------------------------------------------------------------+
| [Bài toán phần cứng / Nhu cầu tối ưu] |
| - Tốc độ CPU >> Tốc độ I/O |
| - Bộ nhớ RAM giới hạn, đắt đỏ |
| | |
| v |
| [Nguyên lý / Mô hình lý thuyết] |
| - Đa chương trình, Chia sẻ thời gian |
| - Bộ nhớ ảo, Phân trang / Phân đoạn |
| | |
| v |
| [Minh họa thực chứng qua Case Studies / Hệ điều hành thực tế] |
| - Lời gọi hệ thống: Win32 API vs POSIX API |
| - Hệ thống mẫu: UNIX, MINIX (Andrew Tanenbaum), Linux, Windows |
| | |
| v |
| [Kiểm tra & Đánh giá năng lực] |
| - Phân tích cơ chế ngắt, điều phối CPU, ánh xạ bảng trang |
+-------------------------------------------------------------------------+
- Bài tập và tình huống nghiên cứu (Case Studies): Giáo trình sử dụng các case study thực tế gắn liền với lịch sử máy tính:
- Tình huống xử lý theo lô đầu tiên của General Motors trên máy IBM 701.
- Quá trình phát triển hệ điều hành UNIX tại Bell Labs của Ken Thompson và Dennis Ritchie, dẫn đến việc phân nhánh phiên bản BSD tại Đại học California ở Berkeley.
- Dự án hệ điều hành giáo dục MINIX của Andrew Tanenbaum nhằm phục vụ nghiên cứu mã nguồn mở trong trường đại học khi UNIX bị thương mại hóa bản quyền từ Phiên bản 7.
- Dự án Linux của Linus Torvalds năm 1991 xây dựng hệ điều hành mã nguồn mở tuân thủ chuẩn POSIX.
- Thực hành và bài tập kỹ thuật:
- So sánh trực quan mã nguồn lời gọi hệ thống mức thấp (
ZwWriteFile) và hàm giao diện mức ứng dụng (WriteFile).
- Đối chiếu bảng ánh xạ tương đương giữa các hàm API của Windows và POSIX.
- Thực hành phân tích biểu đồ thời gian chuyển đổi tiến trình trong chế độ đơn chương trình và đa chương trình.
- Phương pháp đánh giá (Assessment methods): Kiểm tra khả năng hiểu bản chất cơ chế hoạt động của hệ thống máy tính qua các câu hỏi định lượng và định tính: cơ chế xử lý ngắt bằng véc-tơ ngắt, quy trình chuyển đổi từ chế độ người dùng sang chế độ đặc quyền, thuật toán điều phối tiến trình, giải thuật thay thế trang và phương pháp cấp phát khối file.
- Hướng dẫn tự học: Người học cần kết hợp đọc nội dung lý thuyết với việc quan sát trực tiếp trên hệ điều hành đang sử dụng; tra cứu tài liệu đặc tả chuẩn POSIX 1003.1 hoặc thư viện Win32 API; đọc mã nguồn của các hệ thống nhỏ như MINIX để hiểu rõ cách tổ chức mã nguồn của một hệ điều hành hoàn chỉnh.
Điểm nổi bật và cập nhật
Giáo trình tích hợp các nội dung công nghệ tính toán hiện đại bên cạnh các nguyên lý kinh điển:
+--------------------------------------------------------------------------+
| CÁC XU HƯỚNG TÍNH TOÁN HIỆN ĐẠI ĐƯỢC TÍCH HỢP |
+--------------------------------------------------------------------------+
| 1. Tính toán di động (Mobile Computing) |
| - Hệ điều hành: Android (Google), iOS (Apple), Windows Phone |
| - Đặc thù: Tối ưu năng lượng pin, hỗ trợ GPS, cảm ứng đa điểm |
+--------------------------------------------------------------------------+
| 2. Công nghệ ảo hóa (Virtualization) |
| - Hypervisor / VMM Dạng 1: Chạy trực tiếp trên phần cứng (Bare-metal) |
| - Hypervisor / VMM Dạng 2: Chạy trên nền hệ điều hành chủ (Hosted) |
| - Sản phẩm tiêu biểu: VMware, Microsoft Hyper-V |
+--------------------------------------------------------------------------+
| 3. Điện toán đám mây (Cloud Computing) |
| - Mô hình IaaS: Hạ tầng như một dịch vụ (Amazon EC2) |
| - Mô hình PaaS: Nền tảng như một dịch vụ |
| - Mô hình SaaS: Phần mềm như một dịch vụ (Microsoft Office 365) |
+--------------------------------------------------------------------------+
- Tính toán di động (Mobile Computing): Phân tích sự chuyển dịch sang các thiết bị cầm tay (smartphone, tablet). Hệ điều hành cho thiết bị di động (Android của Google, iOS của Apple, Windows Phone của Microsoft) được thiết kế với các đặc tính riêng biệt: tối ưu hóa năng lượng để tăng thời gian sử dụng pin, hỗ trợ phần cứng màn hình cảm ứng đa điểm, bàn phím ảo, định vị toàn cầu (GPS) và tích hợp các giao thức mạng không dây (Wi-Fi, mạng tế bào 2G, 3G, 4G).
- Công nghệ ảo hóa (Virtualization): Trình bày chi tiết kiến trúc của hệ quản lý máy ảo VMM (Virtual Machine Manager/Hypervisor) theo hai mô hình:
- Dạng 1 (Bare-metal): VMM chạy trực tiếp trên phần cứng máy tính và tạo ra các máy ảo chạy các hệ điều hành khách (guest OS).
- Dạng 2 (Hosted): VMM chạy như một ứng dụng trên nền hệ điều hành chủ (host OS).
- Giáo trình đề cập đến các giải pháp công nghệ ảo hóa thương mại của VMware và Microsoft.
- Điện toán đám mây (Cloud Computing): Cung cấp cấu trúc phân loại 3 tầng dịch vụ:
- IaaS (Infrastructure as a Service): Dịch vụ hạ tầng phần cứng ảo hóa qua mạng, dẫn chứng dịch vụ Amazon Elastic Compute Cloud (EC2).
- PaaS (Platform as a Service): Nền tảng hệ điều hành và hệ quản trị cơ sở dữ liệu cài sẵn qua mạng.
- SaaS (Software as a Service): Dịch vụ phần mềm ứng dụng qua mạng, dẫn chứng ứng dụng Microsoft Office 365 và nền tảng đám mây Windows Azure.
- Chuẩn hóa công nghiệp và mã nguồn mở: Phân tích vai trò của chuẩn giao diện lập trình di động POSIX 1003.1, quy chuẩn cấp phép GNU General Public License (GPL) trong việc định hình hệ sinh thái Linux (bao gồm các bản phân phối như RedHat, Ubuntu).
Đối tượng sử dụng giáo trình
Giáo trình được biên soạn phục vụ các nhóm đối tượng cụ thể trong hệ thống giáo dục đại học và nghiên cứu kỹ thuật:
+-------------------------------------------------------------------------+
| ĐỐI TƯỢNG SỬ DỤNG |
+-------------------------------------------------------------------------+
| Sinh viên CNTT / Điện tử (Năm 2 - Năm 3) |
+-------------------------------------------------------------------------+
| Giảng viên đại học / cao đẳng |
+-------------------------------------------------------------------------+
| Lập trình viên hệ thống / Kỹ sư hạ tầng |
+-------------------------------------------------------------------------+
- Sinh viên đại học và cao đẳng: Dành cho sinh viên năm thứ hai hoặc năm thứ ba thuộc các ngành Công nghệ thông tin, Kỹ thuật phần mềm, Khoa học máy tính, Hệ thống thông tin, Mạng máy tính và Truyền thông.
- Yêu cầu kiến thức tiên quyết (Prerequisites):
- Đã hoàn thành học phần Kiến trúc máy tính hoặc Cấu trúc máy tính (hiểu cấu trúc CPU, ALU, thanh ghi, bộ nhớ RAM, bus hệ thống và chu trình thực hiện lệnh).
- Có kiến thức nền tảng về ngôn ngữ lập trình C/C++ hoặc Hợp ngữ (Assembly) để hiểu cách thức gọi hàm hệ thống và cấu trúc con trỏ, dữ liệu.
- Giảng viên chuyên ngành: Sử dụng làm tài liệu giảng dạy chính khóa, làm khung chuẩn để xây dựng đề cương bài giảng, bài tập đánh giá và hướng dẫn đồ án môn học.
- Đối tượng tự học và nghiên cứu: Kỹ sư công nghệ thông tin, kỹ thuật viên vận hành hạ tầng máy chủ, lập trình viên muốn nghiên cứu nguyên lý hoạt động của nhân hệ điều hành để tối ưu hóa hiệu năng phần mềm.
Câu hỏi thường gặp
+-------------------------------------------------------------------------+
| TÓM TẮT CÂU HỎI THƯỜNG GẶP (FAQ) |
+-------------------------------------------------------------------------+
| Q1: Phù hợp đối tượng nào? |
| -> Sinh viên CNTT, kỹ sư hệ thống, lập trình viên nghiên cứu nền tảng. |
| |
| Q2: Yêu cầu kiến thức nền tảng gì? |
| -> Kiến trúc máy tính (CPU/RAM/Bus) và lập trình C/C++/Assembly. |
| |
| Q3: Điểm khác biệt so với sách hướng dẫn Windows/Linux thông thường? |
| -> Tập trung vào nguyên lý tổng quát; lấy Linux/Windows làm ví dụ minh |
| họa thay vì chỉ dạy cách cài đặt/sử dụng một HĐH cụ thể. |
| |
| Q4: Phương pháp tự học hiệu quả nhất? |
| -> Học theo tiến trình 4 chương; đối chiếu API POSIX/Win32 với thực tế.|
| |
| Q5: Tài liệu và hệ thống mẫu đi kèm? |
| -> Mã nguồn MINIX (Tanenbaum), Linux kernel (GPL), Win32 API, POSIX. |
+-------------------------------------------------------------------------+
1. Giáo trình này phù hợp với ai?
Tài liệu được biên soạn phục vụ sinh viên đại học, cao đẳng ngành Công nghệ thông tin và các ngành kỹ thuật liên quan làm tài liệu học tập chính khóa. Ngoài ra, giáo trình phù hợp cho kỹ sư phần mềm, quản trị viên hệ thống cần tài liệu tham khảo để hiểu sâu nguyên lý vận hành của hệ thống máy tính.
2. Cần kiến thức nền nào để học?
Người học cần có kiến thức cơ sở về Kiến trúc máy tính (tổ chức CPU, chu trình lệnh, bộ nhớ chính, thanh ghi, cơ chế vào/ra) và kỹ năng lập trình cơ bản với ngôn ngữ C/C++ hoặc hợp ngữ để tiếp cận các nội dung về lời gọi hệ thống và cấu trúc dữ liệu của nhân.
3. Điểm khác biệt với giáo trình khác?
Giáo trình không hướng dẫn sử dụng hay quản trị một hệ điều hành cụ thể (như sách hướng dẫn quản trị Windows Server hay Linux thông thường). Nội dung tập trung vào các khái niệm và nguyên lý hoạt động tổng quát của hệ thống (quản lý tài nguyên, tạo máy ảo, điều độ tiến trình, quản lý bộ nhớ ảo), đồng thời sử dụng các hệ điều hành phổ biến (UNIX, Linux, Windows, MINIX, MS-DOS) làm ví dụ minh họa đối chiếu.
4. Làm sao để tự học hiệu quả?
Người học nên tuân thủ lộ trình: nắm vững kiến trúc phần cứng và phân loại dịch vụ ở Chương 1 trước khi đi sâu vào các cơ chế chuyên biệt ở Chương 2 (Tiến trình), Chương 3 (Bộ nhớ) và Chương 4 (Hệ thống file). Khi học các lời gọi hệ thống, cần thực hành đối chiếu giữa chuẩn POSIX và Win32 API để thấy rõ sự tương đồng về mặt nguyên lý.
5. Có tài liệu bổ trợ nào kèm theo?
Giáo trình phân tích và tham chiếu trực tiếp đến các hệ thống mã nguồn mở như MINIX của Andrew Tanenbaum, mã nguồn Linux theo chuẩn GNU GPL, chuẩn giao tiếp POSIX 1003.1 và tài liệu giao diện lập trình Win32 API của Microsoft.
Kết luận
Giáo trình Hệ điều hành của PGS. Từ Minh Phương cung cấp hệ thống tri thức chuẩn xác về mặt nguyên lý, phản ánh đầy đủ cấu trúc của một hệ điều hành hiện đại từ mức phần cứng đến mức giao diện ứng dụng.
+-------------------------------------------------------------------------+
| LỘ TRÌNH TIẾP CẬN HỌC TẬP CHUẨN |
+-------------------------------------------------------------------------+
| [BƯỚC 1] Khảo sát phần cứng, Chế độ nhân & Lịch sử tiến hóa (Chương 1) |
| | |
| v |
| [BƯỚC 2] Nắm vững Tiến trình, Điều phối CPU & Đồng bộ hóa (Chương 2) |
| | |
| v |
| [BƯỚC 3] Phân tích Quản lý bộ nhớ thực & Bộ nhớ ảo (Chương 3) |
| | |
| v |
| [BƯỚC 4] Nghiên cứu Cấu trúc lưu trữ & Hệ thống file (Chương 4) |
| | |
| v |
| [BƯỚC 5] Đọc mã nguồn thực chứng: MINIX, Linux Kernel & API Win32/POSIX |
+-------------------------------------------------------------------------+
Lộ trình học tập đề xuất:
- Nghiên cứu Chương 1 để hiểu rõ mối quan hệ giữa phần cứng, chế độ nhân/người dùng, cơ chế ngắt và cấu trúc hệ điều hành.
- Học tuần tự các phân hệ chức năng: Quản lý tiến trình (Chương 2) $\rightarrow$ Quản lý bộ nhớ (Chương 3) $\rightarrow$ Quản lý hệ thống file (Chương 4).
- Kết hợp nghiên cứu tài liệu mở rộng: tham khảo mã nguồn hệ điều hành MINIX phục vụ đào tạo, mã nguồn nhân Linux và tài liệu đặc tả API chuẩn công nghiệp (Win32 API và POSIX).