Panggilan Sistem

Apa itu Panggilan Sistem di Linux Dan Bagaimana Ia Berfungsi dengan Contohnya

Apa itu Panggilan Sistem di Linux Dan Bagaimana Ia Berfungsi dengan Contohnya

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 (Aplikasi Pengaturcaraan Aplikasi). 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 waktu 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 salah, kernel menangguhkan prosesnya sehingga tidak merusak seluruh sistem.

Pembalut 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.

Mari kita bincangkan sebilangan panggilan sistem Linux menggunakan bahasa C dalam artikel kami untuk memahami dengannya.

Buka Sistem Panggilan:

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

$ nano baru.c

Kini, editor Nano telah dilancarkan. Taipkan kod yang ditunjukkan di bawah. 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 "teks fail" ujian.txt "dan menyimpan kandungannya ke dalam deskriptor fail" fd ". Panggilan sistem terbuka kedua adalah membuat fail bernama "target". Dokumen "target" telah diganti ke deskripsi 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.

$ gcc baru.c

Mari kita laksanakan kod menggunakan “a.keluar ”pertanyaan di shell seperti berikut:

$ ./ a.keluar

Data output telah dikirimkan ke file "target". Mari periksa fail "target" menggunakan pertanyaan "kucing". Skrin output menunjukkan data 20 karakter dalam file "target".

sasaran kucing $

Panggilan Sistem Exec:

Panggilan sistem exec dikeluarkan untuk menjalankan fail yang sedang diproses. Fail yang boleh dieksekusi sebelumnya 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 satu lingkaran dengan yang baru. Perisian baru digunakan untuk mengatasi keseluruhan bahan proses. Dokumen yang tajuknya diberikan dalam pernyataan setiap kali memanggil 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:

$ nano exp.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, “halo.c ”menggunakan penyunting nano. Gunakan pertanyaan di bawah dalam shell untuk melakukannya.

$ nano hello.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 file yang sedang digunakan, yaitu "halo.c ”.

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

$ gcc -o exp exp.c

$ gcc -o hello hello.c

Semasa kita melaksanakan exp.c file, ia akan mengeluarkan pernyataan cetak pertama dari exp.c fail dan kedua-dua garis cetakan dari hello.fail c.

$ ./ exp

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.

Pasang Dolphin Emulator terkini untuk Gamecube & Wii di Linux
Dolphin Emulator membolehkan anda memainkan permainan Gamecube & Wii pilihan anda di Komputer Peribadi Linux (PC). Menjadi emulator permainan sumber ...
Cara Menggunakan Mesin Cheat GameConqueror di Linux
Artikel ini merangkumi panduan mengenai penggunaan mesin cheat GameConqueror di Linux. Ramai pengguna yang bermain permainan di Windows sering menggun...
Emulator Konsol Permainan Terbaik untuk Linux
Artikel ini akan menyenaraikan perisian emulasi konsol permainan popular yang tersedia untuk Linux. Emulation adalah lapisan keserasian perisian yang ...