racavedigger.com
Daily insights on Bitcoin and crypto markets
  • Facebook
  • Pinterest
  • Home
  • News

Apakah Linux menggunakan cincin perlindungan?

Berita

Cincin perlindungan

Ini memungkinkan seluruh hierarki segmen dan izin di antara mereka. Anda mungkin telah memperhatikan panggilan segmen silang terdengar persis seperti panggilan sistem. Jika Anda pernah melihat perakitan Linux X86, cara standar untuk melakukan panggilan sistem adalah int 0x80, yang meningkatkan interupsi 0x80 . Interupsi menghentikan prosesor dan pergi ke gerbang interupsi, yang kemudian bekerja sama dengan gerbang panggilan – itu mengubah tingkat hak istimewa dan memantul Anda ke beberapa area kode lainnya .

Apakah Linux menggunakan cincin perlindungan?

Kami menyebutkan bagaimana salah satu tugas utama dari sistem operasi adalah untuk mengimplementasikan keamanan; yaitu tidak mengizinkan satu aplikasi atau pengguna untuk mengganggu yang lain yang berjalan dalam sistem. Ini berarti aplikasi tidak boleh menimpa satu sama lain memori atau file, dan hanya mengakses sumber daya sistem seperti yang ditentukan oleh kebijakan sistem.

Namun, saat aplikasi berjalan, ia memiliki penggunaan eksklusif prosesor. Kami melihat cara kerjanya saat kami memeriksa proses di bab berikutnya. Memastikan aplikasi hanya mengakses memori yang dimilikinya diimplementasikan oleh sistem memori virtual, yang kami periksa dalam bab setelah selanjutnya. Poin pentingnya adalah bahwa perangkat keras bertanggung jawab untuk menegakkan aturan -aturan ini.

Antarmuka panggilan sistem yang telah kami periksa adalah pintu gerbang ke aplikasi untuk mendapatkan sumber daya sistem. Dengan memaksa aplikasi untuk meminta sumber daya melalui panggilan sistem ke dalam kernel, kernel dapat menegakkan aturan tentang jenis akses apa yang dapat disediakan. Misalnya, ketika aplikasi membuat panggilan sistem terbuka () untuk membuka file di disk, itu akan memeriksa izin pengguna terhadap izin file dan mengizinkan atau menolak akses.

4 . 1 . 1 tingkat hak istimewa

Perlindungan perangkat keras biasanya dapat dilihat sebagai satu set cincin konsentris di sekitar serangkaian operasi inti.

Tingkat hak istimewa pada x86

Gambar 4 . 1 . 1 . 1 cincin

Di cincin paling dalam adalah instruksi yang paling dilindungi; mereka yang hanya kernel yang diizinkan untuk menelepon. Misalnya, instruksi HLT untuk menghentikan prosesor tidak boleh dijalankan oleh aplikasi pengguna, karena akan menghentikan seluruh komputer dari bekerja. Namun, kernel harus dapat memanggil instruksi ini saat komputer ditutup secara sah. 1

Setiap cincin bagian dalam dapat mengakses instruksi yang dilindungi oleh cincin lebih jauh, tetapi tidak dilindungi oleh cincin lebih lanjut. Tidak semua arsitektur memiliki beberapa tingkat cincin seperti di atas, tetapi sebagian besar akan menyediakan setidaknya level “kernel” dan “pengguna”.

4 . 1 . 1 . 1 386 Model Perlindungan

Model Perlindungan 386 memiliki empat cincin, meskipun sebagian besar sistem operasi (seperti Linux dan Windows) hanya menggunakan dua cincin untuk mempertahankan kompatibilitas dengan arsitektur lain yang tidak memungkinkan tingkat perlindungan diskrit sebanyak mungkin.

386 mempertahankan hak istimewa dengan membuat setiap bagian kode aplikasi berjalan dalam sistem memiliki deskriptor kecil, disebut a deskriptor kode, yang menggambarkan, antara lain, tingkat hak istimewanya. Saat menjalankan kode aplikasi membuat lompatan ke beberapa kode lain di luar wilayah yang dijelaskan oleh deskriptor kode, tingkat hak istimewa target diperiksa. Jika lebih tinggi dari kode yang sedang berjalan, lompatan dilarang oleh perangkat keras (dan aplikasi akan macet).

4 . 1 . 1 . 2 meningkatkan hak istimewa

Aplikasi hanya dapat meningkatkan tingkat hak istimewa mereka dengan panggilan spesifik yang memungkinkannya, seperti instruksi untuk mengimplementasikan panggilan sistem. Ini biasanya disebut sebagai a Gerbang Panggilan karena mereka berfungsi seperti gerbang fisik; entri kecil melalui dinding yang tidak bisa ditembus. Ketika instruksi itu dipanggil, kita telah melihat bagaimana perangkat keras benar -benar menghentikan aplikasi yang sedang berjalan dan mengontrol tangan ke kernel. Kernel harus bertindak sebagai penjaga gerbang; memastikan bahwa tidak ada yang jahat yang datang melalui gerbang. Ini berarti harus memeriksa argumen panggilan sistem dengan hati -hati untuk memastikan tidak akan dibodohi untuk melakukan apa pun yang seharusnya tidak (jika bisa, itu adalah bug keamanan). Saat kernel berjalan di cincin terdalam, ia memiliki izin untuk melakukan operasi apa pun yang diinginkannya; Setelah selesai, ia akan mengembalikan kontrol kembali ke aplikasi yang akan kembali berjalan dengan tingkat hak istimewa yang lebih rendah.

4 . 1 . 1 . 3 Panggilan Sistem Cepat

Satu masalah dengan perangkap seperti yang dijelaskan di atas adalah bahwa mereka sangat mahal untuk diimplementasikan oleh prosesor. Ada banyak keadaan yang harus diselamatkan sebelum konteks dapat beralih. Prosesor modern telah menyadari overhead ini dan berusaha untuk menguranginya.

Untuk memahami mekanisme gerbang panggilan yang dijelaskan di atas membutuhkan penyelidikan skema segmentasi yang cerdik tetapi rumit yang digunakan oleh prosesor. Alasan asli untuk segmentasi adalah untuk dapat menggunakan lebih dari 16 bit yang tersedia dalam register untuk alamat, seperti yang diilustrasikan pada Gambar 4 . 1 . 1 . 3 . 1, x86 Mengatasi Segmentasi.

Segmentasi memperluas ruang alamat prosesor dengan membaginya menjadi bongkahan. Prosesor menyimpan register segmen khusus, dan alamat ditentukan oleh register segmen dan kombinasi offset. Nilai register segmen ditambahkan ke bagian offset untuk menemukan alamat akhir.

Gambar 4 . 1 . 1 . 3 . 1 x86 Mengatasi Segmentasi

Ketika x86 pindah ke register 32 bit, skema segmentasi tetap tetapi dalam format yang berbeda. Daripada ukuran segmen tetap, segmen diizinkan untuk ukuran apa pun. Ini berarti prosesor perlu melacak semua segmen dan ukurannya yang berbeda ini, yang digunakannya deskriptor. Deskriptor segmen yang tersedia untuk semua orang disimpan di Tabel Deskriptor Global atau GDT singkatnya. Setiap proses memiliki sejumlah register yang menunjukkan entri dalam GDT; Ini adalah segmen yang dapat diakses oleh proses (ada juga lokal tabel deskriptor, dan semuanya inta

Poin -Poin Kunci:

  • Linux mengimplementasikan keamanan untuk mencegah gangguan antara aplikasi dan pengguna.
  • Perangkat keras menegakkan aturan mengenai akses memori dan sumber daya.
  • Antarmuka panggilan sistem bertindak sebagai gateway untuk aplikasi untuk mengakses sumber daya sistem.
  • Tingkat hak istimewa menentukan akses ke instruksi dan operasi tertentu.
  • Model Perlindungan 386 memiliki empat cincin, tetapi sebagian besar sistem operasi hanya menggunakan dua.
  • Setiap kode aplikasi memiliki deskriptor kode yang mendefinisikan tingkat hak istimewanya.
  • Aplikasi hanya dapat meningkatkan tingkat hak istimewa mereka melalui panggilan tertentu, seperti panggilan sistem.
  • Kernel bertindak sebagai penjaga gerbang untuk memastikan keamanan panggilan sistem.
  • Panggilan sistem cepat bertujuan untuk mengurangi overhead switching konteks.
  • Skema Segmentasi X86 memperluas ruang alamat prosesor.

Pertanyaan:

  1. Apa tujuan menerapkan keamanan dalam sistem operasi?
  2. Bagaimana Perangkat Keras Menegakkan Aturan Akses Memori?
  3. Peran apa yang dimainkan antarmuka panggilan sistem dalam mengakses sumber daya sistem?
  4. Bagaimana tingkat hak istimewa digunakan dalam perlindungan perangkat keras?
  5. Berapa banyak cincin yang dimiliki model perlindungan 386?
  6. Apa itu deskriptor kode?
  7. Bagaimana aplikasi dapat meningkatkan tingkat hak istimewa mereka?
  8. Apa peran kernel sebagai penjaga gerbang?
  9. Apa tujuan panggilan sistem cepat?
  10. Mengapa segmentasi diperkenalkan dalam prosesor x86?
  11. Bagaimana cara kerja skema segmentasi x86?
  12. Apa itu deskriptor segmen dan di mana mereka disimpan?

Cincin perlindungan

Ini memungkinkan seluruh hierarki segmen dan izin di antara mereka. Anda mungkin telah memperhatikan panggilan segmen silang terdengar persis seperti panggilan sistem. Jika Anda pernah melihat perakitan Linux X86, cara standar untuk melakukan panggilan sistem adalah int 0x80, yang meningkatkan interupsi 0x80 . Interupsi menghentikan prosesor dan pergi ke gerbang interupsi, yang kemudian bekerja sama dengan gerbang panggilan – itu mengubah tingkat hak istimewa dan memantul Anda ke beberapa area kode lainnya .

Apakah Linux menggunakan cincin perlindungan?

Kami menyebutkan bagaimana salah satu tugas utama dari sistem operasi adalah untuk mengimplementasikan keamanan; yaitu tidak mengizinkan satu aplikasi atau pengguna untuk mengganggu yang lain yang berjalan dalam sistem. Ini berarti aplikasi tidak boleh menimpa satu sama lain memori atau file, dan hanya mengakses sumber daya sistem seperti yang ditentukan oleh kebijakan sistem.

Namun, saat aplikasi berjalan, ia memiliki penggunaan eksklusif prosesor. Kami melihat cara kerjanya saat kami memeriksa proses di bab berikutnya. Memastikan aplikasi hanya mengakses memori yang dimilikinya diimplementasikan oleh sistem memori virtual, yang kami periksa dalam bab setelah selanjutnya. Poin pentingnya adalah bahwa perangkat keras bertanggung jawab untuk menegakkan aturan -aturan ini.

Antarmuka panggilan sistem yang telah kami periksa adalah pintu gerbang ke aplikasi untuk mendapatkan sumber daya sistem. Dengan memaksa aplikasi untuk meminta sumber daya melalui panggilan sistem ke dalam kernel, kernel dapat menegakkan aturan tentang jenis akses apa yang dapat disediakan. Misalnya, ketika aplikasi membuat panggilan sistem terbuka () untuk membuka file di disk, itu akan memeriksa izin pengguna terhadap izin file dan mengizinkan atau menolak akses.

4 . 1 . 1 tingkat hak istimewa

Perlindungan perangkat keras biasanya dapat dilihat sebagai satu set cincin konsentris di sekitar serangkaian operasi inti.

Tingkat hak istimewa pada x86

Gambar 4 . 1 . 1 . 1 cincin

Di cincin paling dalam adalah instruksi yang paling dilindungi; mereka yang hanya kernel yang diizinkan untuk menelepon. Misalnya, instruksi HLT untuk menghentikan prosesor tidak boleh dijalankan oleh aplikasi pengguna, karena akan menghentikan seluruh komputer dari bekerja. Namun, kernel harus dapat memanggil instruksi ini saat komputer ditutup secara sah. 1

Setiap cincin bagian dalam dapat mengakses instruksi yang dilindungi oleh cincin lebih jauh, tetapi tidak dilindungi oleh cincin lebih lanjut. Tidak semua arsitektur memiliki beberapa tingkat cincin seperti di atas, tetapi sebagian besar akan menyediakan setidaknya level “kernel” dan “pengguna”.

4 . 1 . 1 . 1 386 Model Perlindungan

Model Perlindungan 386 memiliki empat cincin, meskipun sebagian besar sistem operasi (seperti Linux dan Windows) hanya menggunakan dua cincin untuk mempertahankan kompatibilitas dengan arsitektur lain yang sekarang memungkinkan sebanyak mungkin tingkat perlindungan diskrit.

386 mempertahankan hak istimewa dengan membuat setiap bagian kode aplikasi berjalan dalam sistem memiliki deskriptor kecil, disebut a deskriptor kode, yang menggambarkan, antara lain, tingkat hak istimewanya. Saat menjalankan kode aplikasi membuat lompatan ke beberapa kode lain di luar wilayah yang dijelaskan oleh deskriptor kode, tingkat hak istimewa target diperiksa. Jika lebih tinggi dari kode yang sedang berjalan, lompatan dilarang oleh perangkat keras (dan aplikasi akan macet).

4 . 1 . 1 . 2 meningkatkan hak istimewa

Aplikasi hanya dapat meningkatkan tingkat hak istimewa mereka dengan panggilan spesifik yang memungkinkannya, seperti instruksi untuk mengimplementasikan panggilan sistem. Ini biasanya disebut sebagai a Gerbang Panggilan karena mereka berfungsi seperti gerbang fisik; entri kecil melalui dinding yang tidak bisa ditembus. Ketika instruksi itu dipanggil, kita telah melihat bagaimana perangkat keras benar -benar menghentikan aplikasi yang sedang berjalan dan mengontrol tangan ke kernel. Kernel harus bertindak sebagai penjaga gerbang; memastikan bahwa tidak ada yang jahat yang datang melalui gerbang. Ini berarti harus memeriksa argumen panggilan sistem dengan hati -hati untuk memastikan tidak akan dibodohi untuk melakukan apa pun yang seharusnya tidak (jika bisa, itu adalah bug keamanan). Saat kernel berjalan di cincin terdalam, ia memiliki izin untuk melakukan operasi apa pun yang diinginkannya; Setelah selesai, ia akan mengembalikan kontrol kembali ke aplikasi yang akan kembali berjalan dengan tingkat hak istimewa yang lebih rendah.

4 . 1 . 1 . 3 Panggilan Sistem Cepat

Satu masalah dengan perangkap seperti yang dijelaskan di atas adalah bahwa mereka sangat mahal untuk diimplementasikan oleh prosesor. Ada banyak keadaan yang harus diselamatkan sebelum konteks dapat beralih. Prosesor modern telah menyadari overhead ini dan berusaha untuk menguranginya.

Untuk memahami mekanisme gerbang panggilan yang dijelaskan di atas membutuhkan penyelidikan skema segmentasi yang cerdik tetapi rumit yang digunakan oleh prosesor. Alasan asli untuk segmentasi adalah untuk dapat menggunakan lebih dari 16 bit yang tersedia dalam register untuk alamat, seperti yang diilustrasikan pada Gambar 4 . 1 . 1 . 3 . 1, x86 Mengatasi Segmentasi .

Segmentasi memperluas ruang alamat prosesor dengan membaginya menjadi bongkahan. Prosesor menyimpan register segmen khusus, dan alamat ditentukan oleh register segmen dan kombinasi offset. Nilai register segmen ditambahkan ke bagian offset untuk menemukan alamat akhir.

Gambar 4 . 1 . 1 . 3 . 1 x86 Mengatasi Segmentasi

Ketika x86 pindah ke register 32 bit, skema segmentasi tetap tetapi dalam format yang berbeda. Daripada ukuran segmen tetap, segmen diizinkan untuk ukuran apa pun. Ini berarti prosesor perlu melacak semua segmen dan ukurannya yang berbeda ini, yang digunakannya deskriptor. Deskriptor segmen yang tersedia untuk semua orang disimpan di Tabel Deskriptor Global atau GDT singkatnya. Setiap proses memiliki sejumlah register yang menunjukkan entri dalam GDT; Ini adalah segmen yang dapat diakses oleh proses (ada juga lokal tabel deskriptor, dan semuanya berinteraksi dengan segmen status tugas, tapi itu tidak penting sekarang). Situasi keseluruhan diilustrasikan pada Gambar 4 . 1 . 1 . 3 . 2, x86 segmen .

x86 segmen beraksi. Perhatikan bagaimana “panggilan jauh” berlalu melalui gerbang panggilan yang mengarahkan kembali ke segmen kode yang berjalan pada tingkat cincin yang lebih rendah. Satu-satunya cara untuk memodifikasi pemilih segmen kode, secara implisit digunakan untuk semua alamat kode, adalah melalui mekanisme panggilan. Dengan demikian mekanisme call-gate memastikan bahwa untuk memilih deskriptor segmen baru, dan karenanya mungkin mengubah tingkat perlindungan, Anda harus bertransisi melalui titik masuk yang diketahui.

Gambar 4 . 1 . 1 . 3 . 2 x86 segmen

Karena sistem operasi menetapkan register segmen sebagai bagian dari status proses, perangkat keras prosesor tahu segmen memori apa yang dapat diakses oleh proses saat ini dan dapat diakses perlindungan untuk memastikan proses tidak menyentuh apa pun yang tidak seharusnya. Jika itu keluar dari batas, Anda menerima a Kesalahan segmentasi, yang paling dikenal oleh sebagian besar programmer.

Gambar menjadi lebih menarik saat menjalankan kode perlu membuat panggilan ke kode yang berada di lain segmen. Seperti yang dibahas dalam Bagian 4 . 1 . 1 . 1, 386 model perlindungan, x86 melakukan ini dengan ini cincin, Di mana cincin 0 adalah izin tertinggi, Ring 3 adalah yang terendah, dan cincin dalam dapat mengakses cincin luar tetapi tidak sebaliknya.

Seperti yang dibahas dalam Bagian 4 . 1 . 1 . 2, meningkatkan hak istimewa, ketika kode Ring 3 ingin melompat ke kode Ring 0, pada dasarnya memodifikasi pemilih segmen kodenya untuk menunjuk ke segmen yang berbeda. Untuk melakukan ini, itu harus menggunakan spesial panggilan jauh instruksi perangkat keras mana yang memastikan melewati gerbang panggilan. Tidak ada cara lain untuk proses berjalan untuk memilih deskriptor segmen kode baru, dan karenanya prosesor akan mulai menjalankan kode pada offset yang diketahui di dalam segmen Ring 0, yang bertanggung jawab untuk mempertahankan integritas (e.G. tidak membaca kode sewenang -wenang dan mungkin berbahaya dan mengeksekusi itu. Tentu saja penyerang jahat akan selalu mencari cara untuk membuat kode Anda melakukan apa yang tidak Anda inginkan!).

Ini memungkinkan seluruh hierarki segmen dan izin di antara mereka. Anda mungkin telah memperhatikan panggilan segmen silang terdengar persis seperti panggilan sistem. Jika Anda pernah melihat perakitan Linux X86, cara standar untuk melakukan panggilan sistem adalah int 0x80, yang meningkatkan interupsi 0x80 . Interupsi menghentikan prosesor dan pergi ke gerbang interupsi, yang kemudian bekerja sama dengan gerbang panggilan – itu mengubah tingkat hak istimewa dan memantul Anda ke beberapa area kode lainnya .

Masalah dengan skema ini adalah itu lambat. Dibutuhkan banyak upaya untuk melakukan semua pemeriksaan ini, dan banyak register perlu disimpan untuk masuk ke kode baru. Dan dalam perjalanan keluar, semuanya perlu dipulihkan lagi.

Pada segmentasi sistem X86 modern dan sistem cincin empat tingkat tidak digunakan berkat memori virtual, dibahas sepenuhnya di Bab 6, memori virtual . Satu -satunya hal yang benar -benar terjadi dengan switching segmentasi adalah panggilan sistem, yang pada dasarnya beralih dari mode 3 (ruang pengguna) ke mode 0 dan melompat ke kode penangan panggilan sistem di dalam kernel. Dengan demikian prosesor memberikan tambahan Panggilan Sistem Cepat instruksi yang disebut sysenter (dan sysexit untuk mendapatkan kembali) yang mempercepat seluruh proses di atas panggilan int 0x80 dengan menghapus sifat umum dari panggilan jauh-yaitu kemungkinan transisi ke segmen apa pun pada tingkat cincin apa pun-dan membatasi panggilan untuk hanya transisi ke kode cincin 0 pada segmen tertentu dan offset, sebagaimana disimpan dalam register.

Karena sifat umum telah digantikan dengan begitu banyak informasi yang diketahui sebelumnya, seluruh proses dapat dipercepat, dan karenanya kami memiliki yang disebutkan di atas Panggilan Sistem Cepat. Hal lain yang perlu diperhatikan adalah bahwa keadaan tidak dipertahankan ketika kernel mendapatkan kendali. Kernel harus berhati -hati untuk tidak menghancurkan keadaan, tetapi juga berarti bebas untuk hanya menyimpan keadaan sesedikit yang diperlukan untuk melakukan pekerjaan itu, jadi bisa jauh lebih efisien tentang hal itu. Ini adalah filosofi yang sangat RISC, dan menggambarkan bagaimana garis kabur antara prosesor RISC dan CISC.

Untuk informasi lebih lanjut tentang bagaimana ini diimplementasikan dalam kernel Linux, lihat Bagian 8 . 1 . 1, Perpustakaan Kernel .

4 . 2 Cara lain untuk berkomunikasi dengan kernel

4 . 2 . 1 ioctl

4 . 3 sistem file

Tentang Proc, Sysfs, Debugfs, dll

Cincin perlindungan

Cincin perlindungan

Ring 0 adalah inti mode. Cincin 3 adalah pengguna mode. Cincin lainnya biasanya tidak digunakan. VirtualBox memuat kernel mesin virtual ke Cincin 1.

Eksekusi Mode Kernel vs Pengguna

Dalam mode kernel, kode pelaksanaan memiliki akses lengkap dan tidak terbatas ke perangkat keras yang mendasarinya. Itu dapat menjalankan instruksi CPU dan referensi alamat memori apa pun. Dalam mode pengguna, kode yang dieksekusi tidak memiliki kemampuan untuk secara langsung mengakses perangkat keras atau memori referensi. Kode yang berjalan dalam mode pengguna harus didelegasikan ke API sistem untuk mengakses perangkat keras atau memori.

Dua mode ini bukan label belaka; Mereka ditegakkan oleh perangkat keras CPU. Jika kode yang dijalankan dalam mode pengguna mencoba melakukan sesuatu di luar lingkupnya- suka, katakanlah, mengakses instruksi CPU istimewa atau memodifikasi memori yang tidak memiliki akses ke- pengecualian yang dapat dilemparkan. Alih -alih seluruh sistem Anda mogok, hanya aplikasi tertentu yang macet. Itulah nilai mode pengguna.

Hasil Pencocokan “”

Tidak ada hasil yang cocok “”

Pengantar Arsitektur Linux Inti: Cincin Perlindungan

Hosting Linux

Ini adalah artikel kami berikutnya tentang Arsitektur Inti Linux, dalam artikel sebelumnya kami belajar tentang berbagai mode prosesor seperti hak istimewa yang diizinkan untuk dijalankan kode. Jadi kami melihat mode kernel dan mode pengguna dan pada dasarnya cincin perlindungan yang akan kami lihat hari ini dalam diagram berikut. Kita bisa melihat cincin perlindungan yang berbeda.

Jadi biarkan’s Pergi dan mulai

Cincin perlindungan di x86:

Membiarkan’s pertama -tama bahas apa itu x86? Dan mengapa kita membutuhkannya?

x86 adalah arsitektur prosesor paling populer untuk komputer desktop dan sesuatu saat Anda melihat smartphone Anda dapat melihat prosesor ini i.e. paling populer arsitektur prosesor untuk perangkat seluler karena lebih efisien dengan pemanfaatan baterainya. Tapi sebagai komputer desktop Don’T benar -benar membutuhkan bahwa mereka memiliki sedikit perbedaan. Satu hal yang dapat Anda lihat pada X86 pada dasarnya’S hanya mengatakan beberapa nomor dengan 86 di akhir saya.e. x86 Jadi setiap kali Anda dapat melihat keluarga prosesor, Anda akan melihat banyak yang berbeda namun mereka akan selalu berakhir di 86.

Hosting Linux Hosting Linux

Jadi kita akan lebih dalam ke cincin perlindungan. Kita dapat melihat cincin perlindungan sebagai representasi grafis dari tingkat hak istimewa CPU yang telah kita bahas sebelumnya. Dalam artikel berikut, kita akan masuk jauh ke dalam arsitektur CPU dan bagaimana cincin perlindungan bekerja? Ini seperti naik level rendah dengannya.

Kami sudah tahu CPU itu’S “Mode kernel” itu sama dengan “Ring 0” dalam diagram dan CPU’S “Mode pengguna” harus menghadapinya “Cincin 3”. Di sini Anda harus berpikir tentang cincin 1 dan 2. Pada dasarnya dalam sistem operasi modern’s termasuk linux hanya menggunakan cincin 0 dan cincin 3 dalam arsitektur x86, karena cara sesuatu yang disebut a “Tabel halaman” diimplementasikan.

Ini seperti pasti cepat dan tidak ada orang itu’s itu. Inilah sebabnya kami menggunakan Ring 0 dan Ring 3.

Tabel halaman adalah file pemetaan memori yang digunakan oleh sistem memori virtual dalam sistem komputer. Meskipun arsitektur modern dapat memiliki x86 yang dapat memiliki semua cincin ini. Dalam cincin lingkungan virtualisasi tertentu, 1 sebenarnya digunakan. Itu’S sebenarnya adalah kotak virtual atau mesin virtual. Menempatkan VM’Kode Kernel S Sebenarnya di Ring 1 dan kode kernel yang sebenarnya dari mesin yang digarisbawahi ada di ring 0.

Membiarkan’s lanjutkan dan lihat mana yang sudah kita ketahui – jika semua proses dimulai pada ring 3 seperti yang telah kita bicarakan, bagaimana mereka menjalankan cincin 0 hak istimewa? Karena kernel yang berurusan dengan antarmuka atau proses atau proses pengguna sistem operasi yang digarisbawahi kita perlu melihat mode sistem file atau input-output hal-hal. Ini adalah cincin yang pada dasarnya dibatasi untuk menelepon 0 hak istimewa atau jenis hak istimewa kernel.

Jadi bagaimana hal itu terjadi? Seperti yang kita ketahui operasi input-output, manipulasi sistem file dll. Itu’s sesuatu yang disebut antarmuka panggilan sistem dan itu’S yang benar -benar jenis perantara lain di antara ruang pengguna yang merupakan item yang dieksekusi di Ring 3 dan ruang kernel yang dieksekusi di ring 0.

Jadi proses ruang pengguna pada dasarnya dapat digunakan. Antarmuka ini, itu’jenis API kernel untuk membuat kernel memohon beberapa fungsinya sendiri. Jadi biarkan’s Periksa apa itu panggilan sistem.

Sistem Panggilan: Ini adalah permintaan untuk kernel dengan proses pengguna untuk melakukan tindakan istimewa i.e. tindakan kernel.

Interupsi: ini adalah sinyal yang dipancarkan ke CPU yang mengatakan ” Ada acara yang membutuhkan perhatian langsung Anda”.

Apa yang dilakukan interupsi? Bagaimana itu berguna? Mereka dapat memulai panggilan sistem seperti interupsi berbasis perangkat lunak. Jadi kode pada arsitektur CPU yang lebih modern dapat menggunakan proses inisiasi lain alih -alih interupsi. Tapi proses utama di balik semuanya adalah sama.

Dia’S nuansa kecil kecil tetapi kadang -kadang interupsi ini lebih intensif, mereka harus memastikan. Jadi jenis arsitektur sistem yang lebih modern daripada interupsi itu dapat memiliki yang lain. Jadi ide yang digarisbawahi adalah sama.

Membiarkan’S Pergi ke Contoh Panggilan Sistem:

  1. Proses pengguna membutuhkan tindakan kernel sehingga memulai interupsi.
  2. Interupsi atau instruksi menempatkan CPU ke dalam cincin 0 dan meneruskan kontrol ke kernel.
  3. Kernel menentukan apakah proses pengguna harus diberikan panggilan sistem berdasarkan hak istimewa.
  4. Jika diberikan, kernel akan menjalankan panggilan sistem.
  5. Setelah selesai, kernel memulai perubahan ke cincin 3.
  6. Kernel memberikan kembali kontrol ke proses pengguna.

Mengunjungi- Hostdens

Kale Vishwajit

Vishwajit Kale berkobar ke kancah pemasaran digital pada tahun 2015 dan merupakan ahli strategi pemasaran digital Hostdens, sebuah perusahaan yang bertujuan untuk memberikan solusi hosting web yang andal. Vishwajit berpengalaman dalam pemasaran digital dan konten bersama dengan SEO. Dia suka menulis blog teknologi, bepergian dan membaca.

Kale Vishwajit

Vishwajit Kale berkobar ke kancah pemasaran digital pada tahun 2015 dan merupakan ahli strategi pemasaran digital Hostdens, sebuah perusahaan yang bertujuan untuk memberikan solusi hosting web yang andal. Vishwajit berpengalaman dalam pemasaran digital dan konten bersama dengan SEO. Dia suka menulis blog teknologi, bepergian dan membaca.

Lapisan sistem operasi

Sistem operasi dapat dipecah menjadi sejumlah lapisan diskrit, masing -masing dengan hak istimewa sendiri. Sistem ini dikenal sebagai cincin perlindungan. Sistem operasi mengelola komputer’sumber daya, seperti pemrosesan waktu di CPU dan akses ke memori. Komputer sering menjalankan beberapa proses perangkat lunak sekaligus, dan ini akan membutuhkan tingkat akses ke sumber daya dan perangkat keras yang berbeda.

Sistem operasi dapat dipecah menjadi sejumlah lapisan diskrit, masing -masing dengan hak istimewa sendiri. Sistem ini dikenal sebagai a cincin perlindungan.

Apa itu cincin perlindungan?

Sistem operasi mengelola komputer’sumber daya, seperti pemrosesan waktu di CPU dan akses ke memori. Komputer sering menjalankan beberapa proses perangkat lunak sekaligus, dan ini akan membutuhkan tingkat akses ke sumber daya dan perangkat keras yang berbeda.

Proses dieksekusi dalam berlapis “cincin”, di mana setiap cincin memiliki hak akses yang berbeda untuk sumber daya. Cincin pusat memiliki hak istimewa tertinggi, dan masing -masing lapisan selanjutnya mengalami penurunan akses. Implementasi umum dari cincin perlindungan untuk prosesor x86 (jenis CPU yang umum) memiliki empat cincin, diberi nomor dari 0 hingga 3, seperti yang dijelaskan di bawah ini.

Mengapa berlapis?

Ingin tetap
sedang belajar?

Konten ini diambil dari
Raspberry Pi Foundation Online Course,

Memahami sistem komputer

Lihat Kursus

Model berlapis menawarkan dua manfaat utama. Pertama, itu melindungi terhadap kecelakaan sistem. Kesalahan dalam cincin yang lebih tinggi (dengan akses yang lebih sedikit) biasanya dapat dipulihkan dari. Ini karena hanya cincin 0 yang memiliki akses langsung ke memori dan CPU, jadi jika proses yang berjalan di cincin luar macet, itu dapat dimulai kembali tanpa kehilangan data atau menyebabkan kesalahan dalam CPU. Kedua, ia menawarkan peningkatan keamanan. Untuk menjalankan instruksi yang membutuhkan lebih banyak akses ke sumber daya, proses tersebut harus meminta izin dari sistem operasi. OS kemudian dapat memutuskan apakah akan memberikan permintaan atau menolaknya. Proses seleksi ini membantu melindungi sistem Anda dari perilaku yang tidak diinginkan atau jahat.

Bagian cincin perlindungan

Cincin 0 (paling istimewa) dan 3 (paling tidak istimewa)

Ring 0 dapat diakses oleh inti, yang merupakan bagian sentral dari sebagian besar sistem operasi dan dapat mengakses semuanya. Kode yang berjalan di sini dikatakan sedang berjalan mode kernel. Proses yang berjalan dalam mode kernel dapat mempengaruhi seluruh sistem; Jika ada yang gagal di sini, itu mungkin akan menghasilkan shutdown sistem. Cincin ini memiliki akses langsung ke CPU dan memori sistem, jadi setiap instruksi yang membutuhkan penggunaan keduanya akan dieksekusi di sini.

Cincin 3, cincin yang paling tidak diistimewakan, dapat diakses oleh proses pengguna yang sedang berjalan mode pengguna. Di sinilah sebagian besar aplikasi yang berjalan di komputer Anda akan tinggal. Cincin ini tidak memiliki akses langsung ke CPU atau memori, dan karenanya harus memberikan instruksi apa pun yang melibatkan ini untuk berdering 0.

Cincin 1 dan 2

Cincin 1 dan 2 memiliki hak istimewa yang cincin 3 (mode pengguna) tidak. Ring 1 digunakan untuk berinteraksi dan mengontrol perangkat keras yang terhubung ke komputer Anda. Memutar lagu melalui speaker atau headphone, atau menampilkan video di monitor Anda, adalah contoh instruksi yang perlu dijalankan di cincin ini. Ring 2 digunakan untuk instruksi yang perlu berinteraksi dengan penyimpanan sistem, memuat atau menyimpan file. Izin semacam ini disebut memasukkan Dan keluaran, karena mereka melibatkan memindahkan data ke atau keluar dari memori kerja (RAM). Memuat dokumen Word dari penyimpanan, misalnya, akan berada di ring 2. Melihat dan mengedit dokumen akan jatuh ke Ring 3, lapisan aplikasi.

Diskusi

  • Pikirkan proses yang dapat berjalan di komputer Anda, seperti program kalkulator, atau memainkan game. Instruksi macam apa yang akan terlibat, dan cincin apa yang akan mereka gunakan?
  • Menurut Anda apa yang akan terjadi jika semua kode berjalan di ring 0?
Apakah Linux menggunakan Mac atau DAC? Apakah Linx 1010 memiliki GPS

Related Posts

Berita

Apakah vinil terdengar bagus di Sonos

Berita

Apakah Epson 4700 cetak kartu stok

Berita

Apakah headphone kerusakan volume tinggi

banner
banner

PROMO

racavedigger.com
© racavedigger.com 2026