Rumah Tutorial sistem LINUX Memperkenalkan proses panggilan sistem di bawah Linux

Memperkenalkan proses panggilan sistem di bawah Linux

Apr 11, 2024 am 09:43 AM
linux tutorial linux Topi Merah sistem linux arahan linux pensijilan linux linux topi merah video linux

Proses:

Mari kita lihat gambar dahulu untuk mendapatkan pemahaman yang kasar.

Memperkenalkan proses panggilan sistem di bawah Linux

Pertama sekali, apa yang boleh dipanggil terus oleh aplikasi ialah API yang disediakan oleh sistem, yang boleh dilakukan dalam mod pengguna (Ring3).

Kemudian API yang sepadan akan menyimpan nombor panggilan sistem yang sepadan ke daftar eax (langkah ini dilaksanakan melalui pemasangan sebaris), dan kemudian gunakan int 0x80 untuk mencetuskan gangguan (pemasangan sebaris) dan masukkan fungsi pemprosesan gangguan (fungsi ini sepenuhnya ditulis dalam kod pemasangan), kali ini ia memasuki keadaan kernel (Ring0).

Dalam fungsi pengendalian gangguan, panggilan sistem yang sepadan dengan nombor panggilan sistem akan dipanggil. Dalam fungsi ini, dua daftar ds dan es akan ditetapkan untuk menunjuk ke ruang kernel. Dengan cara ini, kami tidak boleh memindahkan data daripada mod pengguna ke mod kernel (seperti dalam open(const char * nama fail, bendera int, ...), alamat rentetan yang ditunjukkan oleh penunjuk nama fail adalah dalam ruang pengguna, Jika anda mendapatkannya dari tempat yang sepadan dalam ruang kernel, rentetan itu tidak akan wujud sama sekali), apakah yang perlu anda lakukan? Daftar fs dalam pengendali gangguan ditetapkan untuk menunjuk ke ruang pengguna, jadi masalah itu diselesaikan.

Dalam panggilan sistem, operasi yang sepadan dilakukan, seperti membuka fail, menulis fail, dsb.

Selepas diproses, ia akan kembali kepada fungsi pemprosesan gangguan, dan nilai pulangan disimpan dalam daftar eax.

Apabila kembali ke API daripada fungsi pengendalian gangguan, nilai pulangan masih disimpan dalam daftar eax. Pada masa ini, ia dipulihkan daripada mod kernel kepada mod pengguna.

Dapatkan nilai daripada eax dalam API, buat pertimbangan yang sepadan dan kembalikan nilai yang berbeza untuk menunjukkan selesainya operasi.

Mengapa begitu banyak panggilan sistem boleh dipanggil menggunakan int 0x80 interrupt?

Dalam mod dilindungi, terdapat pelbagai gangguan, dan panggilan sistem terikat untuk mengganggu nombor 0x80. Apabila panggilan sistem akan dipanggil, int 0x80 dicetuskan, dan fungsi pengendalian gangguan menggunakan eax untuk mengetahui panggilan sistem yang ingin dipanggil. Sebabnya ialah terdapat terlalu banyak panggilan sistem dan nombor gangguan tidak akan mencukupi, jadi satu digunakan untuk pengurusan berpusat.

Terdapat jadual dalam sistem pengendalian yang digunakan untuk menyimpan alamat pelbagai fungsi panggilan sistem. Jadual ini ialah tatasusunan, jadi alamat fungsi yang berbeza boleh diakses melalui subskrip. Oleh itu, satu nombor gangguan + pelbagai nombor panggilan sistem boleh digunakan untuk mengurus berbilang panggilan sistem.

Atas ialah kandungan terperinci Memperkenalkan proses panggilan sistem di bawah Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Perbezaan antara centos dan ubuntu Perbezaan antara centos dan ubuntu Apr 14, 2025 pm 09:09 PM

Perbezaan utama antara CentOS dan Ubuntu adalah: asal (CentOS berasal dari Red Hat, untuk perusahaan; Ubuntu berasal dari Debian, untuk individu), pengurusan pakej (CentOS menggunakan yum, yang memberi tumpuan kepada kestabilan; Ubuntu menggunakan APT, untuk kekerapan yang tinggi) Pelbagai tutorial dan dokumen), kegunaan (CentOS berat sebelah ke arah pelayan, Ubuntu sesuai untuk pelayan dan desktop), perbezaan lain termasuk kesederhanaan pemasangan (CentOS adalah nipis)

Cara memasang centos Cara memasang centos Apr 14, 2025 pm 09:03 PM

Langkah Pemasangan CentOS: Muat turun Imej ISO dan Burn Bootable Media; boot dan pilih sumber pemasangan; Pilih susun atur bahasa dan papan kekunci; Konfigurasikan rangkaian; memisahkan cakera keras; Tetapkan jam sistem; Buat pengguna root; pilih pakej perisian; Mulakan pemasangan; Mulakan semula dan boot dari cakera keras selepas pemasangan selesai.

Pilihan Centos setelah menghentikan penyelenggaraan Pilihan Centos setelah menghentikan penyelenggaraan Apr 14, 2025 pm 08:51 PM

CentOS telah dihentikan, alternatif termasuk: 1. Rocky Linux (keserasian terbaik); 2. Almalinux (serasi dengan CentOS); 3. Ubuntu Server (Konfigurasi diperlukan); 4. Red Hat Enterprise Linux (versi komersial, lesen berbayar); 5. Oracle Linux (serasi dengan CentOS dan RHEL). Apabila berhijrah, pertimbangan adalah: keserasian, ketersediaan, sokongan, kos, dan sokongan komuniti.

Cara menggunakan desktop docker Cara menggunakan desktop docker Apr 15, 2025 am 11:45 AM

Bagaimana cara menggunakan desktop Docker? Docktop Docktop adalah alat untuk menjalankan bekas Docker pada mesin tempatan. Langkah -langkah untuk digunakan termasuk: 1. Pasang desktop Docker; 2. Mulakan desktop Docker; 3. Buat imej Docker (menggunakan Dockerfile); 4. Membina imej Docker (menggunakan Docker Build); 5. Jalankan bekas Docker (menggunakan Docker Run).

Penjelasan terperinci mengenai Prinsip Docker Penjelasan terperinci mengenai Prinsip Docker Apr 14, 2025 pm 11:57 PM

Docker menggunakan ciri -ciri kernel Linux untuk menyediakan persekitaran berjalan yang cekap dan terpencil. Prinsip kerjanya adalah seperti berikut: 1. Cermin digunakan sebagai templat baca sahaja, yang mengandungi semua yang anda perlukan untuk menjalankan aplikasi; 2. Sistem Fail Kesatuan (Unionfs) menyusun pelbagai sistem fail, hanya menyimpan perbezaan, menjimatkan ruang dan mempercepatkan; 3. Daemon menguruskan cermin dan bekas, dan pelanggan menggunakannya untuk interaksi; 4. Ruang nama dan cgroups melaksanakan pengasingan kontena dan batasan sumber; 5. Pelbagai mod rangkaian menyokong interkoneksi kontena. Hanya dengan memahami konsep -konsep teras ini, anda boleh menggunakan Docker dengan lebih baik.

Apa yang Harus Dilakukan Setelah CentOs Berhenti Penyelenggaraan Apa yang Harus Dilakukan Setelah CentOs Berhenti Penyelenggaraan Apr 14, 2025 pm 08:48 PM

Selepas CentOS dihentikan, pengguna boleh mengambil langkah -langkah berikut untuk menanganinya: Pilih pengedaran yang serasi: seperti Almalinux, Rocky Linux, dan CentOS Stream. Berhijrah ke pengagihan komersial: seperti Red Hat Enterprise Linux, Oracle Linux. Menaik taraf ke CentOS 9 Stream: Pengagihan Rolling, menyediakan teknologi terkini. Pilih pengagihan Linux yang lain: seperti Ubuntu, Debian. Menilai pilihan lain seperti bekas, mesin maya, atau platform awan.

Konfigurasi komputer apa yang diperlukan untuk vscode Konfigurasi komputer apa yang diperlukan untuk vscode Apr 15, 2025 pm 09:48 PM

Keperluan Sistem Kod Vs: Sistem Operasi: Windows 10 dan ke atas, MACOS 10.12 dan ke atas, pemproses pengedaran Linux: minimum 1.6 GHz, disyorkan 2.0 GHz dan ke atas memori: minimum 512 MB, disyorkan 4 GB dan ke atas ruang penyimpanan: minimum 250 mb, disyorkan 1 GB dan di atas keperluan lain:

Apa yang perlu dilakukan sekiranya imej docker gagal Apa yang perlu dilakukan sekiranya imej docker gagal Apr 15, 2025 am 11:21 AM

Langkah Penyelesaian Masalah untuk Gagal Docker Image Build: Semak Sintaks Dockerfile dan Versi Ketergantungan. Semak jika konteks binaan mengandungi kod sumber dan kebergantungan yang diperlukan. Lihat log binaan untuk butiran ralat. Gunakan pilihan sasaran untuk membina fasa hierarki untuk mengenal pasti titik kegagalan. Pastikan anda menggunakan versi terkini Enjin Docker. Bina imej dengan --t [nama imej]: mod debug untuk debug masalah. Semak ruang cakera dan pastikan ia mencukupi. Lumpuhkan Selinux untuk mengelakkan gangguan dengan proses binaan. Tanya platform komuniti untuk mendapatkan bantuan, sediakan dockerfiles dan bina deskripsi log untuk cadangan yang lebih spesifik.

See all articles