Tác giả: Mary E. Shacklett (Transworld Data), Stephen J. Bigelow (Biên tập viên công nghệ cấp cao)
Ngày xuất bản: 31/10/2024
Một hệ điều hành (OS - Operating System) là chương trình được nạp vào máy tính bởi một chương trình khởi động (boot program), sau đó quản lý tất cả các chương trình ứng dụng khác trong máy tính. Các chương trình ứng dụng sử dụng hệ điều hành bằng cách yêu cầu dịch vụ qua một giao diện lập trình ứng dụng (API) được định nghĩa rõ ràng. Ngoài ra, người dùng có thể tương tác trực tiếp với hệ điều hành thông qua giao diện người dùng (UI), như giao diện dòng lệnh (CLI) hoặc giao diện người dùng đồ họa (GUI).
Hệ điều hành mang lại lợi ích mạnh mẽ cho phần mềm máy tính và phát triển phần mềm. Nếu không có hệ điều hành — phần mềm hệ thống được thiết kế chuyên biệt để chạy máy tính — thì mọi ứng dụng đều phải tự bao gồm giao diện người dùng riêng, cũng như mã toàn diện cần thiết để xử lý tất cả chức năng cấp thấp của phần mềm hệ thống máy tính bên dưới, như lưu trữ đĩa và giao diện mạng. Cân nhắc đến hàng loạt phần cứng bên dưới có sẵn và số lượng thủ tục phần mềm phải chạy ở cấp độ phần mềm hệ thống để hỗ trợ chức năng máy tính, việc này sẽ làm phồng kích thước mọi ứng dụng và khiến phát triển phần mềm trở nên không thực tế.
Thay vào đó, hệ điều hành xử lý nhiều nhiệm vụ phần mềm cấp hệ thống, bao gồm gửi gói tin mạng hoặc hiển thị văn bản trên thiết bị đầu ra tiêu chuẩn như màn hình. Phần mềm hệ thống đóng vai trò trung gian giữa các ứng dụng và các chức năng phần cứng/máy tính bên dưới. Hệ điều hành cung cấp một cách nhất quán và lặp lại được để ứng dụng tương tác với phần cứng và các chức năng cấp hệ thống khác mà không cần ứng dụng biết bất kỳ chi tiết nào về chúng.
Nếu mỗi ứng dụng truy cập cùng tài nguyên và dịch vụ theo cùng cách, hệ điều hành — và phần mềm hệ thống bên dưới liên kết với nó — có thể phục vụ gần như bất kỳ số lượng ứng dụng nào. Điều này giảm thiệt lớn thời gian và mã hóa cần thiết để phát triển và gỡ lỗi ứng dụng, đồng thời đảm bảo người dùng có thể kiểm soát, cấu hình và quản lý phần mềm hệ thống và phần cứng qua một giao diện hệ điều hành chung và được hiểu rõ.
Hệ Điều Hành Hoạt Động Như Thế Nào?
Sau khi cài đặt, hệ điều hành dựa vào một thư viện lớn các trình điều khiển thiết bị (device drivers) để điều chỉnh dịch vụ của nó cho môi trường phần cứng cụ thể. Ví dụ, mọi ứng dụng có thể thực hiện một lệnh gọi chung đến thiết bị lưu trữ. Hệ điều hành nhận lệnh gọi đó và sử dụng trình điều khiển tương ứng để dịch lệnh gọi thành các hành động hoặc lệnh cần thiết cho phần cứng bên dưới trên máy tính cụ thể đó. Hệ điều hành cung cấp một nền tảng toàn diện xác định, cấu hình và quản lý các yếu tố sau:
- Một loạt phần cứng, bao gồm bộ vi xử lý (processors).
- Thiết bị bộ nhớ và quản lý bộ nhớ máy tính.
- Chipset (bo mạch chủ).
- Lưu trữ (Storage).
- Mạng (Networking).
- Giao diện truyền thông cổng: Video Graphics Array (VGA), High-Definition Multimedia Interface (HDMI), Universal Serial Bus (USB).
- Giao diện subsystem: Peripheral Component Interconnect Express (PCIe).
Chức Năng Của Hệ Điều Hành Là Gì?
Tất cả các nền tảng máy tính chính — cả phần cứng lẫn phần mềm — thường yêu cầu và bao gồm một hệ điều hành phải được phát triển với các tính năng khác nhau để đáp ứng nhu cầu cụ thể của nhiều dạng thiết bị (form factors).
Từ góc độ người dùng cuối, hệ điều hành cung cấp ba khả năng thiết yếu sau:
- Cung cấp giao diện người dùng (UI) qua CLI hoặc GUI.
- Khởi chạy ứng dụng và quản lý thực thi ứng dụng.
- Xác định và phân bổ tài nguyên phần cứng hệ thống như máy in, ổ đĩa sao lưu cho các ứng dụng đó, thường qua API tiêu chuẩn.
Giao Diện Người Dùng (User Interface)
Người dùng có thể tương tác với máy tính để làm việc thông qua GUI — màn hình trực quan nhấp chuột chứa các biểu tượng kích hoạt chức năng hệ thống và khởi chạy ứng dụng — hoặc CLI, bao gồm một dòng lệnh đơn để nhập dữ liệu, hoặc cả hai.
Kiến trúc của một hệ điều hành.
Quản Lý Ứng Dụng (Application Management)
Hệ điều hành xử lý việc khởi chạy và quản lý mọi ứng dụng, hỗ trợ các chức năng sau:
- Chia sẻ thời gian (timesharing) nhiều tiến trình hoặc luồng (threads) để các tác vụ khác nhau chia sẻ tài nguyên bộ xử lý có sẵn.
- Quản lý ngắt (interrupts) mà ứng dụng tạo ra để thu hút sự chú ý ngay lập tức của bộ xử lý, đảm bảo có đủ bộ nhớ để thực thi ứng dụng và dữ liệu tương ứng mà không can thiệp vào các tiến trình khác.
- Thực hiện xử lý lỗi (error handling) có thể gỡ bỏ các tiến trình của ứng dụng.
- Thực hiện quản lý bộ nhớ mà không làm gián đoạn các ứng dụng khác hoặc hệ điều hành.
Cung Cấp & Thực Thi Phần Cứng (Hardware Provisioning and Execution)
Hệ điều hành cũng hỗ trợ các API cho phép ứng dụng sử dụng chức năng hệ điều hành và phần cứng mà không cần biết bất kỳ điều gì về trạng thái cấp thấp của hệ điều hành hoặc phần cứng. Ví dụ, API Windows có thể cho phép chương trình nhận đầu vào từ bàn phím/chuột; tạo các yếu tố GUI như hộp thoại, nút bấm; đọc và ghi tệp vào thiết bị lưu trữ. Ứng dụng gần như luôn được điều chỉnh để sử dụng hệ điều hành mà nó dự định chạy trên đó.
Lập Lịch & Ưu Tiên Tiến Trình (Process Scheduling and Prioritization)
Trong hệ điều hành đa nhiệm (multitasking), nơi nhiều chương trình có thể chạy cùng lúc, hệ điều hành quyết định thứ tự ứng dụng chạy và thời gian cho phép cho mỗi ứng dụng trước khi nhường cho ứng dụng khác. Ví dụ, hệ điều hành có thể xác định xem một tác vụ batch (như in ấn số lượng lớn) có thể được lên lịch chạy sau khi tài nguyên rảnh.
Xử Lý Song Song (Parallel Processing)
Trên các máy tính hỗ trợ xử lý song song, hệ điều hành quản lý cách chia một chương trình để nó chạy trên nhiều bộ xử lý cùng lúc.
Quản Lý Tệp (File Management)
Theo yêu cầu người dùng, quy tắc CNTT hoặc cài đặt mặc định, hệ điều hành quản lý việc tạo, truy cập, sửa đổi và xóa tệp và thư mục.
Mạng (Networking)
Minh bạch với người dùng, hệ điều hành tự động kết nối trạm làm việc với tài nguyên mạng bằng cách giải mã giao thức mạng và kết nối tới các mạng. Điều này cho phép một người dùng truy cập máy in mạng và máy chủ được lưu trữ trên mạng.
Bảo Mật (Security)
Sử dụng các chính sách được định nghĩa và ủy quyền bởi bộ phận CNTT, hệ điều hành thực thi kiểm soát truy cập bảo mật và mã hóa cho người dùng, ứng dụng và dữ liệu.
Giám Sát Hiệu Suất & Phát Hiện Lỗi (Performance Monitoring and Error Detection)
Hệ điều hành liên tục giám sát hiệu suất máy tính và tạo nhật ký hệ thống (system logs) hỗ trợ tinh chỉnh để đạt hiệu suất tối ưu và giải quyết các vấn đề liên quan đến sử dụng tài nguyên, chậm trễ hiệu suất, điểm nghẽn (bottlenecks) và giải quyết lỗi.
Sao Lưu & Khôi Phục (Backup and Recovery)
Dữ liệu có thể được sao lưu định kỳ trong ngày, hàng đêm, hàng tuần hoặc tại tần suất được định nghĩa. Hệ điều hành có thể thực hiện các bản sao lưu này tự động, không cần sự hỗ trợ của người dùng hoặc CNTT. Nếu xảy ra sự cố dữ liệu hoặc lỗi hệ thống, dữ liệu có thể dễ dàng khôi phục từ bản sao lưu mới nhất.
Ảo Hóa (Virtualization)
Hầu hết các hệ điều hành cho phép người dùng xác định nhiều hệ điều hành chạy độc lập với nhau bằng cách sử dụng các phân vùng do phần mềm tạo ra, tách biệt từng hệ điều hành khỏi các hệ điều hành khác trên một trạm làm việc vật lý đơn lẻ. Điều này cho phép người dùng chạy nhiều ứng dụng, mỗi ứng dụng với hệ điều hành chuyên biệt của riêng nó, cùng lúc trên một trạm làm việc đơn lẻ để tối ưu hóa hiệu suất.
Quản Lý Thiết Bị (Device Management)
Hệ điều hành xác định, cấu hình và cung cấp cho ứng dụng quyền truy cập chung đến các thiết bị đầu vào/đá ra bên dưới như máy in, bàn phím và các thiết bị phần cứng máy tính khác. Khi hệ điều hành nhận diện và xác định phần cứng, nó cài đặt trình điều khiển thiết bị và giao diện tương ứng, cho phép hệ điều hành và các ứng dụng chạy trên nó sử dụng các thiết bị đó.
Hệ điều hành xác định máy in đúng và cài đặt trình điều khiển máy in phù hợp để ứng dụng chỉ cần thực hiện lệnh gọi đến máy in mà không cần dùng mã hoặc lệnh đặc thù cho máy in đó. Quy trình tương tự áp dụng cho các thiết bị khác, bao gồm:
- Cổng USB.
- Cổng mạng.
- Thiết bị đồ họa, như đơn vị xử lý đồ họa (GPU).
- Chipset bo mạch chủ (Motherboard chipsets).
- Thiết bị lưu trữ, như bộ điều hợp đĩa Serial-Attached SCSI và các đĩa được định dạng với hệ thống tệp phù hợp.
Hệ điều hành xác định và cấu hình thiết bị vật lý và logic cho dịch vụ và thường ghi lại chúng trong một cấu trúc tiêu chuẩn, như Windows Registry. Nhà sản xuất thiết bị định kỳ vá lỗi và cập nhật trình điều khiển, và hệ điều hành nên cập nhật chúng để đảm bảo hiệu suất và bảo mật thiết bị tối ưu. Khi thiết bị được thay thế, hệ điều hành cũng cài đặt và cấu hình trình điều khiển mới.
Các Loại Hệ Điều Hành & Ví Dụ
Mặc dù vai trò cơ bản của hệ điều hành là phổ biến, nhưng tồn tại vô số hệ điều hành phục vụ nhiều nhu cầu phần cứng và người dùng khác nhau, bao gồm:
Hệ Điều Hành Dụng Chung (General-Purpose Operating Systems)
Hệ điều hành dùng chung có thể chạy nhiều ứng dụng trên nhiều loại phần cứng rộng rãi, cho phép người dùng chạy một hoặc nhiều ứng dụng/nhiệm vụ cùng lúc. Hệ điều hành dùng chung có thể cài đặt trên nhiều mẫu máy tính để bàn và laptop, chạy ứng dụng từ hệ thống kế toán, cơ sở dữ liệu, trình duyệt web đến trò chơi. Hệ điều hành dùng chung thường tập trung vào quản lý tiến trình/luồng và phần cứng để đảm bảo ứng dụng có thể chia sẻ tin cậy các phần cứng tính toán đa dạng hiện có.
Các hệ điều hành máy tính để bàn phổ biến bao gồm:
- Windows — hệ điều hành cờ của Microsoft, là tiêu chuẩn事实上 cho máy tính gia đình và doanh nghiệp. Ra mắt năm 1985, Windows GUI-based OS đã phát hành nhiều phiên bản. Windows 95 thân thiện với người dùng chịu trách nhiệm lớn cho sự phát triển nhanh chóng của máy tính cá nhân.
- Mac OS — hệ điều hành cho dòng PC và trạm làm việc của Apple.
- Unix — hệ điều hành đa người dùng thiết kế cho sự linh hoạt và thích ứng. Phát triển đầu tiên vào những năm 1970, Unix là một trong những hệ điều hành đầu tiên được viết bằng ngôn ngữ C.
- Linux — hệ điều hành kiểu Unix từ cộng đồng mã nguồn mở, thiết kế để cung cấp cho người dùng PC một lựa chọn hệ điều hành miễn phí hoặc chi phí thấp. Linux được đánh giá là hệ điều hành hiệu quả và hiệu suất nhanh.
Hệ Điều Hành Di Động (Mobile Operating Systems)
Hệ điều hành máy tính di động được thiết kế cho thiết bị tính toán di động và trung tâm truyền thông, như smartphone và máy tính bảng. Thiết bị di động thường cung cấp tài nguyên tính toán hạn chế so với PC truyền thống, và hệ điều hành phải được thu nhỏ về kích thước và độ phức tạp để giảm thiểu sử dụng tài nguyên của chính nó, đồng thời đảm bảo tài nguyên đầy đủ cho một hoặc nhiều ứng dụng chạy trên thiết bị. Hệ điều hành di động xu hướng nhấn mạnh hiệu suất hiệu quả, khả năng phản hồi người dùng và chú ý chặt chẽ đến các tác vụ xử lý dữ liệu, như hỗ trợ phát đa phương tiện (media streaming). Apple iOS và Android là ví dụ của hệ điều hành di động.
Hệ Điều Hành Nhúng (Embedded Operating Systems)
Không phải tất cả thiết bị tính toán đều là dùng chung. Một lượng lớn thiết bị chuyên dụng — bao gồm trợ lý kỹ thuật số gia đình, máy ATM, hệ thống máy bay, thiết bị điểm bán hàng tự động và thiết bị Internet of Things (IoT) — sử dụng hệ điều hành được tùy biến và "giảm bớt" hơn. Khác biệt chính giữa hệ điều hành nhúng và hệ điều hành dùng chung là thiết bị chạy hệ điều hành nhúng chỉ làm một việc chính, vì vậy hệ điều hành được cắt giảm cao độ và dành riêng cho cả hiệu suất và khả năng phục hồi (resilience). Hệ điều hành nhúng phải chạy nhanh, không bị treo, và xử lý tất cả lỗi một cách khéo léo để tiếp tục vận hành trong mọi hoàn cảnh. Trong hầu hết các trường hợp, hệ điều hành được cung cấp trên một chip tích hợp vào chính thiết bị. Ví dụ, thiết bị y tế dùng trong thiết bị hỗ trợ sống của bệnh nhân sử dụng hệ điều hành nhúng phải chạy tin cậy để giữ cho bệnh nhân sống sót. Embedded Linux là một ví dụ của hệ điều hành nhúng.
Hệ Điều Hành Mạng (Network Operating Systems)
Hệ điều hành mạng (NOS) là một hệ điều hành chuyên biệt khác nhằm tạo điều kiện giao tiếp giữa các thiết bị hoạt động trên mạng cục bộ (LAN). NOS cung cấp ngăn xếp truyền thông (communication stack) cần thiết để hiểu giao thức mạng nhằm tạo, trao đổi và phân giải gói tin mạng. Ngày nay, khái niệm NOS chuyên biệt đã lỗi thời lớn phần vì các hệ điều hành khác xử lý truyền thông mạng. Ví dụ, Windows 10 và Windows Server 2019 bao gồm khả năng mạng toàn diện. Khái niệm NOS vẫn được dùng cho một số thiết bị mạng như router, switch, tường lửa, và nhà sản xuất sử dụng NOS độc quyền, bao gồm Cisco Internetwork Operating System và RouterOS mã nguồn mở từ MikroTik.
Hệ Điều Hành Thời Gian Thực (Real-Time Operating Systems)
Khi thiết bị tính toán phải tương tác với thế giới thực trong các ràng buộc thời gian không đổi và lặp lại được, nhà sản xuất thiết bị có thể chọn hệ điều hành thời gian thực (RTOS). Ví dụ, hệ thống điều khiển công nghiệp có thể điều phối hoạt động của một nhà máy rộng lớn hoặc nhà máy điện. Cơ sở như vậy tạo ra tín hiệu từ hàng loạt cảm biến và gửi tín hiệu để vận hành van, bộ kích hoạt, động cơ và hàng loạt thiết bị khác. Trong những tình huống này, hệ thống điều khiển công nghiệp phải phản hồi nhanh chóng và có thể dự đoán được đối với điều kiện thế giới thực thay đổi — nếu không, thảm họa có thể xảy ra. RTOS phải hoạt động không có bộ đệm (buffering), độ trễ xử lý (processing latencies) và các độ trễ khác — những thứ hoàn toàn chấp nhận được trong các loại hệ điều hành khác. Ví dụ RTOS bao gồm FreeRTOS và Wind River VxWorks.
Sự khác biệt giữa các loại hệ điều hành không phải là tuyệt đối, và một số hệ điều hành có thể chia sẻ đặc điểm của loại khác. Ví dụ, hệ điều hành dùng chung thường xuyên bao gồm khả năng mạng tìm thấy trong NOS truyền thống. Tương tự, hệ điều hành nhúng thường bao gồm thuộc tính của RTOS, trong khi hệ điều hành di động thường có thể chạy nhiều ứng dụng cùng lúc như các hệ điều hành dùng chung khác.
Hệ Điều Hành Phân tán (Distributed Operating Systems)
Hệ điều hành phân tán cài đặt trên mạng có thể cung cấp dịch vụ cho hàng loạt trạm làm việc, đặc biệt là máy khách mỏng (thin-client) có ít hoặc không có ứng dụng/dữ liệu cư trú. Nhiều người dùng truy cập và chia sẻ ứng dụng và tài nguyên được lưu trữ trên các máy chủ mạng phân tán lớn hơn này, và hệ điều hành trên các máy chủ này quản lý yêu cầu truy cập và tiêu thụ tài nguyên từ nhiều trạm làm việc của người dùng. Ví dụ hệ điều hành phân tán: Microsoft Windows Server và các bản phân phối Linux mã nguồn mở cho máy chủ.
Hệ Điều Hành Cụm (Cluster Operating Systems)
Hệ điều hành cụm được thiết kế để chạy một cụm máy tính làm việc cùng nhau trên một hệ thống đơn lẻ. Xử lý trí tuệ nhân tạo (AI) là ví dụ điển hình của tính toán cụm, vì nó yêu cầu xử lý song song, đồng thời, nhanh chóng dữ liệu. Hệ thống tính toán hiệu suất cao (HPC) nơi hàng nghìn giao dịch phải được xử lý cùng lúc và thời gian thực — như hệ thống môi giới chứng khoán — là trường hợp sử dụng khác cho tính toán cụm. Rocks Cluster Distribution và Open MPI mã nguồn mở là hai ví dụ của hệ điều hành tính toán cụm.
Đọc Thêm Về Hệ Điều Hành (OS)
- Lời khuyên cho trung tâm dữ liệu muốn thay đổi hệ điều hành
- Windows 11 đã sẵn sàng bay chưa?
- Khoảng trống kỹ năng mainframe; góc nhìn người ngoài vs người trong
- Cách lập kế hoạch nâng cấp dự án Windows 11
- Windows 10 kết thúc vòng đời khi nào? Cách gia hạn hỗ trợ