Phần mềm hệ thống đóng vai trò như một giao diện giữa người dùng và phần cứng của máy tính. Sau đây, chúng ta sẽ cùng tìm hiểu các phần mềm hệ thống quan trọng trong máy tính.
Xem thêm: Phần mềm là gì?

Có gì hay?
Cấu trúc hệ thống và hệ điều hành
Hệ điều hành (Operating System – OS) là phần mềm nền tảng không thể thiếu giúp máy tính vận hành hiệu quả. Dù bạn có kết nối đầy đủ CPU, màn hình, bàn phím, và chuột và cung cấp nguồn điện, máy tính vẫn không thể hoạt động nếu không có hệ điều hành.
Hệ điều hành thực hiện các chức năng sau:
- Duy trì trạng thái sẵn sàng cho tất cả các bộ phận phần cứng để thực hiện lệnh từ người dùng
- Điều phối giữa các thiết bị phần cứng khác nhau
- Lập lịch tác vụ dựa trên mức độ ưu tiên
- Phân bổ tài nguyên cho từng tác vụ
- Hỗ trợ máy tính truy cập mạng và quản lý tài nguyên
Ngoài chức năng khởi động hệ thống ban đầu, hệ điều hành còn có nhiệm vụ:
- Quản lý tài nguyên như phần cứng, phần mềm và các tài nguyên dùng chung
- Ngăn ngừa lỗi trong quá trình sử dụng phần mềm
- Kiểm soát việc sử dụng máy tính không đúng cách
Một trong những hệ điều hành đầu tiên là MS-DOS, được phát triển bởi Microsoft dành cho máy tính IBM, sử dụng giao diện dòng lệnh (Command Line Interface – CLI).
Tuy nhiên, vì giao diện khó sử dụng và người dùng phải ghi nhớ các lệnh để thao tác, Microsoft đã phát triển Windows, một hệ điều hành có giao diện đồ họa (Graphical User Interface – GUI), giúp máy tính trở nên dễ sử dụng và phổ biến hơn.
Xem thêm: Chức năng của hệ điều hành | Học máy tính #6
Assembler là gì?
Assembler là phần mềm hệ thống chuyển đổi các chương trình viết bằng ngôn ngữ hợp ngữ (Assembly) thành mã máy (machine code). Ngôn ngữ hợp ngữ sử dụng các mã dễ nhớ (mnemonics), giúp tăng hiệu suất và giảm lỗi cho lập trình viên.

Những lợi ích của việc sử dụng ngôn ngữ hợp ngữ:
- Dễ ghi nhớ mã lệnh, giúp lập trình viên tăng năng suất
- Giảm số lượng lỗi, rút ngắn thời gian gỡ lỗi
- Cung cấp quyền truy cập trực tiếp vào tài nguyên phần cứng, cho phép tùy chỉnh chương trình phù hợp với máy tính cụ thể
Trình thông dịch là gì?
Sự ra đời của ngôn ngữ cấp cao giúp đơn giản hóa việc lập trình, với cú pháp gần gũi với tiếng Anh, khiến lập trình trở nên phổ biến hơn.
Trình thông dịch (Interpreter) là phần mềm chuyển đổi từng dòng mã nguồn ngôn ngữ cấp cao thành mã máy để thực thi ngay lập tức, thay vì chuyển đổi toàn bộ chương trình một lúc.
Ưu điểm của trình thông dịch: Chúng rất dễ viết và không yêu cầu không gian bộ nhớ lớn
Nhược điểm của trình thông dịch: Do dịch từng dòng một, trình thông dịch thường chậm hơn trình biên dịch (compiler) khi thực thi chương trình lớn.
Trình biên dịch là gì?
Trình biên dịch (Compiler) là phần mềm hệ thống chuyển đổi toàn bộ mã nguồn thành mã máy trong một lần và tạo ra một mã thực thi. Tuy phức tạp hơn và cần nhiều tài nguyên hệ thống so với trình thông dịch, nhưng trình biên dịch cho phép chương trình thực thi nhanh hơn sau khi dịch xong.

Các bước chính trong quá trình biên dịch bao gồm:
- Tiền xử lý (Pre-processing): Chuyển đổi các chỉ dẫn tiền xử lý thành ngôn ngữ hợp ngữ, thường gặp trong các ngôn ngữ như C và C++.
- Phân tích từ vựng (Lexical analysis): Chuyển đổi mã lệnh thành các đơn vị từ vựng như hằng số, biến, ký hiệu toán học.
- Phân tích cú pháp (Parsing): Kiểm tra mã lệnh theo quy tắc ngữ pháp của ngôn ngữ. Nếu có lỗi cú pháp, trình biên dịch yêu cầu sửa lỗi trước khi tiếp tục.
- Biên dịch (Compiling): Chuyển đổi mã nguồn thành mã đối tượng.
- Liên kết (Linking): Kết nối các thư viện hoặc tệp liên kết ngoài với mã chương trình. Đầu ra cuối cùng là mã thực thi sẵn sàng để chạy.


