Jawaban:
Tidak ada yang namanya "panggilan perpustakaan". Anda dapat memanggil fungsi yang ditautkan ke perpustakaan bersama. Dan itu hanya berarti bahwa lintasan perpustakaan dilihat saat runtime untuk menentukan lokasi fungsi yang akan dipanggil.
Panggilan sistem adalah panggilan kernel tingkat rendah yang ditangani oleh kernel.
Jika Anda mengetikkan man man
shell Anda, Anda akan melihat daftar bagian manual
2 Panggilan sistem (fungsi disediakan oleh kernel)
3 Panggilan perpustakaan (fungsi dalam perpustakaan program)
Misalnya, Anda akan menemukan chmod
di bagian 2 manual saat mengetik man chmod
. Dan fprintf
di bagian 3.
Panggilan sistem ditangani langsung oleh kernel.
Panggilan perpustakaan ditangani oleh perpustakaan yang dinamis (atau terhubung secara statis). Program yang membuat panggilan perpustakaan harus terlebih dahulu mengimpor perpustakaan itu, sebelum panggilan itu berfungsi. Panggil perpustakaan sendiri dapat menggunakan panggilan sistem.
Terkadang perpustakaan disediakan sebagai "ujung depan" untuk panggilan sistem, untuk menyediakan fungsionalitas tambahan atau kemudahan penggunaan yang tidak disediakan oleh kernel.
Panggilan sistem adalah fungsi yang disediakan sistem operasi untuk digunakan aplikasi. Sedangkan fungsi seperti yang ada di math.h, string.h, dll adalah yang tidak ada hubungannya dengan interfacing dengan sistem operasi.
Pada dasarnya ada dua mode yaitu kernel linux.
Kernel linux apa pun berpindah bolak-balik antara dua mode ini. Secara umum, panggilan Library dijalankan dalam mode Pengguna dan Panggilan sistem dieksekusi dalam mode Kernel . Dalam istilah sistem operasi, mode Kernel bersifat Atomic dan dalam mode Supervisory. Hampir semua panggilan Library membutuhkan bantuan dari kernel untuk melakukan tugasnya. Setiap panggilan perpustakaan pada gilirannya panggilan sistem panggilan yang mendasarinya. Mari kita buat ide lebih jelas menggunakan contoh berikut
Setiap kali dalam program c, Anda menggunakan fopen () dari file header. Pemrograman lingkungan panggilan system call open () dari kernel dan melakukan tugas pembukaan file-nya. Lagi setelah dieksekusi, aliran kontrol kembali ke mode pengguna.
Untuk mengilustrasikan ini melakukan tugas-tugas berikut
man man
: di sini Anda akan menemukan bagian manual dari 1-8 masing-masing memiliki tujuan khusus.man fopen
: Anda akan melihat istirahat sebagai FOPEN(3)
, di sini 3 menunjukkan bagian manual 3 dari halaman manual yang merupakan bagian panggilan c-library.Apakah man open
: Anda akan melihat istirahat sebagai OPEN(2)
, di sini 2 menunjukkan bagian manual 2 dari halaman manual yang merupakan bagian panggilan sistem.
Semoga Anda mengerti konsepnya.
Hanya menambah perbedaan yang disebutkan di sini dalam jawaban lain.
Karena panggilan pustaka hanyalah panggilan fungsi, tidak ada peralihan dari ruang pengguna ke ruang kernel. Di sisi lain, panggilan sistem menghasilkan perpindahan dari ruang pengguna ke ruang kernel karena panggilan sistem beroperasi dalam mode kernel.