Adakah reka bentuk kernel Linux sudah lapuk?

Adakah reka bentuk kernel Linux sudah lapuk?

Linux telah membuat kemajuan besar selama bertahun-tahun, maju jauh dari tempat ketika ia bermula. Tetapi seorang redditor baru-baru ini bertanya-tanya apakah Linux mengalami reka bentuk kernel yang ketinggalan zaman. Dia mengemukakan soalannya di subreddit Linux dan mendapat beberapa jawapan menarik.

Ronis_BR memulakan utas dengan komen berikut:

Saya telah menjadi pengguna Linux sejak tahun 2004. Saya tahu banyak cara menggunakan sistem ini, tetapi saya tidak terlalu faham mengenai apa yang ada di bawah kernel. Sebenarnya, pengetahuan saya berhenti dalam bagaimana menyusun kernel saya sendiri.

Akan tetapi, saya ingin bertanya kepada para saintis komputer di sini, berapa lama kernel Linux berkenaan dengan reka bentuknya? Maksud saya, ia dimulakan pada tahun 1992 dan beberapa ciri tidak berubah. Sebaliknya, saya rasa canggih reka bentuk kernel OS (jika ini ada ...) semestinya telah maju.

Adakah mungkin untuk menyatakan pada titik apakah reka bentuk kernel Linux lebih maju berbanding dengan reka bentuk kernel Windows, macOS, FreeBSD? (Perhatikan maksud saya reka bentuk, bukan mana yang lebih baik. Sebagai contoh, HURD mempunyai reka bentuk yang hebat, tetapi cukup mudah untuk mengatakan bahawa Linux jauh lebih maju sekarang).

Lagi di Reddit

Sesama redditor Linuxnya bertindak balas dengan pemikiran mereka mengenai reka bentuk kernel:

ExoticMandibles : "" Usang "? Tidak. Reka bentuk kernel Linux mendapat maklumat yang baik mengenai reka bentuk kernel moden. Hanya ada pilihan yang harus dibuat, dan Linux menggunakan pilihan tradisional.

Ketegangan dalam reka bentuk kernel adalah antara "keselamatan / kestabilan" dan "prestasi". Mikrokernel meningkatkan keselamatan dengan kos prestasi. Sekiranya anda mempunyai mikrokernel minimal kecil, di mana kernel memudahkan bercakap dengan perkakasan, pengurusan memori, IPC, dan lain-lain, ia akan mempunyai permukaan API yang agak kecil sehingga sukar untuk diserang. Dan jika anda mempunyai pemacu sistem fail buggy / pemacu grafik / dan lain-lain, pemacu boleh mogok tanpa melepaskan kernel dan mungkin dapat dimulakan semula dengan tidak berbahaya. Kestabilan unggul! Keselamatan yang unggul! Semua perkara baik.

Kelemahan pendekatan ini adalah overhead yang kekal dan tidak dapat dielakkan dari semua IPC itu. Sekiranya program anda ingin memuat data dari file, ia harus meminta pemacu sistem fail, yang bermaksud IPC untuk memproses pertukaran konteks proses, dan dua peralihan dering. Kemudian pemacu sistem fail meminta kernel untuk bercakap dengan perkakasan, yang bermaksud dua peralihan dering. Kemudian pemacu sistem fail menghantar balasannya, yang bermaksud lebih banyak peralihan dua dering IPC, dan pertukaran konteks yang lain. Jumlah overhead: dua suis konteks, dua panggilan IPC, dan enam peralihan dering. Sangat mahal!

Kernel monolitik melipat semua pemacu peranti ke kernel. Oleh itu, pemacu grafik kereta boleh menurunkan kernel, atau jika mempunyai lubang keselamatan, ia mungkin dapat dieksploitasi untuk membahayakan sistem. Tetapi! Sekiranya program anda perlu memuat sesuatu dari cakera, ia memanggil kernel, yang melakukan peralihan dering, bercakap dengan perkakasan, menghitung hasilnya, dan mengembalikan hasilnya, melakukan peralihan dering yang lain. Jumlah overhead: peralihan dua cincin. Lebih murah! Jauh lebih pantas!

Ringkasnya, pendekatan mikrokernel mengatakan "Mari tinggalkan prestasi untuk keselamatan dan kestabilan yang unggul"; pendekatan kernel monolitik mengatakan "mari kita jaga prestasi dan perbaiki masalah keselamatan dan kestabilan ketika mereka muncul." Dunia nampaknya menerima jika tidak memilih pendekatan ini.

ps Windows NT tidak pernah menjadi mikrokernel tulen, tetapi mikrokernel-ish untuk masa yang lama. NT 3.x mempunyai pemacu grafik sebagai proses pengguna, dan sejujurnya NT 3.x sangat stabil. NT 4.0 memindahkan pemacu grafik ke kernel; ia kurang stabil tetapi lebih berprestasi. Ini adalah langkah yang popular. ”

F22Rapture : “Manfaat praktikal untuk pendekatan kernel monolitik seperti yang berlaku pada Linux adalah mendorong vendor perkakasan untuk memasukkan driver mereka ke kernel, kerana beberapa vendor perkakasan ingin mengikuti perubahan antarmuka kernel sendiri. Oleh kerana kebanyakan pemacu berada di dalam pohon, antara muka dapat terus diperbaiki tanpa perlu menyokong API lama. Kernel hanya menjamin mereka tidak akan mematahkan ruang pengguna, bukan kernelspace (pemacu), dan ada banyak perubahan ketika datang ke antara muka pemacu yang mendorong vendor untuk mengarahkan pemacu mereka. Nvidia adalah salah satu daripada beberapa vendor yang dapat saya fikirkan yang mempunyai sumber untuk mengekalkan pemacu mereka sendiri berdasarkan sepenuhnya pada komponen proprietari.

Saya mengesyaki bahawa jika pemandu adalah pulau kecil mereka sendiri yang dipisahkan oleh antara muka yang stabil, kami mungkin tidak mempunyai seberapa banyak syarikat yang bersedia membuka kod mereka. "

Mallardtheduck : "Dalam konteks ini," monolitik "tidak merujuk kepada memiliki (hampir) semua kernel dan kod pemacu dalam pohon sumber tunggal, ini merujuk kepada fakta bahawa keseluruhan kernel dan pemacu berjalan sebagai satu" tugas "tunggal dalam ruang alamat tunggal.

Ini berbeza dengan "mikrokernel" di mana pelbagai elemen kernel dan pemacu berfungsi sebagai tugas yang berasingan dengan ruang alamat yang berasingan.

Seperti disebutkan, kernel Windows pada dasarnya monolitik, tetapi pemacu masih dikembangkan secara berasingan. macOS menggunakan sejenis kernel hibrid yang menggunakan mikrokernel pada intinya tetapi masih mempunyai hampir semua perkara dalam satu "tugas", walaupun hampir semua pemacu dibangunkan / dibekalkan oleh Apple. "

Slabity : “Orang-orang telah memperdebatkan hal ini sejak sebelum 2004. Perbahasan Tanenbaum-Torvalds pada tahun 1999 1992 adalah contoh besar argumen antara reka bentuk kernel mikro dan monolitik.

Saya secara peribadi adalah sebahagian daripada kem mikrokernel. Ia lebih bersih, lebih selamat dan mudah dibawa. Dalam hal ini, desain kernel sudah ketinggalan zaman saat dibuat.

… Linux telah mengatasi banyak masalah yang timbul dengan reka bentuk kernel monolitik. Ia menjadi modular, dasar kodnya yang ketat menjadikannya agak selamat, dan saya tidak fikir ada yang akan membantah betapa mudahnya. "

TEchnicolourSocks : “Hanya ada satu cara reka bentuk kernel yang betul dan itu adalah cara TempleOS.

Ditulis dalam HolyC, tidak berangkaian, hanya dering-0. Seperti yang Tuhan kehendaki. "

Scandalousmambo : "Sifat mengembangkan sistem yang rumit seperti kernel Linux berarti selalu akan" ketinggalan zaman "menurut orang-orang yang berada di kursi tinggi ketika pertama kali dirancang.

Sistem operasi ini mungkin mewakili puluhan juta jam pekerja.

Boleh diganti? Pasti. Adakah ia? Tidak. "

Grumbel : "Dari segi praktikal yang murni, tidak akan banyak perbezaan lagi. Kembali pada hari itu, HURD agak keren dengan sistem fail ruang pengguna dan sebagainya. Tetapi Linux sejak itu memperoleh sebahagian besar fungsi tersebut. Sekiranya anda ingin menulis sistem fail, pemacu usb atau peranti input di ruang pengguna, anda boleh, tidak perlu menggodam kernel. Anda kini boleh menambal kernel pada waktu runtime jika anda benar-benar mahu.

Falsafah Linux untuk tidak menulis pemacu buggy yang menghancurkan kernel di tempat pertama, dan bukannya menjadikannya sangat kuat terhadap pemacu buruk juga nampaknya berfungsi dengan baik di dunia nyata. Kita mungkin harus berterima kasih kepada USB kerana itu, kerana perkakasan yang bersifat deskriptif sendiri menghilangkan keperluan untuk menulis pemacu baru untuk setiap alat baru yang anda pasangkan ke PC.

Jadi keseluruhan perbahasan reka bentuk sekarang lebih akademik daripada dulu, kerana tidak banyak lagi ciri yang akan anda perolehi dengan perubahan reka bentuk sahaja dan anda tidak dapat menerapkannya menjadi kernel monolitik. "

KugelKurt : “Walaupun banyak perbincangan di sini adalah mengenai mikrokernel vs kernel monolitik, penyelidikan yang lebih baru masuk ke dalam bahasa pengaturcaraan.

Sekiranya anda memulakan kernel yang sama sekali baru hari ini, kemungkinan tidak akan ditulis dalam C. Singularity dan Midori projek Microsoft meneroka kemungkinan kernel kod C # / terurus.

OS bukan penyelidikan yang paling terkenal tanpa kernel C mungkin Haiku yang ditulis dalam C ++. "

OmniaVincitVeritas : “Sudah ketinggalan zaman ketika pertama kali dibuat dan masih begitu. Tetapi, seperti yang kita ketahui, kemajuan teknikal hampir tidak pernah berjaya sehingga penyelesaian yang unggul dari segi teknikal / ilmiah naik ke puncak dalam jangka pendek; begitu banyak perkara lain mempengaruhi kejayaan juga.

Sekiranya berlaku, kami akan menjalankan 100% mikrokernel selamat yang ditulis dalam Haskell. Syarikat keselamatan tidak akan wujud. Saya mempunyai hibrida unicorn / pony yang berada di bawah cahaya matahari. "

Daemonpenguin : “Ada beberapa konsep yang, secara teori, dapat memberikan reka bentuk kernel yang lebih baik. Terdapat kernel Rust, misalnya, yang mungkin melangkah sejumlah vektor serangan memori. Secara teori, mikrokernel mempunyai beberapa pilihan reka bentuk yang sangat baik yang menjadikannya mudah alih, boleh dipercayai dan berpotensi membetulkan diri.

Namun, masalahnya adalah teori lebih daripada praktik. Tidak kira seberapa baik teori itu, orang hampir selalu mengambil apa yang praktikal (iaitu bekerja sekarang) dengan reka bentuk yang lebih baik. Kernel Linux mempunyai begitu banyak sokongan perkakasan dan begitu banyak syarikat membiayai pembangunan sehingga tidak mungkin kernel lain (terlepas dari pilihan reka bentuknya yang keren) akan menyusul.

MINIX, misalnya, mempunyai reka bentuk yang mantap dan beberapa ciri hebat, tetapi mempunyai sokongan perkakasan yang sangat sedikit sehingga hampir tidak ada yang mengembangkan platform ini.

Lagi di Reddit

Ulasan DistroWatch 4MLinux 21.0

Linux menawarkan pelbagai jenis pengedaran. Sebilangannya disertakan dengan lebih banyak perisian, dan ada yang kurang. 4MLinux ditujukan kepada mereka yang lebih suka pengedaran ringan. Seorang penulis di DistroWatch mempunyai ulasan penuh mengenai 4MLinux 21.0.

Joshua Allen Holm melaporkan untuk DistroWatch:

4MLinux adalah sebaran Linux ringan yang direka untuk menyediakan empat bidang fungsi utama. Dengan hanya perisian yang terdapat pada ISO, 4MLinux menyediakan pelbagai aplikasi untuk melakukan penyelenggaraan sistem; memainkan banyak jenis fail multimedia; menawarkan pelayan untuk menyediakan pelayan web asas; dan ia mempunyai pilihan permainan yang baik, yang mana pengedarannya berada dalam kategori yang disebutnya misteri. Keempat fungsi tersebut memberikan asas nama pengedaran. Empat perkara yang bermula dengan "M", jadi 4MLinux.

Boot 4MLinux dari pemacu kilat adalah proses pantas. Saya masuk dengan cepat dan automatik sebagai root dan boleh mula bekerja di persekitaran desktop. Untuk desktop, 4MLinux menggunakan JVM yang digabungkan dengan pelancar Wbar di bahagian atas skrin yang menyediakan jalan pintas ke program utama. Plus ada IDesk untuk menguruskan desktop, dan Conky untuk memberikan maklumat status sistem asas. Wbar, IDesk, dan Conky semuanya boleh dimatikan, tetapi sistemnya sudah sangat ringan ketika mereka berada dalam keadaan lalai, diaktifkan.

Di luar kotak, 4MLinux dilengkapi dengan pilihan perisian yang baik. Dalam menu aplikasi JVM ada jalan pintas untuk terminal, aplikasi Internet, penyelenggaraan, multimedia, miniserver, dan misteri. Sub-menu Internet mengandungi Pautan untuk melayari web, HexChat untuk IRC, Sylpheed untuk e-mel, Penghantaran untuk Bittorrent, uDapat untuk memuat turun, utiliti untuk berkongsi fail melalui Bluetooth, GNOME PPP untuk sambungan Internet dial-up, dan pilihan untuk hidupkan dan matikan Tor.

4MLinux menyediakan banyak perisian dalam pakej kecil. Untuk penyelenggaraan sistem adalah pilihan yang baik untuk digunakan. Untuk multimedia, miniserver, dan misteri, ia menyediakan pilihan perisian yang berguna, tetapi ada sebaran lain yang hanya menumpukan pada salah satu tugas tersebut dan melakukannya dengan lebih baik dengan lebih fokus. Itu bukan untuk mengatakan bahawa 4MLinux adalah buruk, tetapi ia cuba melakukan banyak perkara sekaligus. Sejujurnya, saya fikir 4MLinux akan menjadi persembahan yang lebih kuat jika ia adalah 3MLinux dan menjatuhkan aspek misteri sepenuhnya. Mungkin termasuk hanya solitaire atau permainan ringan lain yang dapat dimiliki sebagai pengalihan sementara tugas penyelenggaraan dijalankan dan menggunakan ruang yang dibebaskan dengan membuang permainan untuk memasukkan beberapa aplikasi pelanjutan pilihan secara lalai.

Lebih banyak lagi di DistroWatch

LinuxInsider mengulas Ultimate Edition 5.4

Ultimate Edition, sebaliknya, berada di seberang spektrum dari 4MLinux. UE semestinya menjadi kegembiraan maksimal kerana ia penuh dengan perisian. Seorang penulis di LinuxInsider mempunyai ulasan penuh tentang Ultimate Edition 5.4.

Jack M. Germain melaporkan untuk LinuxInsider:

Saya tidak gembira dengan pengalaman awal saya dalam berkenalan dengan Ultimate Edition 5.4. Saya menjumpai senarai perkara yang menjengkelkan.

Dengan bertahun-tahun mengkaji distro Linux di bawah tali pinggang saya, saya dapati hubungan yang kuat antara kesan pertama laman web distro dan kesan berterusan dari prestasi distro. Katakan saja keadaan laman web yang tidak teratur, dalam kes ini, berlaku dalam siaran terbaru distro ini.

Satu contoh kecil: Saya tidak menjumpai senarai keperluan pemasangan minimum untuk perkakasan. Itu terbukti mengecewakan. Saya membuang masa untuk memuatkan Ultimate Linux pada beberapa komputer yang sudah tua. Beberapa masalah berkaitan dengan memori dan ruang penyimpanan. Masalah lain ialah kekurangan kad grafik.

Ultimate Edition menyasarkan pendatang baru Linux, tetapi mereka yang mencuba mungkin memerlukan sedikit lebih banyak keakraban dengan Linux untuk mengatasi beberapa masalah dalam menjalankan OS Linux yang tidak begitu muktamad ini.

Lebih banyak lagi di LinuxInsider

Adakah anda terlepas bulat? Lihat halaman utama Eye On Open untuk mengetahui berita terkini mengenai sumber terbuka dan Linux .