Panggilan Sistem

Apa itu System Call di Linux Dan Bagaimana Cara Kerjanya dengan Contohnya

Apa itu System Call di Linux Dan Bagaimana Cara Kerjanya dengan Contohnya

Panggilan sistem adalah fungsi yang memungkinkan suatu proses untuk berkomunikasi dengan kernel Linux. Ini hanya cara terprogram bagi program komputer untuk memesan fasilitas dari kernel sistem operasi. Panggilan sistem mengekspos sumber daya sistem operasi ke program pengguna melalui API (Application Programming Interface). Panggilan sistem hanya dapat mengakses kerangka kerja kernel. Panggilan sistem diperlukan untuk semua layanan yang membutuhkan sumber daya.

Kernel Linux adalah perangkat lunak berpemilik yang memuat dan beroperasi pada perangkat pada tahap yang paling tidak potensial. Tugasnya adalah mengatur semua yang terjadi pada mesin, dari keyboard, disk drive, dan acara jaringan hingga menyediakan irisan waktu untuk eksekusi program yang berbeda secara bersamaan. Pemisahan perangkat lunak dan perangkat keras menciptakan gelembung aman yang meningkatkan perlindungan dan keandalan. Aplikasi yang tidak memiliki hak istimewa tidak dapat menjangkau penyimpanan program lain, dan jika salah satu gagal, kernel akan menangguhkan proses sehingga tidak merusak seluruh sistem.

Pembungkus Wafer Tipis:

Panggilan sistem Linux tidak diberikan secara eksplisit ke kernel dalam program tertentu. Hampir semua program menggunakan pustaka C dasar dan menawarkan pembungkus yang ringan namun penting untuk panggilan sistem Linux. Repositori kemudian menyediakan panggilan mesin Linux yang menyertainya setelah memastikan bahwa parameter fitur diterjemahkan ke dalam register prosesor yang tepat. Setiap kali pembungkus menerima data dari panggilan sistem, ia menganalisisnya dan menyumbangkannya ke program dengan jelas. Setiap operasi mesin-interaktif dalam suatu program pada akhirnya diubah menjadi panggilan sistem. Jadi, mari kita lihat beberapa di antaranya. Ada daftar panjang panggilan sistem Linux yang dapat kita gunakan di sistem Linux kita. Berikut adalah daftar beberapa panggilan sistem Linux yang umum dan banyak digunakan used.

Mari kita bahas beberapa panggilan sistem Linux menggunakan bahasa C di artikel kami untuk mempelajarinya secara langsung.

Buka Panggilan Sistem:

Kami dapat menggunakan panggilan sistem "Buka" di distribusi Linux kami untuk membuka dokumen dengan cepat, yang akan kami tentukan dalam kode bahasa C kami. Luncurkan terminal perintah terlebih dahulu. Anda dapat menggunakan pintasan "Ctrl + Alt + T". Misalkan Anda memiliki file teks “test.txt” di direktori home, dan berisi beberapa konten di dalamnya. Jadi, pada awalnya, Anda harus membuat nama file tipe C baru "baru".c” di terminal melalui editor nano. Oleh karena itu, cobalah instruksi nano sederhana di bawah ini.

$nano baru.c

Sekarang, editor Nano telah diluncurkan. Ketik kode yang ditunjukkan di bawah ini di dalamnya. Kami memiliki dua deskriptor file dalam kode. Kedua file dapat dibuka menggunakan panggilan sistem terbuka. Deskriptor pertama berisi panggilan baca, dan yang kedua berisi fungsi tulis. Panggilan terbuka pertama adalah membuka file teks “test.txt” dan menyimpan isinya ke dalam deskriptor file “fd”. Panggilan sistem terbuka kedua adalah membuat file bernama "target". Dokumen "target" telah diganti ke deskriptor file "fd1". Instruksi tulis digunakan untuk mentranskripsikan byte data dalam buffer. Ketuk "Ctrl + S" untuk menyimpan kode dan tekan tombol pintas "Ctrl + X" untuk keluar dari file.

Jalankan instruksi kompilasi gcc untuk mengkompilasi kode C ini.

$gcc baru.c

Mari kita jalankan kodenya menggunakan sederhana “a.out” query di shell sebagai berikut:

$ ./Sebuah.di luar

Data output telah dikirim ke file "target". Mari kita periksa file "target" menggunakan kueri "kucing". Layar keluaran menampilkan data 20 karakter dalam file "target".

$ target kucing

Panggilan Sistem Eksekutif:

Panggilan sistem exec sedang dibuang untuk menjalankan file yang sedang diproses. File yang dapat dieksekusi sebelumnya diganti, dan file saat ini dioperasikan setiap kali exec dipanggil. Dengan menggunakan panggilan sistem exec, kita dapat berasumsi bahwa hal itu akan menimpa dokumen atau aplikasi lama dalam loop dengan yang baru. Perangkat lunak baru digunakan untuk mengganti materi seluruh proses. Dokumen yang judulnya diberikan dalam pernyataan setiap kali memanggil exec() diganti dengan bagian informasi pengguna yang menjalankan panggilan sistem exec() (). Jadi buka terminal perintah dan, menggunakan editor nano, buat file tipe C baru sebagai berikut:

$ nano exp.c

Editor telah dibuka sekarang. Tuliskan seluruh kode bahasa C di bawah ini di dalamnya. Ada tiga perpustakaan utama yang disertakan di dalamnya. Setelah itu, fungsi utama telah dipakai. Pernyataan print telah menunjukkan data string dan Id Proses dari file “exp.c”. Fungsi getpid() telah digunakan untuk tujuan ini. Kemudian kita memiliki array tipe karakter dengan beberapa nilai di dalamnya. Panggilan sistem exec telah digunakan untuk mengambil nama file dan larik satu baris di atas sebagai argumen. Sekarang file “halo.c” akan diproses. Setelah itu, pernyataan cetak lain datang sejauh ini, tetapi tidak akan pernah dieksekusi. Tekan "Ctrl + S" untuk menyimpan file ini. Tekan "Ctrl + X" untuk keluar.

Sekarang saatnya membuat file c lain, “halo.c” menggunakan editor nano. Gunakan kueri di bawah ini di Shell untuk melakukannya.

$nano halo.c

Tulis kode di bawah ini di dalamnya. Kode ini berisi dua pernyataan cetak dalam fungsi utama. Yang pertama hanya mencetak string yang diberikan di dalamnya, dan yang kedua mencetak string sambil mengambil ID proses dari file yang saat ini digunakan, yaitu "halo.c”.

Mari kita kompilasi kedua file satu demi satu menggunakan gcc.

$ gcc -o exp exp.c

$ gcc -o halo halo.c

Saat kita menjalankan exp.c, itu akan menampilkan pernyataan cetak pertama dari exp.c dan kedua baris cetak dari hello.file c.

$ ./exp

Kesimpulan:

Kami telah menguraikan seluruh konsep panggilan sistem Linux dan bagaimana mereka dapat digunakan di sistem Linux Anda. Kami telah menggunakan Ubuntu 20.04 saat menerapkan konsep ini.

SuperTuxKart untuk Linux
SuperTuxKart adalah judul hebat yang dirancang untuk memberi Anda pengalaman Mario Kart gratis di sistem Linux Anda. Ini cukup menantang dan menyenang...
Pertempuran untuk Tutorial Westnoth
The Battle for Wesnoth adalah salah satu game strategi open source terpopuler yang bisa kamu mainkan saat ini. Tidak hanya game ini telah dikembangkan...
0 A.D. tutorial
Dari sekian banyak game strategi di luar sana, 0 A.D. berhasil menonjol sebagai judul yang komprehensif dan permainan taktis yang sangat dalam meskipu...