8 Haziran 2011 Çarşamba

FreeBSD Nedir?

FreeBSD, UNIX kullanıcıları arasında BSD işletim sistemi ailesinin en iyi bilinen üyelerinden birisidir. Bu kadar yaygın olarak tanınmasına karşılık bir çok kullanıcı tarafından da aynı derece bilinmez. Bu durum garip gelebilir ama FreeBSD'nin sunuculardan gömülü sistemlere dek geniş bir uygulama alanı olmasına karşılık FreeBSD az tanınmasının nedeni çeşitli faktörlere bağlanabilir. Bunlar arasında en temel olanı FreeBSD'nin ticari olarak pazarlanan bir işletim sistemi olmayışıdır. Buna karşılık kullanılan bir çok ticari uygulama gerek geliştirme gerek arka plandaki sistem desteği için FreeBSD kullanmaktadır. FreeBSD yaygınlığını açıklamak için FreeBSD kullanan şirketlerden bazılarını sayacak olursak Apple, Cisco, Juniper, NetApp, IBM, Nokia gibi büyük şirketler yanında internet üzerindeki en yoğun sunucularda da kullanılmaktadır. Bunlar arasında Yahoo, Yandex, Apache, Rambler, Sina, Pair Networks, Sony Japan, Netcraft, NetEase, Weathernews, TELEHOUSE America, Experts Exchange vb sayabiliriz.



FreeBSD bu kadar yaygın olarak kullanılması diğer BSD işletim sistemi ailesinin üyeleri ile karşılaştırıldığında FreeBSD aktarılabilirlik, düşük kaynak kullanımı, yazılım kurulum/yönetim kolaylığı, gelişmiş dosya sistemi, kolay güncelleme özelliklerine sahip olması gösterilebilir.

Aktarılabilirlik

FreeBSD geliştiricileri için serbestçe dağıtılabilen, kararlı ve güvenli bir işletim sistemi geliştirmek öncelikli amaçlarındandır. Bu işletim sisteminin de herkes tarafından erişilebilir olan donanım platformlarında sorunsuz olarak kurulması ve çalışması amaçlanır. Bir diğer deyişle Intel'in x86 olarak bilinen 32 bit'lik 486, Pentium, AMD vb üzerinde freeBSD kurulabilir ve çalıştırabilirsiniz.AMD64 olarak bilinen 64 bitlik işlemciler üzerinde de – Intel EM64T de (AMD64'ün kopyası) dahil – desteklenir. Gömülü sistemlerde yaygın olarak kullanılan ARM işlemciler ve kartları, SUN Microsystems ORACLE SPARC işlemci ailesi, Intel'in Itanium 64 (IA64), Apple bilgisayarlar tarafından kullanılmış olan bu gün terk ettiği PowerPC işlemcili sistemlerde de FreeBSD kullanılabilir. FreeBSD kullanabileceğiniz sistemlerin listesine FreeBSD web sitesinden ulaşabilirsiniz.

Düşük Kaynak Kullanımı

FreeBSD ilk olarak x86 mimarisine aktarıldığından günümüzün modern sistemlerinde rahatlıkla çalışacaktır. Sistem gereksinim olarak asgari 1 Ghz işlemci ve 1 GB RAM ve en az 10GB disk alanı veya daha fazlasına gereksinim duymaz. Rahatlıkla bir 266 Mhz işlemci, 256 Mbram ve 10 GB disk ile çalıştırabilirsiniz. Bu donanım üzerinde sistem kaynağı tüketicisi caka satan bir masaüstü(!) kullanmayı düşünmüyorsanız tabi... ;) Daha teknik olarak ifade edecek olursak donanımınızı aslında yapmasını istediğiniz gerçek işler için kullanırsınız. Sistem kaynaklarınız ne olduğunu bilmediğiniz bir çok uygulama tarafından tüketilmez. Tavan arasındaki veya bodrumdaki eski bilgisayarınızı FreeBSD ile kullanmak isterseniz tereddüt etmeyin. Bunu yaptığınız sistemin açılması için 10 dk beklemeyeceksiniz. Öte yandan elinizde teknoloji harikası son model bir donanım varsa bunda da kullanabilirsiniz. Bu sefer sistemin açılış süresini gördüğünüzde bağımlılık yaratabilir, eşe dosta tanıdığınız tanımadığınız herkese FreeBSD kurmaya kalkabilirsiniz.

Yazılım Kurulum/Yönetim Kolaylığı

FreeBSD ile gereksinmelerinize göre kurulum seçeneklerini düzenleyerek yazılım kurmak, kaldırmak, güncellemek kısacası yönetmek son derece kolaydır. UNIX bir sistemde yazılım kurulumu, kaldırılması ve güncellenmesi gibi işlemler sizden hatırı sayılır derecede Bilgisayar Mühendisliği bilgisine ve deneyimine sahip olmanızı gerektirir. FreeBSD ise işler daha kolay yürür. Bu da PORTS adı verilen yazılım yönetimini kolaylaştıran uygulama ile gerçekleştirilir. PORTS o kadar başarılıdır ki bugün bir çok başka işletim sistemi PORTS'u aktarıp kullanmaya başlamıştır. PORTS ile bir yaızılımı kolaylıkla kurabilir, kaldırabilir ve güncelleyebilirsiniz.

Gelişmiş Dosya Sistemi

Dosya sisteminin temel görevi sabit diskiniz üzerinde bilginin barınmasını sağlamaktır. Ekranınızda gördüğünüz dosya sabit disk üzerinde 1 ve 0 oluşan bir bütündür. FreeBSD ile kullanabileceğiniz farklı dosya sistemleri ile (UFS, ZFS vb) bugün pazarda bulunan TB sabit diskleri kolay ve etkin bir şekilde kullanabilirsiniz. Diske yazma ve okuma süreçlerinin ağır yükler altında bir kısıtlama yaratmadığını görebilirsiniz. FreeBSD ile gelen standart dosya sisteminin bu özelliğinden dolayı bugün pazarda bulabileceğiniz ticari UNIX sistemlerde de aynı dosya sisteminin kullanıldığını görebilirsiniz.

Kolay Güncelleme

İşletim sistemleri bir üst sürüme terfi etmek her zaman için kolay bir işlem değildir. Terfi işlemi sırasında bir şeylerin ters gitmemesi için hem donanımın hem de yazılımın uyumlu olduğundan emin olmak zorunludur. SUN Microsystems ORACLE ve Apple buna verilebilecek en iyi örneklerdir. Her ikisi de hem donanımı hem de yazılımı kontrol altında tuttukları için kolaylıkla bir üst sürme terfi edebilirsiniz. Bu yaklaşımın avantajı işletim sistemini donanım için hazırlayarak sorunsuz bir şekilde gerçekleşmesini sağlar. Diğer çözüm ise ortak müştereklerde buluşan bir sistem hazırlayıp terfi sırasında sorun çıkmamasını sağlamaktır. Donanımınız için optimize edilmemiş bir sistem bunu garanti eder. ;) FreeBSD için ise durum böyle değildir. FreeBSD kaynak koddan derleyerek kolaylıkla sisteminiz için optimize ederek terfi edebilirsiniz. Bu yöntem işletim sisteminizin donanımınızdan olabildiğince yararlanmanızı sağlar. Sanıldığı kadar da zor değildir. FreeBSD geliştiricileri bu işi kolaylaştırmıştır.

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

Masaüstü

FreeBSD, kurumsal alanda bir çok şirket tarafından yoğun bir şekşild kullanılmaktadır. Bu kurumların ağ altyapıları ile sunucularının işletilmesinde kullanılmaktadır. Bireysel kullanım açısından bakacak olursak gereksinmelerinizi fazlasıyla karşılayan bir UNIX masaüsütü sistem arıyorsanız düşünmeden kullanabilirsiniz. Ancak aradığınız fare ile tıklamak, bir denetim masası gibi bir merkezi yapılandırma aracı ise bu durumda FreeBSD sizin için uygun çözüm olmayacaktır. İlle de UNIX sistem arıyorsanız ve tıklayacaksanız Mac OS X sizin için doğru tercih olacaktır. Kendim OpenBSD ve FreeBSD sistemlerini masaüstü, sunucu ve ağ yönetimi konularında kullanıyorum. Dolayısıyla da bu alanlarda siz de rahatlıkla kullanabilirsiniz. 

Sunucu

Tüm sunucu uygulamalarını FreeBSD ile gerçekleştirebilirsiniz. Düşük maliyet ile güçlü ve güvenli bir sistem oluşturabilirsiniz. Tüm sunucu uygulamalarınızda sorunsuz olarak çalışacaktır. FreeBSD yazpısı içerinde yer alan araçları kullanarak rahatlıkla bir sunucu kurabilirsiniz.

Ağ Yönetimi

FreeBSD, hazır gelen ve diğer BSD işletim sistemi ailesi üyelerince de kullanılan PF -Packet Filter-aracına sahiptir. PF kullanrak 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.

FreeBSD Geliştirme Süreci

FreeBSD 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 bir çok şirketin personeli de FreeBSD geliştirme sürecinde aktif olarak görev alır. Bu personelin süreç içerisindeki görevi FreeBSD'nin çalıştıkları şirketin ürünleri ile sorunsuz bir şekild çalışması için gereken katkıyı yapmaktır. Örneğin Intel ve AMD vb şirketlerin mühendisleri aktif olarak FreeBSD geliştirme sürecinde yer alırlar. Aktif olarak FreeBSD geliştirme sürecinde yer alan geliştirici sayısı 500'den fazladır.

FreeBSD geliştirme süreci geliştiricilerin farklı roller üstlenmesi ile gerçekleştirilir. Geliştiricilerin tamamı FreeBSD 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. FreeBSD kaynak kodu üzerinde yapılacak olan değişiklikler ile hataları ayıklayabilir ve gerekli düzenlemeleri yapabilirler. Yapılan düzenlemeler sistemin işleyişini doğrudan etkileyecekleri için diğer geliştiricilere göre daha fazla sorumluluk taşırlar.

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 FreeBSD projesinin tüm ögeleri ile işleyişinden sorumludur. Aslında çekirdek grubun yaptığı iş geliştiriciler arasındaki anlaşmazlıklara çözüm bulmaktan ibarettir. Halbuki çekirdek FreeBSD gelişimi konusunda kritik kararları vermez. Tersine olarak bu kararlar geliştiriciler tarafından oy çokluğu ile alınır ve uygulanır. Dolayısıyla çekirdek kadronun uygulama geliştirici rolü semboliktir. Nasıl mı? Yanıt aşağıda.

Çekirdek kadro öte yandan bir organizasyonun işleyişindeki yönetim fonksiyonlarını da yerine getirmekle yükümlüdür. Çekirdek kadro geliştiriciler arasındaki sorunları çözmek yanında projenin işleyişi için gerekli olan geliştiricilerin motive edilmesi ve projenin işleyişin öngörüldüğü gibi devam etmesini sağlamak gibi kritik görevleri de üstlenirler. Aslında projenin yürütülmesinde 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 durumunda olsalar da bu görev FreeBSD kullanıcıları tarafından büyük bir başarı ile yerine getirilir. Bir şeyler beğenilmediyse geliştiriciler kullanıcılar tarafından topa tutulurlar. :) Aslında FreeBSD geliştiriciler ile kullanıcılar diğer BSD işletim sistemi ailesinin üyeleri ile aynı özelliği sergilerler: Geliştiriciler ile kullanıcılar neredeyse aynı kişilerdir. ;)

Çekirdek kadronun geliştiricileri motive etmesi gerekli görülse de aslında FreeBSD geliştiricileri de diğer BSD işletim sistemi ailesinin geliştiricileri ile aynı şekilde motive edilmeye gereksinim duymazlar. Geliştiriciler kendi gereksinim duydukları sistemi yazarlar. Beğenip kullananlara da memnuniyetle karşılarlar.

Çekirdek kadronun bu yapı içerisinde üstlenmek durumunda olduğu tek görev geliştiriciler arasındaki anlaşmazlıkları çözmekten ibarettir. Çekirdek kadroda görev yapmak bir FreeBSD geliştiricisinin de dediği gibi “yapılan iyiliklerin cezasız kalmadığının” bir göstergesidir.

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 yamal yollayan kullanıcılar geliştiriciler arasına alınabilir.