SORU
27 Kasım 2009, Cuma


Neden Linux monolitik çekirdek denir?

Linux monolitik bir çekirdek olduğunu okumuştum. Monolitik çekirdek ve çalıştırılabilir tam çekirdek kod derleme bağlama anlamına mı geliyor?

Eğer Linux modülleri destek için, neden modüllere tüm alt sistemlerini kırmak ve gerektiğinde onlara yük değil mi? Bu durumda, çekirdek tüm modülleri başlangıçta yük yok ve modülündeki fonksiyonların bir dizin korumak ve gerektiğinde yük olabilir.

CEVAP
27 Kasım 2009, Cuma


Yekpare bir çekirdek hizmetleri (dosya sistemi, VFS, aygıt sürücüleri, vb.) gibi temel işlevleri (planlama, bellek ayırma, vb.) her bir çekirdek. aynı alanı paylaşımı dar bir topluluktur. Bu doğrudan bir karşı çıkıyormicrokernel.

Bir microkernel çekirdek işlevselliği, sistem, hizmetleri ve aygıt sürücüleri temelde sadece sistem hizmetleri) izole edildiği bir yaklaşımı tercih ediyor. Örneğin, VFS (sanal dosya sistemi) ve blok aygıt dosya sistemi (yani minixfs) ayrı işleyen dış çekirdek alanını kullanarak IPC ile iletişim kurmayı çekirdek, diğer hizmetler ve kullanıcı işlemleri. Eğer bir şey olursa KısacasımodülLinux, birhizmetbir microkernel, izole bir süreci işaret etmektedir.

Terim karıştırmayınmodülerçekirdek bir şey ama yekpare. Bazı monolitik çekirdekler modüler olarak derlenmiş (e.önemli olan g Linux), modüle eklenen ve temel işlevleri işleyen aynı yerde çalışır.

Bir microkernel avantajı başarısız olan hizmeti kolayca yeniden olabilir, örneğin, eğer kök dosya sistemini iptal atar çekirdek halt yok.

Bir microkernel için dezavantaj asenkron IPC mesajlar özellikle fibrils uygulanması halinde çok zor hata ayıklama olabilir. Ayrıca, sadece sorunu yaz/FS izleme kullanım alanı işlemi, blok aygıt servisi, VFS servisi, dosya sistemi hizmeti ve (muhtemelen) PCI servis incelenmesi anlamına gelir. Eğer bu konuda bir boşluk varsa, IPC hizmeti bakmak için zaman. Bu genellikle monolitik bir çekirdek daha kolaydır. GNU Hurd Bu hata ayıklama sorunları (reference) uğrar. Karmaşık ileti kuyrukları ile ilgili denetim içine gitmek için gitmiyorum. Microkernels kalbi zayıf olanlara göre değil.

Çalışma, kararlı bir çekirdek için en kısa yol yekpare bir yaklaşımdır. Her iki yaklaşım çekirdek tasarımı biri sadece kod yazmak isteyen çok az ilgi herhangi bir tasarım üzerinde çalışmasına dönüştüğü bir POSIX arayüz sunabilir.

Üretimde Linux (yekpare) kullanıyorum. Ancak, benim öğrenme, ya da çekirdek geliştirme ile müdahalesi hack En bir microkernel, HelenOS özellikle geçerli.

Edit

Eğer bu kadar uzun soluklu çok cevabım aracılığıyla varsa, muhtemelen bazı eğlenceli okuma olacak 'Great Torvalds-Tanenbaum debate on kernel design'. Daha komik, daha 20 yıl sonra belirlendi 2013, okuyun. Parçasıydı en komik Linus son mesaj: imza

Linus "my first, and hopefully last flamefest" Torvalds

Belli ki, bu doğru bir daha 86 yakında eski olacak Tanenbaum tahmini de daha gelmedi.

NB:

", Minix 3. ima etmiyorum" Minix dediğimde HURD bahsettiğim ayrıca, başvuran (çoğunlukla) , Mach microkernel ediyorum. Başkalarının son işi kötülemek amacım değil.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FPSRussia

    FPSRussia

    19 NİSAN 2010
  • LIVESTRONG.COM

    LIVESTRONG.C

    5 EKİM 2005
  • William Hyde

    William Hyde

    23 HAZİRAN 2008