GNU Hurd, GNU projesinin, Unix kerneline (işletim sistemi çekirdeğine) karşı sunduğu bir alternatiftir. Hurd, Mach Microkernel'i üzerinde çalışan birçok server/sunucu bileşeninden oluşur. Bu bileşenler, dosya sistemi, network protokolleri, dosya erişim kontrolleri gibi işletim sistemlerinde olması gereken işlemleri yürütürler.
10 yılı aşkın süredir, GNU'nun Hurd isimli çekirdeği geliştiriliyor ve ben bunu ilk kez birkaç ay önce farkettim. Belki hâlâ benim gibi yeni öğrenenler vardır diyerek; GNU dökümanlarından okuduğum ve az buçuk tecrübe ettiğim kadarıyla, Hurd'un ne olduğunu sizlerle paylaşmak istedim. Buyrun başlayalım:
GNU hareketi, uzun yıllar evvel, Richard Stallman'ın çabalarıyla kuruldu. Kendisi aynı zamanda FSF (Free Software Foundation) kurucusudur. Richard Stallman ve GNU ile ilgili daha fazla bilgi almak için Özgür yazılım felsefesine giriş... yazısına göz atabilirsiniz.
Richard Stallman'ın kurduğu GNU felfesiyle birlikte, özgür yazılım fikri, gün geçtikçe yaygın bir kavram hâline geldi. Fikrin ortaya çıkışından 10 yıl bile geçmemişken, her yazılımın ücretsiz ve açık kaynak kodlu alternatiflerini bulmak mümkün olmuştu. Derleyiciler, metin editörleri, vs... Ancak önemli bir eksik vardı. Bunları çalıştıracak özgür bir platform, yani bir işletim sistemi bulunmuyordu.
GNU manifestosunda bir kernel oluşturulmasından bahsedilmektedir. Kernel, işletim sistemi çekirdeği anlamına gelir. Yazılım olarak en alt düzeyde bulunur. Şayet bir işletim sistemi yapacaksanız, işe Kernel'den başlarsınız. Richard Stallman, özgür bir işletim sisteminin, GNU'nun amiral gemisi olacağına inanıyordu. Yazdığı GNU manifestosunda, kernel'den bahsetmesi, bu yüzdendir. Zamanla birlikte amiral gemiyi suya koymak için, Hurd adında bir çekirdek geliştirmeye başladılar. Fakat geliştirme süreci oldukça ağır işliyordu ve geçen süre, somut bir başarı getiremedi.
Hurd'un geliştirilmesi yavaş yavaş sürerken, Finlandiyalı bir genç olan Linus Torvalds, gelecekte Linux adını alacak yeni bir çekirdekle ortaya çıktı. Bir süre sonra, Torvalds, Linux'u GPL lisansıyla yayınlayıp, GNU'nun büyük desteğine kavuşmuştur.
Hurd'un geliştirmesinin yavaşlığı ve Linux çekirdeğinin çalışır olması GNU'nun Linux'a büyük desteğini sağlamıştır. Verilen bu destek, kullanıcıların özgür yazılıma daha çabuk geçmesini sağladığı gibi, Linux'u da hayli popüler etmiştir. Fakat Linux'a kayan ilgi ve iş gücü onun gelişimine olumlu katkı sağlarken; Hurd'un gelişimi de böylece askıya alınır.
Aşağı yukarı 10 yıldır, Hurd'un geliştirilmesi devam ediyor ve hâlâ tamamlanmış değil. Daha ne kadar devam edecek, bu konuda kimsenin fikri de yok. Sadece getirdiği büyük yeniliklerden ve farklı özelliklerinden bahsediliyor.
Önemle vurgulanan farklılıklarından biri de Hurd'un Microkernel yapısı. Hurd, Linux, Solaris, xBSD gibi emsâllerinden farklı olarak Microkernel olarak geliştirilmiş. Monolithic, Micro, Hybrid ve Exokernel olmak üzere dört çeşit kernel vardır. Monolithic kernel, bir bütün olarak yazılır. Sürücüler, çeşitli önemli mekanizmalar ve alt düzeyde gerekebilecek herşey kernel içindedir. Avantajı, farklı modüller arasında mesaj trafiği olmayacağı için hızlı olmasıdır. Dezavantajı ise, yazılan kodun fazlalığı yüzünden, kernelin giderek karmaşıklaşmasıdır. Üstelik Kernel'de yapacağınız her değişiklikte, bütün Kernel'i yeniden derlemeniz gerekir. Linux, xBSD, Solaris gibi sistemler, Monolithic kernele örnektir. Microkernel ise modüler bir yapıdadır. Monolithic kernele göre daha ufak, sade ve basittir. Sistemin çalışması için modüller arasında yoğun bir mesaj trafiği yaşanır. Minix, Symbian gibi işletim sistemleri Microkernel yapıdadır. Linus Torvalds, Microkernel'in işleri basitleştirmeye çalışırken çok daha kompleks hâle soktuğunu söylemektedir. Andrew S. Tanenbaum ile aralarında "Linux is Obsolete" ( Linux işe yaramaz ) konulu bir tartışma yaşanmasının nedeni de budur. Üçüncü tip, Hybrid Kernel'dir. Hybrid Kernel, Windows NT, Mac OS gibi işletim sistemlerinde kullanılmaktadır. Hybrid Kernel'ler, genellikle Microkernel'in değiştirilmiş bir şekli olarak değerlendiriliyor. Hatta Linus Torvalds, Hybrid Kernel'in sadece pazarlama stratejisinden ibaret olduğunu söylemiştir. Geriye Exokernel kalıyor ama o konuda da benim bilgim bulunmuyor.
Yukardaki uzun paragraf eminim bir çoğunuzu sıkmıştır. Sıkılmakta haklısınız. Herkese hitap eden konular değil. O hâlde özetleyerek konumuza dönelim; Hurd microkernel yapıdadır çünkü anlaşılması ve üzerinde çalışması kod geliştiriciler için daha kolaydır. ( En azından Microkernel'i destekliyenler böyle söylüyor. )
Kernel yapısı dışında elbette değinmemiz gereken başka konularda var. Hurd ile ilgili dökümanları okuduğum kadarıyla, Hurd'u sadece Desktop'ta kullanmanızla, bir Server Farm'da kullanmanız arasında bir fark yokmuş. Ayrıca dosya sistemi o kadar gelişmiş ki, herhangi bir FTP veya HTTP adresini kendi dosya sisteminiz gibi kullanabiliyormuşsunuz. ( Benzer bir dosya sistemini, Plan 9 from Bell Labs isimli işletim sisteminde görmek mümkün. )
Genelde bilgisayar jargonunda kısaltmalar çok modadır. GNU, Gnu's not Unix; SUN, Stanford University Network; BIOS, Basic Input/Output System vb... Elbette Hurd'un açılımı da bulunuyor ama diğerlerinden biraz farklı şekilde yapılmış:
Hurd, "Hird of Unix-Replacing Daemons" anlamına geliyormuş. Daemon; "Disk and Execution Monitor"un kısaltmasıdır. Hird ise, "Hurd of Interfaces Representing Depth" demekmiş. Anlayacağınız, GNU'nun açılımı gibi rekürsif-tekrarlamalı bir açılımla karşılaştık ama bu sefer ki biraz daha karmaşık...
Hurd'un ne olduğunu sanırım az çok anlatabildik. Şimdi Hurd'un vaad ettiklerine gelelim. Yani bizlere ne gibi avantajlar sunuyor, neyi diğerlerinden farklı yapıyor konusunu açıklayalım.
GNU Mach kerneli, GNU C kütüphanesi ve GNU sistemi içinde bulunan özgür ve özgür olmayan bütün yazılımlarla Hurd, şu an tam bir sistem olduğu iddiasında. Günlük kullanım ve son kullanıcı için uygun durumda değil ancak gelecekteki geliştirmeler ve kritik olmayan uygulamalar için iyi bir temel olabilir.
Hurd çekirdeğini kullanan ilk dağıtım Debian olmuş. Dilerseniz, çalıştırılabilir (live cd) veya kurulum (install cd) olarak indirebiliyorsunuz. Aşağıda Hurd'u denemek için bazı sayfaları bulabilirsiniz. Ancak Hurd, şu an için çoğu donanımda çalışacak olgunlukta değil. Çalıştığı sistemlerde, çoğu aygıtı tanıyamıyor ve IA32 mimarısı dışında başka bir platformda çalışamıyor. O yüzden kurulum esnasında bir sorun yaşarsanız, hata muhtemelen sizde değildir. Benim LiveCD ile olan deneyimim, sayfalar dolusu hata mesajıyla son buldu.
Hurd vaad ettiklerini yapabilirse, işletim sistemi anlayışımızı değiştirir mi? Hayır değiştirmez. Bu dediklerini, proje başladıktan 3-5 yıl sonra tamamlayabilseydi, devrim yaratırdı ve bilgisayar dünyasını şu an ki konumundan çok farklı bir yere taşırdı. Ancak bu olmadı ve proje hâlen bitmiş değil. Umarım kısa bir sürede, proje tamamlanır ve Linux kadar olmasa bile, kullanılabilir bir seviyeye gelebilir.
İşinize yarayabilecek bazı adresler:
N'olursa olsun, Hurd gibi, arada farklı şeyleri görmek güzel oluyor. Zamanınız varsa ve biraz macera arıyorsanız, Hurd'u kurmayı deneyebilirsiniz veya Live CD'den kısa bir tecrübe edinebilirsiniz.