Trong hệ điều hành có rất nhiều tiến trình, luồng chạy mỗi mili giây, vậy có cơ chế nào để chúng giao tiếp với nhau không? Bài viết dưới đây sẽ giải thích những điều cơ bản cho bạn cuộc gọi hệ thốngcũng như những gì họ gọi là API trong hệ điều hành.
Các cuộc gọi hệ thống là gì?
Các cuộc gọi hệ thống cho người dùng biết cách truy cập các dịch vụ của hệ điều hành. Bất kỳ phương thức giao diện người dùng (GUI), tập lệnh (Batch) hay lệnh (command line, chẳng hạn như cmd trong Windows) đều có chung một mục đích là gọi hệ thống, để yêu cầu hệ điều hành thực hiện hành động. bản thân bạn.
Thông thường, các cuộc gọi hệ thống được viết bằng C hoặc C ++ hoặc hợp ngữ, là ngôn ngữ lập trình cấp thấp có quyền truy cập trực tiếp vào bộ nhớ hoặc phần cứng.
Wikipedia
Làm thế nào để sử dụng các cuộc gọi hệ thống?
Đầu tiên, chúng ta cần hiểu cách gọi hệ thống được sử dụng: Giả sử có một chương trình đơn giản đọc dữ liệu từ một tệp và sao chép nó sang một tệp khác.
Để chương trình hoạt động bình thường, chương trình phải đọc tên của hai tệp (gọi hệ thống 1: đọc tệp).
- Nếu xảy ra lỗi, chương trình sẽ xuất một dòng lỗi ra màn hình cho người dùng (gọi hệ thống 2: thoát màn hình) và thoát khỏi chương trình ngay lập tức (gọi hệ thống 3: thoát).
- Nếu không có lỗi, sẽ có một vòng lặp liên tục trong đó chương trình phải đọc từng dòng từ tệp này và sao chép tệp đó sang tệp khác (gọi hệ thống 4: sao chép).
Nếu tệp đầu ra (tệp mà dữ liệu được sao chép vào) có cùng tên tệp với tệp hiện có trong thư mục, bạn phải tự tạo tên tệp khác cho tệp (cuộc gọi hệ thống 5: tạo tên tệp) hoặc không cho phép sao chép. Nếu ổ cứng có vấn đề về đọc và ghi, tên lỗi phải được cung cấp cho người dùng (gọi hệ thống khác). Khi sao chép thành công, người dùng sẽ thấy màn hình “thành công”.
Như bạn có thể thấy, một chương trình đơn giản phải thực hiện rất nhiều lời gọi hệ thống. Thông thường, một hệ thống máy tính thực hiện hàng trăm cuộc gọi hệ thống mỗi giây.
API là gì?
Hầu hết các lập trình viên không nhìn chi tiết như vậy. Nhưng các lập trình viên ứng dụng thiết kế các chương trình để chạy bằng các giao diện lập trình ứng dụng (gọi tắt là API). API là các chức năng có sẵn cho các lập trình viên.
Các loại API phổ biến nhất:
- API cửa sổ hệ điều hành Windows
- API POSIX cho các hệ điều hành chạy nền tảng POSIX
- API Java cho các chương trình chạy trong máy ảo Java
Lập trình viên có thể truy cập API thông qua các chức năng có sẵn trong thư viện hệ điều hành. Nếu hệ điều hành được viết bằng ngôn ngữ lập trình C (Unix hoặc Linux), tên của thư viện là libc. Và các hàm này có chức năng gọi các lời gọi hệ thống thay cho người lập trình.
Ví dụ về API tiêu chuẩn:

Một chương trình sử dụng hàm read() phải “bao gồm” thư viện unistd.h. Sau khi đọc thành công, số byte đã đọc sẽ được trả về.
Tại sao lập trình viên thích sử dụng API hơn là gọi hệ thống trực tiếp?
Bởi vì:
- Hỗ trợ đa dạng: lập trình sử dụng API có thể hoạt động trên các hệ điều hành khác nhau nếu chúng hỗ trợ cùng một API.
- Dễ dàng hơn: hệ thống thực sẽ cực kỳ chi tiết và khó lập trình.

Với hầu hết các ngôn ngữ lập trình, có một lớp ngăn cách giữa ứng dụng và hệ điều hành được gọi là giao diện lời gọi hệ thống. Các ứng dụng trên máy tính muốn sử dụng chức năng, dịch vụ nào của hệ điều hành thì cần gọi qua tầng này. Mỗi dịch vụ hệ điều hành được liệt kê, hệ điều hành sẽ tìm trong hệ thống của nó và trả về dịch vụ tương ứng được liệt kê cho các ứng dụng.
Hy vọng thông qua bài viết System call trong linux là gì? Cakhia TV trang web trực tiếp bóng đá miễn phí sẽ giúp ích được quý bạn đọc.