23 Kasım 2012 Cuma

NetBSD Nedir?

UNIX kullanıcıları BSD iletim sistemi ailesini çok iyi bilir. Herhangi bir UNIX kullanıcısı için FreeBSD, OpenBSD, NetBSD ve DragonflyBSD bu ailenin başlıca üyeleridir. UNIX kullanıcılar için BSD işletim sistemi ailesi iyi bilinse de diğer kullanıcılar için BSD işletim sistemi ailesinin üyeleri tanınmaz. NetBSD söz konusu olduğunda UNIX kullanıcıları dışında bilinilirliği yok denecek kadar azdır. NetBSD tanınmasa da günlük yaşamda farklı donanımlar ve cihazlar üzerinde NetBSD kullanılır. BSD işletim sistemi ailesi farkında olmadan kullanılan en yaygın işletim sistemlerinden olmakla birlikte tanınmasının bu deneli az olması BSD işletim sistemi ailesinin ticari olarak pazarlanmamasıdır. Özellikle de söz konusu olan NetBSD ise sitesinde de yazıldığı gibi medyada el üstünde tutulan, sık sık adı geçen bir sistem arıyorsanız başka yere bakmanız gerekir.



NetBSD diğer BSD işletim istemi ailesinin üyeleri ile karşılaştırıldığında aktarılabilirlik, doğru yazılmış kaynak kodu, düşük kaynak gereksinimi, özgür, yazılım yönetiminin kolaylığı, araştırma ve geliştirmeye açık yapısı dikkat çeker.

Aktarılabilirlik

UNIX aktarılabilir bir işletim sistemidir. Bu özelliği “Aktarılabilir İşletim Sistemi Standardı” olarak bilinen “Portable Operating System Interface for UNIX” ortaya çıkarmıştır. NetBSD aktarılabilirlik söz konusu olduğunda UNIX dünyasının lideridir. NetBSD bugün için 57 farklı platformda, 17 farklı işlemci mimarisi üzerinde çalışabilmektedir. Bu platformlar arasında arm işlemcili sistemler, gömülü sistemler, hatta VAX'tan ATARI'ya kadar bir çok donanım platformu sayılabilir. Güncel ve tam listeye NetBSD sitesinden erişilebilir.

Doğru Yazılmış Kaynak Kodu

Yazılım geliştiriciler arasında yaygın olarak kabul gören bir görüş vardır. “Eğer çalışıyorsa, kod doğru demektir.” Bunu biraz açacak olursak, eğer yazılım iyi kötü çalışıyorsa demek ki kaynak kod doğru yazılmış demektir. NetBSD geliştiricileri için ise tam tersi geçerlidir. Kaynak kodu doğru yazıyorsanız doğru çalışır diyebiliriz. Geliştiriciler yazılan kaynak kodun hatasız, gereksiz kodlardan ve özelliklerden arınmış olarak yazılması gerektiğini düşünür. Gereksiz eklemeler ile şişen kaynak kodun sonunda kendi karmaşıklığı ve ağırlığı altında hata vereceği ve çökeceği açıktır. NetBSD sürümleri için açılan hata kayıtları bildiğiniz işletim sistemleri ile kıyaslanırsa yok denecek kadar azdır. Dolayısıyla da güvenlik zayıflıkları açısından bakıldığında en güvenilir işletim sistemlerinden birisi olarak karşınıza çıkar. Bunun nedeni NetBSD geliştiricilerin doğru kod yazımına ilişkin felsefeleridir. NetBSD için doğru yazılmış kod doğru çalışır ve sonuçta farklı bir platforma aktarılmak istenildiğinde üzerinde az değişiklik yapılarak aktarılabilir.

Düşük Kaynak Gereksinimi

NetBSD diğer işletim sistemleri ile karşılaştırıldığında kaynak gereksinimi açısından oldukça mütevazi olduğu görülebilir. 57 farklı platformda çalışan bir sistem için bu normal bir durumdur. NetBSD minimum sistem gereksinimi platforma ve kullanım amacınıza göre değişkenlik gösterecektir. Temel sistemi tüm bileşenleri ile PC üzerinde kuruyorsanız disk alanı olarak 1 GB yeterli olacaktır. NetBSD desteklediği platformlardan birisine kuracak iseniz, sistem gereksinimleri o platforma ait kurulum belgelerinde belirtilmektedir. NetBSD sistem gereksinimi konusunu anlatmak için en güzel örnek elektrikli tost makinesine yapılmış NetBSD kurulumudur. :) Yapabiliyorsanız benzer donanımları kullanarak buzdolabınıza, çamaşır makinesine veya elinizin altındaki herhangi bir beyaz veya kahverengi eşyaya kurulum yapabilirsiniz. >:)

Özgür

NetBSD, BSD lisansı ile gelir. Her ne kadar NetBSD, derleyici olarak GNU araçlarını kullanmakta olsa da BSD lisansı ile dağıtılır. HNU araçları genel kamu lisansını kullanmakta olsa da NetBSD kaynak kodları BSD lisansı ile dağıtılır. GNU yazılımları da kendi GPL lisansını taşır ve bu şekilde dağıtıma dahil edilir. BSD işletim sistemi ailesinin geliştiricileri ve kullanıcılar için kaynak kodu nasıl kullanacağınız sizin kararınızdır. Bu konuda ne geliştiriciler ne de kullanıcılar size bir koşul dayatmaz. Aksi sizin özgür iradenizin kısıtlanması anlamına gelir. NetBSD istediğiniz gibi kullanabilirsiniz. Keyfinize bakın.

Yazılım Yönetiminin Kolaylığı

UNIX sistemlerde yazılım yönetmek, gerek kaynak koddan derleyerek gerek doğrudan derlenmiş kodu kurmak, kaldırmak veya güncellemek için çeşitli araçlar kullanılır. NetBSD, FreeBSD ve OpenBSD ports benzeri pkgsrc bir yapı olan pkgsrc kullanır. Pkgsrc kullanarak yazılımı ister kaynak kodunu derleyebilir isterseniz önceden hazırlanmış olan derlenmiş ve kuruluma hazır haldeki paketleri kullanabilirsiniz. Pksgsrc yazılımı kurmayı, güncellemeyi kolaylaştırır.

Araştırma ve Geliştirmeye Açık Yapı

NetBSD geliştiricilerinin felsefesini biliyorsunuz. NetBSD aktif olarak geliştirilmekte olan işletim sistemlerinden birisidir. İlk sürümünün yayınlandığı 1993 yılından günümüz aktif olarak geliştirilmektedir. Bu zaman zarfında NetBSD geliştiricileri sistemde ciddi değişiklikler yapmışlardır. Eski UNIX sistemlerde kullanılan monolitik çekirdek yerini modüler çekirdek yapısına bırakmıştır. Sistemin işleyişini kontrol etmekte kullanılan eski araçlar sistem üzerinde tam kontrol ve yetki gerektirdiği için terk edilmiş yerini sysctl bırakmıştır. Böylelikle sadece yetkilendirilmiş kullanıcılar yetkileri çerçevesinde ilgili değişkenleri kontrol edebilmektedir. NetBSD geliştiricileri sürekli olarak yeni donanımlar için sürücüleri güncellemektedir. Güncellemeden kasıt sürücüler gerekiyorsa yeniden yazılmasıdır. Bazı işletim sistemlerinde sürücüler yeniden yazılmadan sadece koda ekleme yapılarak kotarılmaya çalışılmaktadır. Bu şekşdle hazırlanan sürücülerin performans olarak bir iyileştirme sunması söz konusu değildir. NetBSD yapısında gerçekleştirilen çeşitli iyileştirmeler ve yenilikler ile NetBSD farklı kurumların araştırma ve geliştirme projelerinde tercih edilmiştir. Örnek NASA tarafından Numerical Aerospace Simulation bölümünde ilk kurulduğundan beri kullanılmaktadır. IPv6 projesinin arkasındaki ekip olan KAME ilk IPv6 uygulamasını NetBSD üzerinde gerçekleştirmiştir. Bugün için kullanılmakta olan en hızlı firewall donanımı İsveç'te bulunan Effnet tarafından geliştirilmektedir. Effnet ar-ge faaliyetlerini NetBSD üzerinde sürüdürmektedir.

NetBSD Nere(ler)de Kullanılır?


Masaüstü

NetBSD, eğer bir UNIX sistem kullanmak istiyorsanız kullanabileceğiniz sistemlerden birisidir. Sizi tek zorlayacak olan tarafı Türkçe dil desteğinin olmayışıdır. Desteklenen diller arasında Türkçe olmadığı için klavyenizi İngilizce vb bir dile kullanmanız gerekir. EnderUNIX ekibi bir dönem NetBSD Türkçe dil desteği için çalışmalar yapmış ve yamalar çıkarmış olsa da bunlar ya NetBSD ekibine ulaşmadığı ya da yamalar üzerinde çalışılmadığı için NetBSD kaynak kodunde yer almamıştır. Ancak dil sizin için sorun değilse, NetBSD kolaylıkla bir masaüstü olarak kullanabilirsiniz. Masaüstü sisteminiz oluştururken kullanacağınız uygulamaların dil paketlerini kurmanız gerekeceğini anımsatalım.

Sunucu

NetBSD ile tüm sunucu uygulamalarını kurabilir ve çalıştırabilirsiniz. Düşük maliyetli bir sunucu kurmak ve çalıştırmak için gereken tüm araçlar NetBSD bulunur.

Ağ Yönetimi

NetBSD ile hazır gelen ve diğer BSD işletim sistemi ailesi üyelerince de kullanılan PF – Packet Filter – aracına sahiptir. PF kullanarak bir yönlendirici, firewall, proxy sunucuları, saldırı tespit sistemleri veya trafik izleme sistemleri vb bir çok ağ uygulaması ve servisini sunabilirsiniz. PF kullanarak yazacağınız kurallar ile istenmeyen trafiğin sistemlerinize ulaşmadan çok önce ortadan kaldırabileceğiniz bir güvenlik duvarı, içerik filtreleme sistemi vb oluşturabilirsiniz.

NetBSD Geliştirme Süreci


NetBSD geliştiricileri farklı coğrafyalarda yaşayan ve farklı dilleri konuşan gönüllülerden oluşur. Bu gönüllüler yanında bazı şirketlerin personeli de geliştirme sürecinde aktif olarak görev alır. Bu personelin süreç içerisindeki görevi NetBSD'nin çalıştıkları şirketin ürünleri ile sorunsuz bir şekilde çalışması için gereken katkıyı yapmaktır. Bunun yanında NetBSD ar-ge çalışmalarında kullanmak isteyen veya kurum bünyesindeki araştırma çalışmalarında kullanan çeşitli kurumların ve hatta üniversitelerde görevli olan insanlarda bulunur.

NetBSD geliştirme süreci geliştiricilerin farklı roller üstlenmesini zorunlu kılar. Geliştiricilerin tamamı NetBSD geliştirme süreci içerisinde doğrudan kaynak kod üzerinde her türlü değişikliği yapma yetkisine sahiptir. Geliştirici grubu kaynak kod üzerinde okuma/yazma yetkisine sahip olduğu committers olarak adlandırılır. NetBSD kaynak kodu üzerinde yapılacak olan değişiklikler ile hataları ayıklayabilir ve gerekli iyileştirmeleri yapabilirler.

Commiter olarak anılan geliştiriciler bir süre için kendi aralarından küçük bir grubu Çekirdek grup olarak seçerler. Çekirdek grubun görevi temel olarak NetBSD projesi ile ilgili olaan teknik konularda karar vermektir. Daha doğrusu yazılan kodun sorunsuz ve sistemin performansının olumsuz etkilemeden iyileştirilmesi gibi kritik işlerin doğru biçimde yapılmasını sağlamak durumundadır.

Geliştirme sürecinde doğrudan rol almayan ama kaynak kod üzerinde yama vb yaparak bunu geliştiricilere yollayan kullanıcılar da bulunur. Bu kişilerin yazdıkları kod geliştiriciler tarafından incelenip tamamen veya kısmen kabul ya da red edilebilir. Bu şekilde katkıda bulunan kullanıcılara katkıcılar – contribuors – adı verilir. Yazdıkları kod kabul edilen ve düzenli olarak yama yollayan kullanıcılar geliştiriciler arasına alınabilir.

Geliştirme süreci ile ilgili teknik olan ve olmayan çekirdek ekip sorumluluk alanı dışında kalan tüm konuları ise NetBSD Foundation – NetBSD Vakfı ilgilenir. Projenin büyüklüğünü göz önüne aldığımızda NetBSD Vakfı, projenin sağlıklı bir şekilde yürümesi için kritik öneme sahip olan bir diğer öğedir.