GNU Hurd
| GNU Hurd | ||
|---|---|---|
| Unix benzeri kısım | ||
|
| ||
|
Hurd LiveCD . | ||
| Genel bilgi | ||
| program türü | mikronükleus | |
| geliştirici | Thomas Bushnell , Roland McGrath , Marcus Brinkmann , Neal Walfield , Michael I. Bushnell | |
| Geliştirme modeli | Ücretsiz yazılım | |
| Lisans | GPL | |
| Gerçek durum | gelişmekte | |
| Teknik Bilgiler | ||
| Zamanlanmış | ||
| çekirdek | Mach | |
| çekirdek tipi | mikronükleus | |
| Desteklenen Platformlar | IA-32 | |
| Sürümler | ||
| En son kararlı sürüm | 0.918 Aralık 2016 | |
| Testlerdeki son sürüm | 0.9 (18 Aralık 2016 (5 yıl, 9 ay ve 29 gün)) | |
| Bağlantılar | ||
GNU Hurd , GNU Projesi içinde, tamamen özgür bir Unix benzeri işletim sistemi olan GNU'nun çekirdeğini değiştirmeye yönelik bir projedir . 1990'dan beri gelişmekte ve GPL lisansı altında dağıtılmaktadır . [ 1 ]
Hurd, Unix'le uyumlu kalırken işlevsellik, güvenlik ve kararlılık açısından daha iyi performans göstermeye çalışır. Bu, Hurd'ün diğerlerinin yanı sıra POSIX spesifikasyonunu uygulaması , ancak kullanıcılar üzerindeki keyfi kısıtlamaları kaldırması nedeniyle elde edilir.
GNU Projesi genellikle Hurd'ü bir çekirdek olarak düşünse de, Hurd'ün önemli bir kısmı bir mikro çekirdek ile arayüz oluşturan bir kullanıcı alanında bulunduğundan, bu kesinlikle doğru olmaz , GNU Mach . Aslında, Linux çekirdeği düşünüldüğünde, Hurd bir işletim sistemi olacaktır ve Hurd'ün üzerinde çalışan geniş GNU programları koleksiyonuna GNU/Hurd adı verilir, çünkü Linux üzerinde çalışan GNU/Linux'un kendisi olarak adlandırılır.
Geliştirme geçmişi
Hurd'un gelişimi 1990 yılında başladı . GNU projesinin kurucusu Richard Stallman , GNU (GNU/Hurd olarak da bilinir) işletim sisteminin resmi olarak 2002 yılı sonundan önce yayımlanmasını beklediğini açıklamış olsa da , kısmen Linux çekirdeğinin piyasaya çıkması nedeniyle bu başarılamamıştı. kullanın .
İsmin kökeni
Hurd kelimesi özyinelemeli bir kısaltmadır . Hurd, "Hird of Unix-Replacecing Daemons" ifadesinin kısaltmasıdır. Buna karşılık, "Hird" terimi, "Derinliği Temsil Eden Arayüzlerin Hurd'u" (derinliği temsil eden arayüzlerin Hurd'u) anlamına gelir. Amerikan İngilizcesinde hem "Hurd" hem de "Hird", /hɜːrd/ "sürü" (İspanyolca: sürü) olarak telaffuz edilir, bu nedenle GNU Hurd, çalışan bir dizi sunucunun mimarisine atıfta bulunarak "antika sürüsü" olarak tercüme edilebilir. .
Mimari
Çoğu Unix benzeri çekirdeğin aksine, Hurd bir mikro çekirdeğin üzerine inşa edilmiştir (şu anda yalnızca Mach desteklenmektedir, ancak Hurd'ü ikinci nesil L4 mikro çekirdeğinde çalıştırmak için artık terk edilmiş bir proje olmasına rağmen), ona aşağıdaki hizmetleri sağlamaktan sorumludur. en temel çekirdek: donanıma erişimi koordine eder ( çoklu iş parçacığı aracılığıyla CPU'ya , bellek yönetimi aracılığıyla RAM belleğine ve diğer ses, grafik, depolama aygıtlarına vb.).
OSF/1 , NEXTSTEP , Mac OS X , Lites ve MkLinux gibi Mach mikro çekirdeğinin üzerinde çalışan Unix benzeri başka sistemler de vardır . Hepsi tek bir sunucu olarak uygulanmaktadır . Bu nedenle, geleneksel Unix sistemlerinin monolitik çekirdeğini , mikro çekirdek ve Unix sunucusu olmak üzere iki öğeyle değiştirirler.
Bunun yerine Hurd, aynı anda çalışan birden çok sunucudan oluşur . Saatten ağ yönetimine kadar her şeyi kontrol eden tek bir devasa program yerine , Hurd'de bu görevlerin her biri ayrı bir sunucu tarafından gerçekleştirilir. Bu, (en azından teorik olarak) Hurd geliştirmeyi çok daha kolaylaştırır, çünkü bir sunucuda değişiklik yapmanın diğer sunucular üzerinde istenmeyen etkileri olma olasılığı daha düşüktür.
Orijinal Mach tasarımında ana hedeflerden biri bu tür "sunucu çiftliği" idi, ancak görünüşe göre Hurd bu tasarımı bir Mach mikro çekirdeğinin üzerine uygulayan ilk kişidir ( QNX benzer olmasına rağmen, ancak kendi mikro çekirdeğine dayanmaktadır) . Mach üzerinde çalışan grupların kendilerini tamamen işletim sistemine adamak için çok meşgul olduğu görülüyor olsa da, daha önce neden çoklu sunucu uygulaması olmadığı açık değil . Hurd ayrıca mikro çekirdekler arasında taşınabilir olmaya çalışır .
Unix uzantıları
Hurd'de çok sayıda geleneksel Unix kavramı değişir veya geliştirilir:
Unix altında, yürütülen her programın, genellikle işlemi başlatan kullanıcıya karşılık gelen, ilişkili bir kullanıcı kimliği vardır . Bu kimlik, programın gerçekleştirmesine izin verilen eylemleri büyük ölçüde belirler. Hiçbir harici işlem, çalışan bir programın kimliğini değiştiremez. Öte yandan Hurd işlemi, birden çok kimlik içerebilen bir dizi kullanıcı kimliğiyle ilişkili olarak çalışır, bir veya hiçbiri. Yeterli ayrıcalıklara sahip bir işlem, başka bir işlemden kimlik ekleyebilir veya çıkarabilir. Örneğin, doğru bir kullanıcı parolasına yanıt olarak kimlikler veren bir parola sunucusu vardır.
Dosya sistemi söz konusu olduğunda, tek bir dosya veya tüm dizin hiyerarşisi için çevirmen olarak uygun bir program kurulabilir . Çevrilen dosyaya veya ikinci durumda hiyerarşideki dosyalara her erişim aslında bu program tarafından gerçekleştirilir. Örneğin, bir dosya çevirmeni, Unix sembolik bağlantısı gibi değil, okuma ve yazma işlemlerini başka bir dosyaya yönlendirebilir . Hurd'e Unix montajı , bir dosya sistemi çeviricisi yapılandırılarak gerçekleştirilir ( komutu kullanılarak ). Çevirmenler, kullanıcı hizmetleri sağlamak için de kullanılabilir. Örneğin, ftpfs çeviricisi , bir kullanıcının uzak bir FTP sitesini bir dizine sarmasına izin verir. Bununla , veya gibi standart programlar uzak sitedeki dosyaları değiştirmek için kullanılabilir. Bir kullanıcının birden fazla dizini tek bir dizinde birleştirmesine izin veren UnionFS gibi daha güçlü çevirmenler de vardır , öyle ki bu dizini listelemek tüm birleşik dizinlerin içeriğini gösterir (bu özellik çoğu Unice'ta yoktur, ancak FreeBSD'de ).
settranslscprm
Hurd'un belki de en güçlü özelliği, herhangi bir kullanıcının kendi sistem hizmetlerini çalıştırabilmesidir. Bir kullanıcı, kişisel kullanımı için dosya sistemine herhangi bir çevirmen atayabilir. Kimlik doğrulama sunucusu gibi sistem sunucularını seçtiğiniz diğer sunucularla bile değiştirebilirsiniz. Tüm bunlar, iyi tanımlanmış efekt alanları sayesinde diğer kullanıcıları etkilemeden yapılabilir. Hatta bir kullanıcının alt Hurd olarak bilinen Hurd'u kendi içinde çalıştırması bile mümkündür.
Sunucu mimarisi
Debian belgelerine göre bunlar şunlardır: [ 2 ]
- init : Sistem önyükleme prosedürleri.
- auth: Kimlik doğrulama sunucusu. İki sunucu birbiriyle iletişim kurmaya çalıştığında kimlik bilgilerini değiştirir.
- crash : Sunucu işleme hatası . Bir görev, segmentasyon hatası gibi kurtarılamaz bir hata sinyali aldığında tetiklenir .
- exec: Yürütülebilir yükleyici. Diskteki ikili görüntüsünden bir işlemin ilk görüntüsünü oluşturur. ELF ve a.out desteklenir .
- fifo: FIFO tercümanı, adlandırılmış boruları uygular .
- new-fifo: Adlandırılmış yöneltmeler için alternatif bir sunucu.
- null: uygular
/dev/nullve/dev/zero. - pfinet : IP protokolünü uygular (sürüm 4).
- pflocal : UNIX etki alanı soketlerini uygular.
- proc : PID'leri de dahil olmak üzere görevlere süreç yapıları atayın ve durumlarını yönetin.
- storeio : Depolama aygıtları için bir çevirmen.
- symlink : Onları desteklemeyen dosya sistemlerinde sembolik bağlantıları simüle edin.
- ifsock : Onları desteklemeyen dosya sistemlerinde dosya sistemi soketlerini simüle edin.
- firma bağlantısı : Firma bağlantısı, sembolik bağlantı ile sabit bağlantı arasında bir yerdedir .
- terim : Bir POSIX terminali uygular.
- usermux : Kullanıcı adları için aranabilecek bir dizin uygular.
- hostmux : Ana bilgisayarların aranacağı dizin .
- fwd : Diğer sunucuları aramak için ortak giriş noktası.
- magic : Çağrı işlemi hakkında bilgi aramak için dizin.
Ayrıca birkaç dosya sistemi içerir:
- nfs : Sun'ın Ağ dosya sistemini uygular .
- ftp : ftp sistemleri için bir sunucu.
- ufs : DVD'lerin UFS sistemi.
- isofs : CD'lerdekiler gibi ISO dosya sistemleri için sunucu.
- ext2fs : ext-2 tipi dosya sistemleri için sunucu.
Bunların arasında POSIX'in bir üst kümesi olan uygulama programlama arabirimini veya API Single Unix Spesifikasyonunu uygularlar . Aslında, tıpkı Linux'ta olduğu gibi POSIX API'sini uygulayan
kütüphanedir ve Hurd, yakın fakat daha düşük seviyeli bir arayüz sunar. libc
Programların Hurd'u çağırma şekli dosya sistemi aracılığıyladır. /procLinux'a benzer özel bir dosya sistemi olarak çalışırlar . Örneğin, auth sunucusu ile konuşmak istiyorsak, bağlı olduğu dizine ( /servers/auth) bakar ve üzerinde arama yaparız read/write.
Bu nedenle, bir bakıma, dosya sistemi sunucusu, API'yi arayüzleyen ve ayrıca çağrıları diğer düşük seviyeli sunuculardan hangisine göndereceğini bilendir. Düşük düzeyde, bu dosyalardan biri açıldığında, program mikro çekirdeğe derlenen farklı donanım aygıtlarını alır. Böylece Hurd'ün kendi kendine düşük seviyeli kesme yapması gerekmez; bunun yerine donanım sinyallerini işletim sistemi sinyallerine çevirmesi gerekir .
Önyükleme
GRUB gibi çoklu önyükleme protokolünü izleyen bir önyükleyiciye ihtiyacınız var . Yapılandırma aşağıdaki adımlar kullanılarak yapılır (veya önyükleyiciyi otomatik olarak yapacak şekilde ayarlayın):
- Mikro çekirdek belleğe yüklenir.
- Mikro çekirdeğin Hurd'u başlatması için bir komut dosyası yüklenir. Manuel olarak veya bir grup modülü (GRUB komut modülü) olarak önyüklenebilir. Hurd, tüm hurd'u başlatmak için serverboot adlı bir komut dosyasıyla birlikte gelir.
- Komut dosyalarını çalıştırabilmesi gereken mikro çekirdeğe kontrol verilir .
Bununla, mikro çekirdek, hurd sunucularını yükleyecek ve kontrolü onlara aktaracaktır.
Hurd kullanan dağıtımlar
Şu anda, çalışmalarda en az beş GNU/Hurd dağıtımı var ( Debian GNU/Hurd , Gentoo , Arch Hurd , Bee ve ATLD GNU/Hurd ), ancak hiçbiri resmi sürümlerini yayınlamadı.
Hurd
Hurd'un NgHurd adlı yeni bir sürümünü oluşturmak için girişimlerde bulunuluyor, bu proje L4 mikro çekirdeğini Hurd'a taşıma girişimiyle başladı, bu da onu diğer özellikler arasında daha hızlı hale getirecekti. Bu proje terk edildi, bu nedenle bu yeni sürümün özellikleri, kullanılacak mikronükleus da dahil olmak üzere tartışılıyor.
Ayrıca
- Kemer Hurd
- GNU Mach
- L4
- Debian GNU/Hürd
- GNU/Hurd-tabanlı Canlı CD
- Minix 3 - Yine sunucu tabanlı benzer bir işletim sistemi.
- Çekirdek Tabanlı Sanal Makine (KVM)
Referanslar
- ↑ Özgür Yazılım Vakfı, ed. (7 Aralık 2010). "GNU Hurd Nedir?" [GNU Hurd nedir?] . www.gnu.org (İngilizce) . 24 Eylül 2019 tarihinde kaynağından arşivlendi . Erişim tarihi: 24 Ekim 2019 .
- ↑ "Debian GNU/Hurd" (İngilizce) . Debian Projesi .
Dış bağlantılar
- Hurd resmi web sitesi (İngilizce).
- GNU Hurd nedir?
- Debian dağıtımının GNU/Hurd bağlantı noktası (İngilizce)
- L4 micronucleus resmi web sitesi (İngilizce)
- ArchLinux dağıtımının GNU/Hurd bağlantı noktası (İngilizce)
- Hurd burada, ancak Linux ile Hurd karşılaştırması şaşırtıcı değil
- 22 Mayıs 2013'te Debian GNU/Hurd'un ilk resmi sürümünün yayınlanması
- Debian GNU/Hurd'un ilk resmi sürümünün piyasaya sürülmesi (İngilizce)