Rumah > Artikel > Tutorial sistem > Penjelasan terperinci tentang seni bina Linux dan struktur kernel
Seperti yang ditunjukkan dalam rajah di bawah, seni bina Linux boleh dibahagikan secara meluas kepada ruang pengguna (Ruang Pengguna) dan ruang kernel (Ruang Kernel).
Ruang pengguna termasuk perpustakaan C dan aplikasi pengguna Sesetengah gambar rajah seni bina juga termasuk cangkerang.
Ruang kernel termasuk platform perkakasan, kod bergantung pada platform, kernel dan antara muka panggilan sistem.
Dalam mana-mana sistem operasi moden, terdapat lapisan. Mengapa lapisan perlu? Dari perspektif pengaturcara, mengasingkan asas Linux dan aplikasi membolehkan setiap satu menumpukan pada kawasannya sendiri, dengan itu meningkatkan kecekapan. Dari perspektif keselamatan, pelapisan adalah mengenai melindungi kernel. CPU moden biasanya melaksanakan mod kerja yang berbeza Sebagai contoh, ARM melaksanakan 7 mod kerja Dalam mod yang berbeza, CPU boleh melaksanakan arahan yang berbeza atau mengakses daftar yang berbeza. Jika semua aplikasi lapisan atas boleh memanggil daftar sesuka hati, sistem pengendalian tidak dapat dilaksanakan secara stabil. Oleh itu, satu disiplin baru telah muncul dalam sistem pengendalian - "sistem pengendalian moden".
Dalam seni bina X86, 4 tahap kebenaran berbeza dilaksanakan, iaitu Ring0 hingga Ring3. Di bawah kebenaran Ring0, arahan istimewa boleh dilaksanakan dan peranti IO boleh diakses, manakala di bawah kebenaran Ring3 terdapat banyak sekatan.
Android adalah lebih "gila". Semua aplikasi APK dijalankan pada mesin maya Java, dan aplikasi berada lebih jauh dari lapisan bawah.
Selain itu, ruang pengguna dan ruang kernel adalah dua keadaan pelaksanaan program yang berbeza Kami boleh menyelesaikan pemindahan dari ruang pengguna ke ruang kernel melalui "panggilan sistem" dan "gangguan perkakasan".
Dalam bahagian ini, kami menganalisis struktur kernel.
Seperti yang ditunjukkan dalam rajah di bawah, ia adalah gambar rajah struktur kernel Linux.
Lapisan SCI (System Call Interface), lapisan ini menyediakan satu set fungsi panggilan sistem standard untuk ruang pengguna aplikasi untuk mengakses Linux. Semasa menganalisis seni bina Linux sebelum ini, kami memperkenalkan bahawa mana-mana sistem pengendalian moden tidak akan membenarkan aplikasi lapisan atas mengakses terus lapisan bawah Dalam Linux, kernel menyediakan satu set antara muka standard yang boleh diakses oleh aplikasi lapisan atas .
PM (Pengurusan Proses), bahagian ini termasuk secara khusus mencipta proses (fork, exec), menghentikan proses (bunuh, keluar), dan mengawal komunikasi antara mereka (isyarat, dll.). Turut disertakan ialah penjadualan proses, yang mengawal cara proses aktif berkongsi CPU. Bahagian ini sudah dilakukan oleh Linux Semasa menulis pemacu, anda hanya perlu memanggil fungsi yang sepadan untuk melaksanakan fungsi ini, seperti penciptaan proses, komunikasi proses, dsb.
MM (Pengurusan Memori), fungsi utama pengurusan memori adalah untuk mengawal kawasan ingatan dikongsi selamat bagi pelbagai proses.
VFS (Sistem Fail Maya), sistem fail maya, menyembunyikan butiran khusus pelbagai sistem fail dan menyediakan antara muka bersatu untuk operasi fail. Di Linux, "semuanya adalah fail", dan fail ini dilaksanakan melalui VFS. Linux menyediakan model umum yang besar yang merangkumi set semua fungsi sistem fail. Seperti yang ditunjukkan dalam rajah di bawah, ia adalah gambar rajah struktur sistem fail maya.
Pemandu Peranti, bahagian ini adalah perkara yang perlu anda pelajari dan kuasai. Terdapat sejumlah besar kod dalam kernel Linux dalam bahagian pemacu peranti, yang digunakan untuk mengawal peranti perkakasan tertentu.
Pemacu Linux secara amnya dibahagikan kepada peranti rangkaian, peranti sekat, peranti aksara dan pelbagai peranti Kami hanya perlu menulis peranti bercirikan adalah jenis pemacu yang tidak mudah untuk dikelaskan peranti watak.
Timbunan protokol rangkaian, kernel Linux menyediakan pelbagai pelaksanaan protokol rangkaian.
Sebelum mempelajari pemacu Linux, anda perlu memahami dan menguasai seni bina Linux dan struktur kernel Linux
Atas ialah kandungan terperinci Penjelasan terperinci tentang seni bina Linux dan struktur kernel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!