Apakah Panggilan Sistem di Linux Dan Bagaimana Ia Berfungsi dengan Contohnya

What Is System Call Linux



Panggilan sistem adalah fungsi yang memungkinkan proses berkomunikasi dengan kernel Linux. Ini hanya cara terprogram untuk program komputer untuk memesan kemudahan dari kernel sistem operasi. Panggilan sistem memperlihatkan sumber daya sistem operasi untuk program pengguna melalui API (Application Programming Interface). Panggilan sistem hanya dapat mengakses kerangka kernel. Panggilan sistem diperlukan untuk semua perkhidmatan yang memerlukan sumber.

Kernel Linux adalah perisian proprietari yang memuat dan beroperasi pada peranti pada tahap paling tidak berpotensi. Tugasnya adalah untuk mengatur semua yang berlaku pada mesin, dari papan kekunci, pemacu cakera, dan acara rangkaian hingga menyediakan potongan masa untuk pelaksanaan program yang berlainan secara serentak. Pemisahan perisian dan perkakasan mewujudkan gelembung selamat yang meningkatkan perlindungan dan kebolehpercayaan. Aplikasi yang tidak berkemampuan tidak dapat mencapai penyimpanan program lain, dan jika ada yang gagal, kernel menangguhkan prosesnya sehingga tidak merosakkan seluruh sistem.







Pembungkus Tipis Wafer:

Panggilan sistem Linux tidak diberikan secara eksplisit ke kernel dalam program tertentu. Hampir semua program menggunakan perpustakaan C asas dan menawarkan pembungkus ringan tetapi penting untuk panggilan sistem Linux. Repositori kemudian memberikan panggilan mesin Linux yang disertakan setelah memastikan bahawa parameter ciri diterjemahkan ke dalam daftar pemproses yang betul. Setiap kali pembungkus menerima data dari panggilan sistem, ia menganalisisnya dan memberikannya kepada program dengan jelas. Sebarang operasi interaktif mesin dalam program akhirnya ditukar menjadi panggilan sistem. Oleh itu, mari kita lihat beberapa daripadanya. Terdapat senarai panjang panggilan sistem Linux yang boleh kita gunakan dalam sistem Linux kita. Berikut adalah senarai beberapa panggilan sistem Linux yang biasa dan biasa digunakan.



  • Buka
  • Tutup
  • Cth
  • Tulis
  • Baca
  • Lekek
  • Pilih

Mari kita bincangkan beberapa panggilan sistem Linux menggunakan bahasa C dalam artikel kami untuk mendapatkannya.



Buka Sistem Panggilan:

Kita dapat menggunakan panggilan sistem Terbuka di sebaran Linux untuk membuka dokumen dengan cepat, yang akan kita tentukan dalam kod bahasa C kita. Lancarkan terminal arahan terlebih dahulu. Anda boleh menggunakan jalan pintas Ctrl + Alt + T. Anggaplah anda mempunyai test.txt fail teks di direktori utama, dan ia mengandungi beberapa kandungan di dalamnya. Jadi, pada mulanya, anda harus membuat nama fail jenis C baru.c di terminal melalui penyunting nano. Oleh itu, cubalah arahan nano di bawah ini.





$nanobaru.c

Kini, editor Nano telah dilancarkan. Taipkan kod yang ditunjukkan di bawah ini. Kami mempunyai dua penerangan fail dalam kod tersebut. Kedua-dua fail boleh dibuka menggunakan panggilan sistem terbuka. Penerangan pertama mengandungi panggilan baca, dan yang kedua mengandungi fungsi menulis. Panggilan terbuka pertama adalah membuka test.txt fail teks dan menyimpan kandungannya ke dalam deskriptor fail fd. Panggilan sistem terbuka kedua adalah membuat fail bernama target. Sasaran dokumen telah diganti ke deskriptor fail fd1. Arahan menulis digunakan untuk mentranskripsikan bait data dalam penyangga. Ketuk Ctrl + S untuk menyimpan kod dan tekan kekunci pintasan Ctrl + X untuk keluar dari fail.



Jalankan arahan kompilasi gcc untuk menyusun kod C ini.

$gccbaru.c

Mari laksanakan kod menggunakan pertanyaan a.out sederhana di shell seperti berikut:

$./a. keluar

Data output telah dikirimkan ke target file. Mari kita periksa fail sasaran menggunakan pertanyaan kucing. Skrin output menunjukkan data 20 watak dalam fail sasaran.

$kucingsasaran

Panggilan Sistem Exec:

Panggilan sistem exec dikeluarkan untuk menjalankan fail yang sedang diproses. Fail bekas yang boleh dilaksanakan diganti, dan fail semasa dikendalikan setiap kali exec dipanggil. Dengan menggunakan panggilan sistem exec, kita mungkin menganggap bahawa dengan itu akan menimpa dokumen atau aplikasi lama dalam bentuk yang baru. Perisian baru digunakan untuk mengatasi keseluruhan bahan proses. Dokumen yang tajuknya diberikan dalam pernyataan setiap kali meminta exec () diganti dengan bahagian maklumat pengguna yang menjalankan panggilan sistem exec () (). Oleh itu, buka terminal arahan dan, dengan menggunakan editor nano, buat fail jenis C baru seperti berikut:

$nanoexp.c

Editor telah dibuka sekarang. Tuliskan keseluruhan kod bahasa C di bawahnya. Terdapat tiga perpustakaan utama yang disertakan di dalamnya. Selepas itu, fungsi utama telah dibuat. Pernyataan cetak telah menunjukkan data rentetan dan Id Proses fail exp.c. Fungsi getpid () telah digunakan untuk tujuan ini. Kemudian kita mempunyai susunan jenis watak dengan beberapa nilai di dalamnya. Panggilan sistem exec telah digunakan untuk mengambil nama fail dan susunan satu baris di atas sebagai argumen. Sekarang fail hello.c akan diproses. Selepas itu, satu lagi pernyataan cetak sampai sekarang, tetapi tidak akan dapat dilaksanakan. Tekan Ctrl + S untuk menyimpan fail ini. Tekan Ctrl + X untuk keluar.

Kini tiba masanya untuk membuat fail c yang lain, hello.c menggunakan penyunting nano. Gunakan pertanyaan di bawah di shell untuk melakukannya.

$nanohello.c

Tuliskan kod di bawahnya. Kod ini mengandungi dua pernyataan cetak dalam fungsi utama. Yang pertama hanya mencetak rentetan yang diberikan di dalamnya, dan yang kedua adalah mencetak rentetan sambil mengambil ID proses dari fail yang sedang digunakan, yaitu hello.c.

Mari kita susun kedua-dua fail satu demi satu menggunakan gcc.

$gcc–Sampai exp.c

$gcc- Hai hello.c

Ketika kita menjalankan file exp.c, ia akan mengeluarkan pernyataan cetak pertama dari file exp.c dan kedua garis cetak dari file hello.c.

$./luput

Kesimpulan:

Kami telah menguraikan keseluruhan konsep panggilan sistem Linux dan bagaimana ia dapat digunakan dalam sistem Linux anda. Kami telah menggunakan Ubuntu 20.04 semasa melaksanakan konsep ini.