Rumah  >  Artikel  >  Tutorial sistem  >  Petua untuk pemula untuk mempelajari panggilan sistem Linux

Petua untuk pemula untuk mempelajari panggilan sistem Linux

王林
王林ke hadapan
2024-01-18 10:12:05491semak imbas

Linux 系统调用的初学技巧

Dalam beberapa tahun kebelakangan ini, saya telah melakukan banyak kerja berkaitan kontena. Sebelum ini, saya melihat ceramah hebat oleh Julien Friedman, yang menulis rangka kerja kontena dalam beberapa baris Go. Ini tiba-tiba menyedari saya bahawa bekas hanyalah mesin dalam proses Linux yang terhad.

Membina pandangan terhad ini melibatkan banyak panggilan dalam pakej panggilan sistem Golang. Pada mulanya, saya hanya menggunakan yang dangkal, tetapi selepas beberapa ketika saya ingin mengupas lapisan seterusnya bawang dan melihat apakah panggilan sistem ini dan bagaimana ia berfungsi. Saya akan berkongsi apa yang saya pelajari dalam ceramah saya di OSCON.

Seperti namanya, syscall ialah panggilan sistem ialah cara anda meminta kemasukan ke dalam kernel Linux dari ruang pengguna. Kernel melakukan beberapa kerja untuk anda, seperti mencipta proses, dan kemudian kembali ke ruang pengguna.

Terdapat mekanisme biasa yang menjadikan semua panggilan sistem beralih kepada kernel, yang dikendalikan oleh perpustakaan libc. Kod ruang pengguna menetapkan beberapa daftar termasuk ID panggilan sistem yang dikehendaki dan sebarang hujah yang perlu dihantar kepada panggilan sistem. Ia mencetuskan "perangkap" untuk memindahkan kawalan ke kernel.

Beginilah cara kod ruang pengguna membuat permintaan kepada kernel, dan Linux juga mempunyai sistem fail pseudo, yang membolehkan kernel menghantar maklumat kepada ruang pengguna, dan kandungannya kelihatan seperti direktori dan fail biasa.

Direktori

/proc ialah contoh yang baik. Lihat bahagian dalam dan anda akan temui semua jenis maklumat menarik tentang proses yang dijalankan pada mesin. Dalam sesetengah kes, seperti cgroup (kumpulan kawalan), ruang pengguna boleh mengkonfigurasi parameter dengan menulis kepada fail di bawah sistem fail pseudo ini.

Apa yang menarik terutamanya apabila anda bekerja dengan bekas ialah hos /proc mengandungi semua maklumat tentang proses kontena. Ini termasuk pembolehubah persekitaran, yang juga disimpan dalam /proc pseudo-filesystem, yang bermaksud hos anda mempunyai akses kepada persekitaran semua bekas yang sedang berjalan. Jika anda menghantar rahsia seperti bukti kelayakan atau kata laluan pangkalan data ke dalam bekas melalui pembolehubah persekitaran, mungkin terdapat akibat keselamatan.

Ramai pengaturcara yang menulis program biasa mungkin tidak merasakan bahawa mereka menggunakan panggilan sistem dengan kerap. Tetapi sebenarnya mereka sering dipanggil, kerana aktiviti harian seperti membuat fail atau menukar direktori melibatkan panggilan sistem Linux.

Anda tidak perlu menjadi pengaturcara sistem untuk menikmati panggilan sistem!


Mengenai pengarang:

Liz Rice - Liz Rice ialah penginjil teknikal dan pakar keselamatan kontena di Aqua Security. Sebelum ini, beliau mengasaskan Microscaling Systems dan membangunkan enjin penskalaan masa nyatanya, serta tapak web metadata imej popular MicroBadger.com. Beliau mempunyai pengalaman luas dalam pembangunan, pasukan dan pengurusan produk perisian yang terdiri daripada protokol rangkaian dan sistem teragih, serta bidang teknologi digital seperti VOD, muzik dan VoIP.


Atas ialah kandungan terperinci Petua untuk pemula untuk mempelajari panggilan sistem Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:linuxprobe.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam