Rumah > Artikel > Tutorial sistem > Analisis dan aplikasi kernel Linux 2.1 sistem aplikasi kernel tunggal dan mikrokernel
Daftar Kandungan
1. Dua bentuk sistem aplikasi 1.1 Sistem aplikasi tanpa sistem pengendalian
Untuk aplikasi SOC mudah, seperti kebanyakan aplikasi mikropengawal fungsi mudah, tidak perlu menggunakan sistem pengendalian dalam sistem Pada masa ini, aplikasi terus memanggil pemacu yang sepadan untuk mengendalikan perkakasan asas, seperti yang ditunjukkan dalam rajah :
Dengan struktur ini, perisian aplikasi memanggil terus pemacu peranti untuk mengendalikan perkakasan. Kelebihannya ialah: mudah, langsung dan cekap. Sesuai untuk sistem kecil dan ringkas. Untuk sistem yang kompleks, sistem aplikasi yang perlu berkongsi sumber perkakasan dalam fungsi yang berbeza, kaedah ini jelas tidak sesuai.
1.2 Sistem aplikasi dengan sistem pengendalian
Untuk sistem aplikasi yang kompleks, senario aplikasi di mana perkakasan dan sumber lain perlu dikongsi antara modul berfungsi, sistem pengendalian perlu ditambah pada sistem aplikasi. Untuk tujuan ini, sistem aplikasi adalah seperti yang ditunjukkan di sebelah kanan:
Seperti yang ditunjukkan dalam rajah, dengan laman web rasmi sistem pengendalian Hongqi Linux, aplikasi boleh menggunakan soket bersatu API sistem pengendalian tanpa mengira butiran perkakasan tertentu, yang kondusif untuk pembangunan piawai berskala besar dan meningkatkan kecekapan pembangunan.
Pemandu juga menggunakan soket peranti standard yang disediakan oleh sistem pengendalian untuk mengendalikan perkakasan yang berbeza. Ini melindungi lapisan sistem pengendalian daripada butiran perkakasan. Oleh itu, sistem pengendalian kelihatan lebih stabil dan cekap.
2. kernel Linux 2.1 kernel tunggal dan mikrokernel
Pada masa ini, sistem pengendalian mempunyai dua mod pelaksanaan kernel biasa:
Linux ialah pembelajaran linux kernel tunggal yang berjalan pada ruang alamat yang berasingan. Walau bagaimanapun, Linux telah menyerap penghalusan mikrokernel dan mempunyai reka bentuk modular, kernel preemptive, sokongan untuk benang kernel, dan keupayaan untuk memuatkan modul kernel secara dinamik yang dimiliki oleh mikrokernel. Pada masa yang sama, Linux juga menghalang kecacatan reka bentuk mikrokernelTutorial Pemacu Lanjutan Linux Terbenam Linux membenarkan semua modul berjalan dalam keadaan kernel dan fungsi panggilan secara langsung tanpa menggunakan penghantaran mesej seperti mikrokernel.
2.2Komposisi kernel Linux
Seperti yang ditunjukkan dalam rajah, kernel Linux terutamanya terdiri daripada lima bahagian:
2.3 Penjadualan Proses
Penjadualan proses berada di tengah-tengah sistem, dan bahagian lain sistem bergantung padanya. Proses Linux mempunyai sejumlah enam keadaan, dan proses itu boleh bertukar antara keadaan ini sepanjang kitaran hayatnya.
2.4 Pengurusan Memori Video
Fungsi utama pengurusan memori video adalah untuk mengawal domain memori utama dikongsi selamat bagi pelbagai proses. Setiap proses Linux pada pemproses 32-bit menikmati ruang 4G Biasanya 0-3G milik ruang pengguna dan 3G-4G milik ruang kernel. Seperti yang ditunjukkan di sebelah kanan
2.5 Sistem Fail Maya
Sistem fail maya Linux menyembunyikan butiran khusus pelbagai jenis perkakasan dan menyediakan soket bersatu untuk semua peranti. Ia adalah perwakilan setiap sistem fail tertentu.
Seperti yang ditunjukkan dalam rajah, sistem fail maya menyediakan soket panggilan bersatu untuk program aplikasi asas, yang bertanggungjawab untuk memanggil fungsi ahli dalam struktur operasi_fail yang dilaksanakan dalam sistem fail asas atau pemacu peranti tertentu.
2.6 soket rangkaian
Soket rangkaian menyediakan akses kepada pelbagai piawaian rangkaian dan sokongan untuk pelbagai perkakasan rangkaian. Soket rangkaian Linux dibahagikan kepada
2.7 Komunikasi antara proses
Komunikasi antara proses bertanggungjawab untuk komunikasi antara proses, termasuk semaphore, memori dikongsi, baris gilir mesej, paip, soket domain UNIX, dsb.
3. Ruang inti dan ruang pengguna
CPU moden akan membezakan mod kerja yang berbeza secara dalaman untuk membezakan operasi tahap dan kebenaran yang berbeza.
Sebagai contoh, 8 mod kerja ARM:
Dalam persekitaran ARM, sistem Linux menggunakan sepenuhnya ciri perkakasan CPU untuk melaksanakan mod pengendalian dua peringkat, mod pengguna (usr) dan mod pengurusan (svc). Sejajar dengan itu, terdapat dua jenis ruang dalam sistem Linux:
3.1 Tambahan: Mengenai gangguan lembut
qquad di sini mempunyai carta mod kerja abnormal ARM
Semasa pelaksanaan biasa, ARM berada dalam mod pengguna Apabila CPU melaksanakan arahan swi, ia akan memasuki mod sistem (SVCmode) secara manual dan melompat ke jadual vektor pengecualian. Lompat ke fungsi yang sepadan melalui jadual vektor untuk bertindak balas kepada swi.
Mod SVC di sini ialah singkatan kepada SupervisorCall, yang dalam bahasa Inggeris ialah supervisor call.
4. Pemacu peranti Linux 4.1 Klasifikasi peranti dalam sistem Linux
Sistem Linux membahagikan perkakasan persisian kepada tiga kategori utama:
Sistem berkaitan pemacu 4.2linux
Seperti yang ditunjukkan dalam rajah, kedua-dua peranti aksara dan peranti sekat dipetakan ke fail dan direktori dalam sistem fail Linux.
Aplikasi boleh mengakses peranti rangkaian melalui soket Tutorial Pemacu Lanjutan Linux Terbenam, dan menggunakan dua kaedah untuk mengakses peranti aksara dan menyekat peranti:
Atas ialah kandungan terperinci Analisis dan aplikasi kernel Linux 2.1 sistem aplikasi kernel tunggal dan mikrokernel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!