Apakah subsistem kernel linux?
Terdapat 5 subsistem kernel Linux: 1. Sistem Kawalan Penjadualan Proses (SCHED) 2. Sistem Pengurusan Memori (MM), yang fungsi utamanya adalah untuk mengawal pelbagai proses untuk berkongsi kawasan memori utama dengan selamat; 3. Sistem fail maya (VFS); 4. Antara muka rangkaian (NET);
Persekitaran pengendalian tutorial ini: sistem Ubuntu 16.04, komputer Dell G3.
Kernel:
Dalam sains komputer, ia adalah program komputer yang digunakan untuk mengurus permintaan I/O (input dan output) data yang dikeluarkan oleh perisian, menterjemahkan permintaan ini. menyediakan arahan untuk pemprosesan data dan diproses oleh unit pemprosesan pusat (CPU) dan komponen elektronik lain dalam komputer Ia adalah bahagian paling asas dalam sistem pengendalian moden. Ia adalah perisian yang menyediakan akses selamat kepada perkakasan komputer untuk banyak aplikasi Akses ini terhad, dan kernel menentukan bila dan berapa lama program boleh beroperasi pada bahagian tertentu perkakasan. Beroperasi secara langsung pada perkakasan adalah sangat kompleks. Oleh itu, kernel biasanya menyediakan kaedah abstraksi perkakasan untuk menyelesaikan operasi ini. Melalui mekanisme komunikasi antara proses dan panggilan sistem, proses aplikasi secara tidak langsung boleh mengawal sumber perkakasan yang diperlukan (terutamanya pemproses dan peranti IO).
Apakah subsistem kernel Linux
Inti Linux terutamanya terdiri daripada penjadualan proses (SCHED), pengurusan memori (MM) , dan sistem fail maya Ia terdiri daripada 5 subsistem (VFS), antara muka rangkaian (NET) dan komunikasi antara proses (IPC), seperti yang ditunjukkan dalam rajah di bawah.
1 Penjadualan Proses
Banyak sistem kawalan penjadualan proses Akses. satu proses ke CPU membolehkan berbilang proses dilaksanakan "secara mikro dan selari makro" dalam CPU. Penjadualan proses berada di tengah-tengah sistem, dan subsistem lain dalam kernel bergantung padanya kerana setiap subsistem perlu menggantung atau menyambung semula proses.
Seperti yang ditunjukkan dalam rajah di bawah, proses Linux bertukar antara beberapa keadaan.
Peralihan keadaan proses Linux
Dalam pengaturcaraan pemacu peranti, apabila sumber yang diminta tidak dapat dipenuhi, pemacu biasanya akan menjadualkan proses lain untuk dilaksanakan dan membuat proses ini masuk Dalam keadaan tidur, ia tidak akan dikejutkan dan memasuki keadaan sedia sehingga sumber yang diminta dikeluarkan. Tidur terbahagi kepada tidur terganggu dan tidur tidak terganggu Perbezaan antara keduanya ialah tidur terganggu akan bangun apabila menerima isyarat.
Proses yang sepenuhnya dalam keadaan TASK_UNINTERRUPTIBLE bahkan tidak boleh "dibunuh", jadi kernel selepas Linux 2.6.26 juga mempunyai keadaan TASK_KILLABLE, yang sama dengan "TASK_WAKEKILL|TASK_UNINTERRUPTIBLE" dan boleh bertindak balas kepada maut isyarat.
Dalam kernel Linux, struktur task_struct (include/linux/sched.h) digunakan untuk menerangkan proses Struktur ini mengandungi sumber memori, sumber sistem fail, sumber fail, sumber tty dan isyarat yang menerangkan proses untuk mengendalikan dll. Benang Linux dilaksanakan menggunakan model proses ringan Apabila benang dibuat dalam ruang pengguna melalui API pthread_create(), pada asasnya kernel hanya mencipta task_struct baharu dan mengarahkan semua penunjuk sumber task_struct baharu kepada yang menciptanya penunjuk tugas_struktur.
Sebahagian besar proses (dan berbilang rangkaian dalam proses) dicipta oleh aplikasi ruang pengguna Apabila mereka mempunyai keperluan untuk sumber asas dan akses perkakasan, mereka akan memasuki ruang kernel melalui panggilan sistem. Kadangkala, dalam pengaturcaraan kernel, jika beberapa tugas perlu dilaksanakan secara serentak, utas kernel boleh dimulakan, dan utas ini tidak mempunyai ruang pengguna. Fungsi untuk memulakan utas kernel ialah: pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags);
Pengurusan memori
Fungsi utama pengurusan memori adalah untuk mengawal pelbagai proses untuk berkongsi kawasan ingatan utama dengan selamat. Pengurusan memori Linux melengkapkan penukaran daripada memori maya kepada memori fizikal untuk setiap proses apabila CPU menyediakan unit pengurusan memori (MMU). Linux 2.6 memperkenalkan sokongan untuk CPU tanpa MMU.
Seperti yang ditunjukkan dalam rajah, secara amnya, setiap proses Linux pada pemproses 32-bit menikmati 4GB ruang memori, 0~3GB kepunyaan ruang pengguna, 3~4GB kepunyaan ruang kernel, dan ruang kernel mempunyai kesan tertentu pada memori konvensional , memori peranti I/O dan memori mewah mempunyai kaedah pemprosesan yang berbeza. Sempadan khusus antara ruang kernel dan ruang pengguna boleh dilaraskan Di bawah pilihan konfigurasi kernel Ciri Kernel→ Pemisahan memori, sempadan boleh ditetapkan kepada 2GB atau 3GB.
Ruang alamat proses Linux
Seperti yang ditunjukkan dalam rajah di atas, pengurusan memori keseluruhan kernel Linux adalah agak besar, termasuk algoritma Buddy asas, yang digunakan untuk mengurus setiap halaman. Penghunian, pengalokasi papak dalam ruang kernel dan pengurusan sekunder perpustakaan C dalam ruang pengguna. Selain itu, kernel juga menyediakan sokongan cache halaman, menggunakan memori untuk cache cakera, dan benang penyiram maklumat peranti sokongan setiap digunakan untuk membuang cache halaman kotor kembali ke cakera. Kswapd (proses swap) ialah benang kernel yang digunakan untuk kitar semula halaman (termasuk halaman bersandarkan fail dan halaman tanpa nama) dalam Linux Ia menggunakan algoritma yang paling kurang digunakan (LRU) untuk kitar semula memori.
3. Sistem fail maya
Seperti yang ditunjukkan dalam rajah,
Sistem Fail Maya Linux
Sistem fail maya Linux menyembunyikan butiran khusus pelbagai perkakasan dan menyediakan antara muka bersatu untuk semua peranti. Selain itu, ia adalah bebas daripada setiap sistem fail tertentu dan merupakan abstraksi pelbagai sistem fail. Ia menyediakan vfs_read(), vfs_write() bersatu dan antara muka lain untuk aplikasi lapisan atas, dan memanggil fungsi ahli struktur operasi_fail yang dilaksanakan dalam sistem fail asas atau pemacu peranti tertentu.
4. Antara muka rangkaian
Antara muka rangkaian menyediakan akses kepada pelbagai standard rangkaian dan sokongan untuk pelbagai perkakasan rangkaian. Seperti yang ditunjukkan dalam Rajah 3.8, antara muka rangkaian dalam Linux boleh dibahagikan kepada protokol rangkaian dan pemacu rangkaian Bahagian protokol rangkaian bertanggungjawab untuk melaksanakan setiap kemungkinan protokol penghantaran rangkaian peranti mempunyai pemacu peranti yang sepadan.
Seni bina rangkaian Linux
Kernel Linux menyokong pelbagai jenis susunan protokol, seperti Internet, UNIX, CAN, NFC, Bluetooth, WiMAX, IrDA, dll. lapisan atas Aplikasi secara seragam menggunakan antara muka soket.
5. Komunikasi antara proses
Komunikasi antara proses menyokong komunikasi antara proses Linux menyokong pelbagai mekanisme komunikasi antara proses, termasuk semaphore, memori bersama, Mesej baris gilir, paip, soket domain UNIX, dsb. Mekanisme ini boleh membantu berbilang proses, akses yang saling eksklusif kepada berbilang sumber, penyegerakan antara proses dan penghantaran mesej. Dalam aplikasi Linux sebenar, orang ramai cenderung menggunakan soket domain UNIX dan bukannya baris gilir mesej dan mekanisme lain dalam Sistem V IPC. Kernel Android telah menambah kaedah komunikasi antara proses Binder baharu.
Kebergantungan antara lima komponen kernel Linux adalah seperti berikut:
Hubungan antara penjadualan proses dan pengurusan memori: kedua-dua sub Sistem bergantung antara satu sama lain. Dalam persekitaran berbilang program, jika program ingin dijalankan, proses mesti dibuat untuknya Perkara pertama yang perlu dilakukan semasa membuat proses ialah memuatkan program dan data ke dalam memori.
Hubungan antara komunikasi antara proses dan pengurusan memori: Subsistem komunikasi antara proses bergantung pada pengurusan memori untuk menyokong mekanisme komunikasi memori dikongsi Mekanisme ini membolehkan dua proses mempunyai sendiri ruang peribadi Selain itu, anda juga boleh mengakses kawasan memori biasa.
Hubungan antara sistem fail maya dan antara muka rangkaian: Sistem fail maya menggunakan antara muka rangkaian untuk menyokong Sistem Fail Rangkaian (NFS), dan juga menggunakan pengurusan memori untuk menyokong RAMDISK peranti.
Hubungan antara pengurusan memori dan sistem fail maya: Pengurusan memori menggunakan sistem fail maya untuk menyokong pertukaran, dan proses pertukaran dijadualkan secara tetap oleh penjadual Inilah sebabnya pengurusan memori bergantung pada penjadualan proses. Apabila peta memori yang diakses oleh proses ditukar, pengurusan memori mengeluarkan permintaan kepada sistem fail maya dan, pada masa yang sama, menangguhkan proses yang sedang berjalan.
Selain kebergantungan ini, semua subsistem dalam kernel juga bergantung pada beberapa sumber biasa. Sumber ini termasuk API yang digunakan oleh semua subsistem, seperti fungsi untuk memperuntukkan dan melepaskan ruang memori, fungsi untuk mengeluarkan amaran atau mesej ralat dan antara muka penyahpepijatan yang disediakan oleh sistem.
Cadangan berkaitan: "Tutorial Video Linux"
Atas ialah kandungan terperinci Apakah subsistem kernel linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Sebagai bahagian teras sistem pengendalian, kernel Linux bertanggungjawab untuk fungsi penting seperti mengurus sumber perkakasan dan menyediakan panggilan sistem. Artikel ini akan menyelidiki lima bahagian utama kernel Linux, termasuk pengurusan proses, sistem fail, komunikasi rangkaian, pemacu peranti dan pengurusan memori, dan menyediakan pengenalan terperinci dan contoh kod. 1. Penciptaan Proses Pengurusan Proses Dalam kernel Linux, penciptaan proses dilaksanakan melalui panggilan sistem fork(). Berikut ialah kod contoh mudah: #include

Artikel sebelumnya menganalisis penciptaan jadual halaman untuk permulaan RISC-V Linux Telah disebutkan bahawa alamat kemasukan RISC-V Linux mesti sejajar 2M Hari ini saya akan bercakap tentang cara menyelesaikan masalah penjajaran 2M, atau cara mengoptimumkan sebahagian daripada ingatan itu.

Ia panjang dan mempunyai banyak kandungan teknikal, jadi klik untuk mengikutinya dan anda tidak akan tersesat. Prakata: Memahami Kernel Linux Sistem komputer ialah simbiosis perkakasan dan perisian ia saling bergantung dan tidak boleh dipisahkan. Perkakasan komputer Langkah pemindahan kernel Linux termasuk peranti persisian, pemproses, memori, pemacu keras dan peranti elektronik lain yang membentuk silinder komputer. Dan tanpa perisian untuk mengendalikan dan mengawalnya, ia tidak boleh berfungsi dengan sendirinya. Perisian yang melengkapkan kerja kawalan ini dipanggil sistem pengendalian Dalam terminologi Linux, ia dipanggil "kernel" atau "teras". Modul utama (atau komponen) kernel Linux dibahagikan kepada bahagian berikut: pengurusan storan, pengurusan CPU dan proses, sistem fail, pengurusan peranti dan pemacu, komunikasi rangkaian forum Linux dan sistem

Hello pembaca yang dikasihi! Di sini, saya berbesar hati untuk berkongsi dengan anda pengalaman dan kemahiran berharga yang telah saya kumpulkan sebagai jurutera rangkaian kanan dengan kemahiran profesional saya dalam pembangunan dan pengoptimuman tindanan protokol TCP kernel Linux. Saya percaya bahawa melalui artikel ini, kita boleh belajar daripada satu sama lain dan membincangkannya, dan membawa bahan rujukan yang praktikal dan berguna kepada anda yang mempunyai minat yang kuat dalam bidang ini atau sedang mengusahakannya. 1. Penubuhan sambungan TCP Penubuhan sambungan TCP ialah urus niaga utama timbunan protokol TCP, tetapi bukan perkara biasa untuk menghadapi banyak masalah sambungan. Selepas pertimbangan yang teliti dan penyahpepijatan terperinci, saya menemui beberapa masalah biasa dan praktikal serta penyelesaiannya, termasuk mencegah serangan banjir SYN (dengan melaraskan parameter sistem) dan menangani kesesakan rangkaian (iaitu, menggunakan TCPFastOp

Membincangkan pandangan bahawa kernel Linux memainkan peranan penting dalam reka bentuk dan pelaksanaan kernel Linux melalui analisis mendalam tentang reka bentuk kernel Linux dan aplikasi praktikal, ia mendedahkan kedudukan dan pengaruhnya yang menonjol dalam bidang ini. 1. Pengurusan memori yang dioptimumkan Dengan menggunakan teknologi pengurusan memori maya, kernel Linux boleh melengkapkan peruntukan memori dan kitar semula dengan cekap. Dengan bantuan algoritma halaman gantian, kernel Linux direka bentuk dan dilaksanakan untuk mengendalikan hubungan pemetaan antara memori fizikal dan memori maya dengan tepat. Pelarasan fleksibel boleh dibuat berdasarkan keperluan khusus aplikasi, dengan itu meningkatkan prestasi sistem keseluruhan. 2. Kernel pengurusan proses yang berkuasa menggunakan teknologi pelbagai tugas yang sangat baik untuk membolehkan pelbagai proses wujud bersama secara harmoni dalam satu sistem. Dirumus dengan teliti

Ini ialah artikel 1500 perkataan yang meneroka pengedaran kod sumber kernel Linux secara mendalam. Oleh kerana ruang yang terhad, kami akan menumpukan pada struktur organisasi kod sumber kernel Linux dan menyediakan beberapa contoh kod khusus untuk membantu pembaca memahami dengan lebih baik. Kernel Linux ialah kernel sistem pengendalian sumber terbuka yang kod sumbernya dihoskan pada GitHub. Keseluruhan pengedaran kod sumber kernel Linux adalah sangat besar, mengandungi ratusan ribu baris kod, melibatkan berbilang subsistem dan modul yang berbeza. Untuk mendapatkan pemahaman yang lebih mendalam tentang kod sumber kernel Linux

Sistem Android dan kernel Linux adalah dua entiti yang berkait rapat, dan hubungan antara mereka adalah rapat dan kompleks. Dalam sistem Android, kernel Linux memainkan peranan penting, menyediakan pemacu perkakasan asas dan sokongan panggilan sistem untuk sistem Android. Artikel ini akan meneroka hubungan antara sistem Android dan kernel Linux, cara ia berinteraksi dan berfungsi bersama, serta menyediakan beberapa contoh kod khusus. Android ialah sistem pengendalian mudah alih yang dibangunkan berdasarkan kernel Linux dan digunakan terutamanya untuk peranti mudah alih seperti telefon pintar dan tablet. L

Kernel Linux ialah teras sistem pengendalian dan mengawal akses kepada sumber sistem seperti CPU, peranti I/O, memori fizikal dan sistem fail. Semasa proses but dan semasa sistem berjalan, kernel menulis pelbagai mesej ke penimbal cincin kernel. Mesej ini termasuk pelbagai maklumat tentang operasi sistem.
