Apakah desain kernel Linux sudah ketinggalan zaman?

Apakah desain kernel Linux sudah ketinggalan zaman?

Linux telah membuat langkah besar selama bertahun-tahun, berkembang jauh melampaui tempat semula ketika dimulai. Tetapi seorang redditor baru-baru ini bertanya-tanya apakah Linux menderita karena desain kernel yang ketinggalan zaman. Dia menanyakan pertanyaannya di subreddit Linux dan mendapatkan beberapa jawaban menarik.

Ronis_BR memulai utas dengan komentar berikut:

Saya telah menjadi pengguna Linux sejak tahun 2004. Saya tahu banyak tentang bagaimana menggunakan sistem, tetapi saya tidak terlalu mengerti tentang apa yang ada di balik kernel. Sebenarnya, pengetahuan saya berhenti pada bagaimana mengkompilasi kernel saya sendiri.

Namun, saya ingin bertanya kepada ilmuwan komputer di sini seberapa ketinggalan zaman kernel Linux sehubungan dengan desainnya? Maksud saya, itu dimulai pada tahun 1992 dan beberapa karakteristik tidak berubah. Di sisi lain, saya kira keadaan seni desain kernel OS (jika ini ada ...) seharusnya sudah banyak berkembang.

Apakah mungkin untuk menyatakan di poin mana desain kernel Linux lebih maju dibandingkan dengan desain kernel Windows, macOS, FreeBSD? (Perhatikan maksud saya desain, bukan mana yang lebih baik. Misalnya, HURD memiliki desain yang bagus, tetapi cukup mudah untuk mengatakan bahwa Linux jauh lebih maju saat ini).

Selengkapnya di Reddit

Rekan redditor Linux-nya menanggapi dengan pemikiran mereka tentang desain kernel:

ExoticMandibles : “" Outdated "? Tidak. Desain kernel Linux sangat mengetahui tentang desain kernel modern. Hanya saja ada pilihan yang harus dibuat, dan Linux menggunakan yang tradisional.

Ketegangan dalam desain kernel adalah antara "keamanan / stabilitas" dan "kinerja". Microkernels meningkatkan keamanan dengan mengorbankan kinerja. Jika Anda memiliki mikrokernel minimal yang sangat kecil, di mana kernel memfasilitasi komunikasi dengan perangkat keras, manajemen memori, IPC, dan sedikit lainnya, ia akan memiliki permukaan API yang relatif kecil sehingga sulit untuk diserang. Dan jika Anda memiliki driver sistem file / driver grafis / dll yang bermasalah, driver tersebut dapat macet tanpa menurunkan kernel dan mungkin dapat dimulai ulang tanpa membahayakan. Stabilitas yang unggul! Keamanan yang unggul! Semua hal baik.

Sisi negatif dari pendekatan ini adalah overhead abadi yang tak terhindarkan dari semua IPC itu. Jika program Anda ingin memuat data dari sebuah file, program tersebut harus meminta driver sistem file, yang berarti IPC untuk proses tersebut sebuah saklar konteks proses, dan dua transisi cincin. Kemudian driver sistem file meminta kernel untuk berbicara dengan perangkat keras, yang berarti dua transisi cincin. Kemudian driver sistem file mengirimkan balasannya, yang berarti lebih banyak transisi dua ring IPC, dan sakelar konteks lainnya. Overhead total: dua sakelar konteks, dua panggilan IPC, dan enam transisi dering. Sangat mahal!

Kernel monolitik melipat semua driver perangkat ke dalam kernel. Jadi driver grafis yang bermasalah dapat merusak kernel, atau jika memiliki lubang keamanan, hal itu mungkin dapat dieksploitasi untuk membahayakan sistem. Tapi! Jika program Anda perlu memuat sesuatu dari disk, ia memanggil kernel, yang melakukan transisi ring, berbicara ke perangkat keras, menghitung hasilnya, dan mengembalikan hasilnya, melakukan transisi ring lain. Total overhead: dua transisi cincin. Lebih murah! Lebih cepat!

Singkatnya, pendekatan mikrokernel mengatakan "Mari kita tinggalkan kinerja untuk keamanan dan stabilitas superior"; pendekatan kernel monolitik mengatakan "mari kita pertahankan kinerja dan perbaiki masalah keamanan dan stabilitas yang muncul." Dunia tampaknya menerima jika tidak lebih suka pendekatan ini.

ps Windows NT tidak pernah menjadi mikrokernel murni, tetapi itu adalah mikrokernel-ish untuk waktu yang lama. NT 3.x memiliki driver grafis sebagai proses pengguna, dan sejujurnya NT 3.x sangat stabil. NT 4.0 memindahkan driver grafis ke dalam kernel; itu kurang stabil tetapi lebih berkinerja. Ini adalah langkah yang umumnya populer. ”

F22Rapture : “Manfaat praktis dari pendekatan kernel monolitik seperti yang diterapkan pada Linux adalah mendorong vendor perangkat keras untuk memasukkan driver mereka ke dalam kernel, karena beberapa vendor perangkat keras ingin mengikuti sendiri perubahan antarmuka kernel. Karena sebagian besar driver ada di dalam pohon, antarmuka dapat terus diperbarui tanpa perlu mendukung API lama. Kernel hanya menjamin bahwa mereka tidak akan merusak userspace, bukan kernelspace (driver), dan ada banyak churn ketika datang ke antarmuka driver yang mendorong vendor untuk mengarusutamakan driver mereka. Nvidia adalah salah satu dari sedikit vendor yang dapat saya pikirkan yang memiliki sumber daya untuk mempertahankan driver out-of-tree mereka sendiri berdasarkan sepenuhnya pada komponen berpemilik.

Saya curiga jika pengemudi adalah pulau kecil mereka sendiri yang dipisahkan oleh antarmuka yang stabil, kami mungkin tidak memiliki banyak perusahaan yang mau membuka kode mereka. "

Mallardtheduck : “Dalam konteks ini," monolitik "tidak mengacu pada memiliki (hampir) semua kode kernel dan driver dalam satu pohon sumber, ini mengacu pada fakta bahwa seluruh kernel dan driver dijalankan sebagai satu" tugas "dalam ruang alamat tunggal.

Ini berbeda dari "mikrokernel" di mana berbagai elemen kernel dan driver dijalankan sebagai tugas terpisah dengan ruang alamat terpisah.

Seperti yang disebutkan, kernel Windows pada dasarnya monolitik, tetapi driver masih dikembangkan secara terpisah. macOS menggunakan sejenis kernel hibrid yang menggunakan mikrokernel pada intinya, tetapi masih memiliki hampir semuanya dalam satu "tugas", meskipun hampir semua driver dikembangkan / disediakan oleh Apple. ”

Slabitas : “Orang-orang telah memperdebatkan hal ini sejak sebelum 2004. Perdebatan Tanenbaum-Torvalds pada 1999 1992 adalah contoh besar dari argumen antara mikrokernel dan desain kernel monolitik.

Saya pribadi bagian dari kamp mikrokernel. Mereka lebih bersih, lebih aman, dan lebih portabel. Dalam hal ini, desain kernel sudah ketinggalan zaman saat dibuat.

… Linux telah mengatasi banyak masalah yang datang dengan desain kernel monolitik. Ini menjadi modular, kebijakan kode ketatnya membuatnya relatif aman, dan saya rasa tidak ada yang akan membantah seberapa portabelnya itu. ”

TEchnicolourSocks : “Hanya ada satu cara desain kernel yang benar dan itu adalah cara TempleOS.

Ditulis di HolyC, non-jaringan, ring-0 saja. Seperti yang diinginkan Tuhan. "

Scandalousmambo : “Sifat dari mengembangkan sistem serumit kernel Linux berarti akan selalu" ketinggalan zaman "menurut orang-orang yang duduk di kursi tinggi ketika pertama kali dirancang.

Sistem operasi ini kemungkinan mewakili puluhan juta jam kerja manusia.

Apakah bisa diganti? Tentu. Akankah itu? Tidak."

Grumbel : “Dalam istilah praktis murni itu tidak membuat banyak perbedaan lagi. Kembali pada hari itu, HURD agak keren dengan sistem file userspace dan semacamnya. Tetapi Linux telah memperoleh sebagian besar fungsi itu sejak itu. Jika Anda ingin menulis sistem file, driver usb atau perangkat input di userspace, Anda bisa, tidak perlu meretas kernel. Anda sekarang bahkan dapat menambal kernel saat runtime jika Anda benar-benar menginginkannya.

Filosofi Linux untuk tidak menulis driver buggy yang merusak kernel pada awalnya, alih-alih membuatnya sangat kuat terhadap driver yang menyebalkan juga tampaknya bekerja cukup baik di dunia nyata. Kami mungkin harus berterima kasih kepada USB untuk itu, karena memiliki perangkat keras yang deskriptif sendiri menghilangkan kebutuhan untuk menulis driver baru untuk setiap gadget baru yang Anda colokkan ke PC.

Jadi, seluruh debat desain sekarang menjadi lebih akademis daripada sebelumnya, karena tidak banyak fitur tersisa yang akan Anda peroleh dengan perubahan desain saja dan yang tidak dapat Anda implementasikan ke dalam kernel monolitik. ”

KugelKurt : “Meskipun sebagian besar diskusi di sini adalah tentang kernel mikro vs kernel monolitik, penelitian yang lebih baru masuk ke bahasa pemrograman.

Jika Anda memulai kernel yang benar-benar baru hari ini, kemungkinan besar kernel tersebut tidak akan ditulis di C. Proyek Singularity dan Midori Microsoft mengeksplorasi kelayakan kernel kode C # / terkelola.

OS non-riset yang paling banyak dikenal tanpa kernel C mungkin adalah Haiku yang ditulis dalam C ++. ”

OmniaVincitVeritas : “Itu sudah usang saat pertama kali dibuat dan masih begitu. Namun, seperti yang kita ketahui, kemajuan teknis hampir tidak pernah berhasil sehingga solusi yang unggul secara teknis / ilmiah naik ke puncak dalam jangka pendek; begitu banyak hal lain yang memengaruhi kesuksesan juga.

Jika ya, kami akan menjalankan 100% microkernels aman yang ditulis di Haskell. Perusahaan keamanan tidak akan ada. Saya akan memiliki hibrida unicorn / kuda poni yang berjalan di bawah sinar matahari. "

Daemonpenguin : “Ada beberapa konsep yang, secara teori, dapat memberikan desain kernel yang lebih baik. Ada kernel Rust, misalnya, yang mungkin mengesampingkan sejumlah vektor serangan memori. Secara teori, kernel mikro memiliki beberapa pilihan desain yang sangat bagus yang menjadikannya portabel, andal, dan berpotensi mengoreksi diri.

Namun, masalahnya adalah itu lebih merupakan teori daripada praktik. Tidak peduli seberapa bagus suatu teori, orang akan selalu mengambil apa yang praktis (yaitu bekerja sekarang) daripada desain yang lebih baik. Kernel Linux memiliki begitu banyak dukungan perangkat keras dan begitu banyak perusahaan yang mendanai pengembangan sehingga tidak mungkin kernel lain (terlepas dari pilihan desain keren mereka) akan menyusul.

MINIX, misalnya, memiliki desain yang solid dan beberapa fitur luar biasa, tetapi memiliki dukungan perangkat keras yang sangat sedikit sehingga hampir tidak ada yang mengembangkan platform ini. ”

Selengkapnya di Reddit

Ulasan DistroWatch 4MLinux 21.0

Linux menawarkan berbagai jenis distribusi. Beberapa dipaketkan dengan lebih banyak perangkat lunak, dan beberapa dengan lebih sedikit. 4MLinux ditujukan bagi mereka yang lebih menyukai distribusi yang ringan. Seorang penulis di DistroWatch memiliki ulasan lengkap tentang 4MLinux 21.0.

Joshua Allen Holm melaporkan untuk DistroWatch:

4MLinux adalah distribusi Linux ringan yang dirancang untuk menyediakan empat area fungsionalitas utama. Dengan hanya perangkat lunak yang tersedia di ISO, 4MLinux menyediakan berbagai macam aplikasi untuk melakukan pemeliharaan sistem; memainkan berbagai jenis file multimedia; menawarkan miniserver untuk menyediakan server web dasar; dan ia memiliki pilihan permainan yang layak, yang distribusinya ditempatkan dalam kategori yang disebut misteri. Keempat fungsi tersebut menjadi dasar nama distribusi. Empat hal yang dimulai dengan "M", jadi 4MLinux.

Mem-boot 4MLinux dari flash drive adalah proses yang cepat. Saya dengan cepat dan otomatis masuk sebagai root dan dapat mulai bekerja di lingkungan desktop. Untuk desktop, 4MLinux menggunakan JVM yang dikombinasikan dengan peluncur Wbar di bagian atas layar yang menyediakan jalan pintas ke program utama. Ditambah ada IDesk untuk mengelola desktop, dan Conky untuk memberikan informasi status sistem dasar. Wbar, IDesk, dan Conky semuanya dapat dimatikan, tetapi sistem sudah sangat ringan ketika mereka dalam keadaan default, aktif.

Di luar kotak, 4MLinux hadir dengan pilihan perangkat lunak yang layak. Pada menu aplikasi JVM terdapat shortcut untuk terminal, aplikasi Internet, maintenance, multimedia, miniserver, dan misteri. Sub-menu Internet berisi Tautan untuk penjelajahan web, HexChat untuk IRC, Sylpheed untuk email, Transmisi untuk Bittorrent, uGet untuk mengunduh, utilitas untuk berbagi file melalui Bluetooth, GNOME PPP untuk koneksi Internet dial-up, dan opsi untuk nyalakan dan matikan Tor.

4MLinux menyediakan banyak perangkat lunak dalam satu paket kecil. Untuk pemeliharaan sistem, ini adalah pilihan yang baik untuk dimiliki. Untuk multimedia, miniserver, dan misteri, ia menyediakan pilihan perangkat lunak yang berguna, tetapi ada distribusi lain yang hanya berfokus pada satu tugas tersebut dan melakukannya dengan lebih baik dengan menjadi lebih fokus. Itu tidak berarti bahwa 4MLinux buruk, tetapi mencoba melakukan terlalu banyak hal yang berbeda sekaligus. Sejujurnya, saya pikir 4MLinux akan menjadi penawaran yang lebih kuat jika itu adalah 3MLinux dan menghilangkan aspek misterinya sepenuhnya. Mungkin hanya menyertakan solitaire atau beberapa game ringan lainnya sebagai pengalihan sementara tugas pemeliharaan dijalankan dan menggunakan ruang yang dikosongkan dengan menghapus game untuk menyertakan beberapa aplikasi ekstensi opsional secara default.

Selengkapnya di DistroWatch

Ulasan LinuxInsider Ultimate Edition 5.4

Edisi Ultimate, di sisi lain, berada di ujung spektrum dari 4MLinux. UE jelas merupakan kesenangan maksimal karena dikemas dengan perangkat lunak. Seorang penulis di LinuxInsider memiliki ulasan lengkap tentang Ultimate Edition 5.4.

Jack M. Germain melaporkan untuk LinuxInsider:

Saya tidak senang dengan pengalaman langsung awal saya berkenalan dengan Ultimate Edition 5.4. Saya menemukan daftar hal yang salah yang mengganggu.

Dengan bertahun-tahun meninjau distro Linux di bawah ikat pinggang saya, saya telah memperhatikan hubungan yang kuat antara kesan pertama dari situs web distro dan kesan abadi dari kinerja distro. Anggap saja kondisi website yang tidak teratur, dalam hal ini, terbawa dalam rilis terbaru distro ini.

Satu contoh kecil: Saya tidak menemukan daftar di mana pun tentang persyaratan instalasi minimum untuk perangkat keras. Itu terbukti membuat frustrasi. Saya membuang waktu mencoba memuat Ultimate Linux pada beberapa komputer yang sudah tua. Beberapa masalah terkait memori dan ruang penyimpanan. Masalah lain termasuk kekurangan kartu grafis.

Ultimate Edition menargetkan pendatang baru Linux, tetapi mereka yang mencobanya mungkin perlu sedikit lebih mengenal Linux untuk mengatasi beberapa masalah dalam menjalankan OS Linux yang tidak terlalu canggih ini.

Selengkapnya di LinuxInsider

Apakah Anda melewatkan pertemuan? Kunjungi halaman utama Eye On Open untuk mendapatkan berita terbaru tentang open source dan Linux .