BSD Nedir? | ||
---|---|---|
Önceki |
Linux (mesela Debian Linux) ile BSD arasýndaki asýl farklýlýk nedir? Normal kullanýcýlar için fark aslýnda çok küçüktür yani ikiside UNIX® benzeri iþletim sistemidir. Her ikiside ticari olmayan amaçlar için geliþtirildi (Tabiki bu diðer bazý ticari Linux daðýtýmlarýndaki gibi deðildir). Bu bölümde BSD'nin yapýsýna bakýp Linux ile karþýlaþtýracaðýz. Genel olarak söylediklerimiz FreeBSD'ye yakýn olacak çünkü yaygýn olarak kullanýlan BSD versiyonu FreeBSD 'dir.
Hiç kimse veya hiçbir kuruluþ BSD'nin sahibi deðildir. BSD bütün dünya üzerinde teknik olarak üst düzeyde ve uzman bir çok insan tarafýndan geliþtirildi. ve BSD'nin bazý bileþenleri farklý açýk kaynak kodu geliþtiricileri tarafýndan saðlandý.
BSD çekirdeði Açýk kaynak geliþtirim modeli ile geliþtirilmiþtir. Her proje eriþimi herkese açýk olan kaynak kodu aðacý altýnda Concurrent Versions System (CVS) ile daðýtýldý. Bu sistemde BSD ile alakalý doküman ve diðer dosyalar da bulunmaktadýr. CVS ile herhangi bir kiþi “check out” (yani gerekli dosyalarýn bir kopyasýný sistemine indirerek) yaparak sistemin herhangi bir bolümüne sahip olabilmektedir.
Dünya üzerinde odukça fazla sayýda programcý BSD'nin geliþimine katkýda bulunur. Bu programcý ve geliþtiriciler temelde üç kýsma ayrýlýr:
Contributors(Katkýta Bulunanlar) doküman ya da kod yazarlar. Bu grubun direk olarak kod aðacýna herhangi bir kod eklenmelerine izin verilmez. Bu kiþilerin yazdýðý kodlar committer tarafýndan incelenip ana sistemde dahil edilirler.
Committers kaynak aðacýna kod ekleme yetkisinde sahip geliþtiriciler. Committer olabilmek için çalýþtýðý alan üzerinde çok yüksek bilgi seviyesine sahip olmasý gerekir.
Bazý commiterler bütün kaynak koduna ulaþma yetkisine sahiptirler diðerleri ise gerçek koddan ayrý tutulurlar. Dökümantasyonla ilgilenenler normal olarak kernel koduna ulaþma yetkisine sahip deðillerdir. Principal Architect olarak adlandýrýlan çekirdek takýmýndaki bazý þahýslarýn ise back out adý verilen kaynak kodu aðacýndaki kodlarý silme hakký vardýr. Bütün committer 'lar yapýlan her bir commit (iþlem) için e-posta alýrlar ve böylece gizlice bir kodun kaynak kodu aðacýna girmesi engellenmiþ olur.
Core team (Çekirdek Takýmý). FreeBSD ve NetBSD kesinlikle bir çekirdek takýma sahiptir. Çekirdek takým projenin geliþimi ve oluþturulmasý sýrasýnda programlarýný yaparlar ve rolleri tam olarak belli deðildir. Çekirdek takýmý üyesi olmak için program geliþtirici (developer) olma zorunluluðu yoktur ve buda son derece normaldir. Çekirdek takým için kurallar bir projeden diðerine farklýlýk gösterebilir ve genel olarak çekirdek takýmýn projenin geliþme ve gidiþat noktasýndaki görüþ ve fikirleri kesinlikle Çekirdek Takým üyesi olmayan kiþilerin görüþ ve fikirlerinden daha üstün tutulur.
Ýþte bütün bu düzenlemeler Linux'ten birçok noktada farklýlýk gösterir:
Hiç kimse sistem içeriðini kontrol edemez. Pratikte bu farklýlýk göze çok önemli gelebilir. Asýl mimar (Chief Architect) kodun asýl koddan çýkartýlmasý isteðinde bulunabilir ve hatta Linux projelerinde birçok kiþi deðiþiklikler yapabilir.
Diðer taraftan merkezi bir depo vardýr. Bu depo eski tüm versiyonlarda dahil olmak üzere bir noktada toplanmýþ olarak iþletim sistemine ait tüm kodlarý barýndýrýr.
BSD projeleri yalnýzca kernel(çekirdek) olarak deðil “bütün iþletim sistemi” olarak kabul edilir. Bu özellik yalnýzca marjinal olarak faydalýdýr. Ne BSD nede Linux programlar olmadan yararlý deðildir. Ve bu programlar Linux altýnda BSD altýnda kullanýldýðý gibi kullanýlýr.
CVS kod aðacýnýn (source tree) biçimlendirilmiþ olmasýnýn bir neticesi olarak BSD geliþim evreleri gayet açýktýr ve herhangi bir versiyona ait bilgi versiyon numarasý yada piyasaya sürülme tarihi ile bulunabilir. Hatta CVS güncellemelere izin bile verir. Örneðin FreeBSD deposu ortalama günde 100 kez güncellenir ancak bu güncellemeler çoðu kez çok küçüktür.
Her BSD projesi üç tane farklý sürüm içerir. Linuxteki gibi bu sürümler 1.4.1 ya da da 3.5.0 olarak belirlenir. Ek olarak versiyon numaralarý kendi amacýný belirten bir son eke sahiptir:
Geliþtirilmiþ olan versiyon CURRENT (Geçerli En Son) olarak adlandýrýlýr. FreeBSD'de CURRENT'a bir numara atanýr. Örneðin FreeBSD 5.0-CURRENT. NetBSD açýk bir biçimde farklý isimlendirme þemasý kullanýr. Kullanýlan bu þema tek harften oluþan bir son ektir ki bu son ek dahili arayüzdeki deðiþikliði ifade eder. Örneðin NetBSD 1.4.3G gibi. OpenBSD her hangi bir numara atamasý yapmaz (OpenBSD-current). Bütün yeni sürümler sistemde bu þekilde kullanýlýr.
Belirli aralýlarla yýlda iki ila dört defa projeler CD-ROM ile edinme yada ftp sitelerinden ücretsiz olarak download etmek için piyasaya sürülür(RELEASE). Örneðin OpenBSD 2.6 RELEASE. Yada NetBSD 1.4-RELEASE. Piyasaya sürülen Sürüm (RELEASE) versiyonu son kullanýcý için gerekli olan sürümdür ve sistemin normal versiyonudur. Ayrýca NetBSD ayrýca yama sürümleri (patch releases) Örneðin NetBSD 1.4.2 gibi. Bu sürümler üç basamaklýdýr.
RELEASE versiyonlarda her hangi bir hata (bug) bulunðunda hatalar düzeltilir ve CVS kaynak kodu aðacýna (source tree) dahil edilir. FreeBSD 'de son elde edilen sürüm STABLE (saðlam versiyon) olarak adlandýrýlýr ancak OpenBSD ve NetBSD RELEASE versiyon ismini kullanmaya devam eder. CURRENT versiyonun test edilmesi sýrasýnda yeni ama küçük özellikler sisteme dahil edilebilir.
Bütün bunlarýn aksine Linux'te iki ayrý kod aðacý (code tree) vardýr: Stable (Saðlam) versiyon ve Development (Geliþmekte olan) versiyon. Stable versiyon çift sayýlardan oluþan minor versiyon numaralarýna sahiptir. 2.0, 2.2, 2.4 gibi. Development versiyon ise tek sayýlardan oluþan minor versiyon numaralarýna sahiptir. 2.1, 2.3, 2.5 gibi. Bazý durumlarda deðiþik Linux daðýtým firmalarý kendi geliþtirdikleri ürünleri “TurboLinux 6.0 with kernel 2.2.14” þeklinde piyasaya sürebilir.
Birçok Linux sürümünün aksine açýk kaynak kodu olan yanlýzca üç tane BSD sürümü vardýr.her BSD projesi kendi kod aðacý (source tree) ve çekirdeðine sahiptir. Ve pratikte kullanýcýlarýn projelere kendi ekledikleri kodlarla Linuxteki kodlar arasýnda daha az farklýlýk vardýr.
Her projenin amacýný gruplamak gerçekten zordur: Farklýlýklar kiþilere özeldir. Genel olarak:
FreeBSD yüksek performans ve son kullanýcýlar için kullaným kolaylýðý amacýný güder. Ve ISP firmalarý için favori iþletim sistemdir. PCler ve Compaq'ýn Alpha iþlemcileri üzerinde çalýþýr. FreeBSD açýk bir farkla diðer projelere oranla daha fazla kiþi tarafýndan kullanýlýr.
NetBSD azami seviyede taþýnabilirlilik hedefler. “NetBSD üzerinde elbette çalýþýr!” ile de bu belirtilmiþ olur. Ek olarak sade dizayna sahip olmak önemlidir. NetBSD palmtoplardan büyük serverlara kadar her yarde çalýþýr ve NASA'nýn uzay çalýþmalarýnda da kullanýlmýþtýr.Özel olarakda Intel-olmayan donanýmlar için iyi seçimdir.
OpenBSD kod temizliðini ve güvenliðini hedef alýr. Açýk kaynak kod geliþtirim modeli ve sýký kod incelemesini içerir ve banka ABD hükümet bakanlýklarý, hisse senedi kurumlarý gibi güvenlik temelli iþletmeler için bir iþletim sistemi olmayý hedefler. NetBSD gibi birçok platformda çalýþabilir.
Bunlardan baþka açýk kod olamayan iki deðiþik ki deðiþik iki BSD UNIX iþletim sistemi mevcuttur. Bunlar BSD/OS ve Apple'ýn geliþtirdiði Mac OS® X:
BSD/OS 4.4 BSD türetilmiþ en eski sürümdür. Açýk kaynak kodlu deðildir ve bu sebeble kod çok küçük bir maliyetle satýn alýnabilir. Bir çok açýdan FreeBSD'ye benzer ve bir çok geliþtirici iki sistemlede çalýþýr.
Mac OS X Apple Computer Inc.'in Macintosh® serisinin en son üyesidir. Bu iþletim sisteminin çekirdeði BSD tabanlýdýr ve Darwin, olarak adlandýrýlýr. Diðer versiyonlarýn aksine iþletim aksine çekirdek açýk kaynak kodludur. Bu geliþimin bir neticesi olarakda Apple geliþtiricileri FreeBSD committer 'ýdýr. Bu çekirdeðin üzerinde Aqua/Quartz grafik arabirimi ve Mac OS 'un diðer ürünleri vardýr. Fakat bu X arabiriminin kodu kapalýdýr. Bu iþletim sistemi x86 and PPC mimarilerinde çalýþýr.
Linux kapalý kod (closed source) yazýlýmýný saf dýþý býrakmak için tasarlanmýþ GNU General Public License (GPL) lisansý ile daðýtýlýr. GPL lisanslý bir ürün kullanarak geliþtirilen bir yazýlýmda mutlaka GPL lisansý ile daðýtýlmalýdýr. Fakat BSD lisansý daha az kýsýtlayýcýdýr ve binary daðýtýma izin verir. Bu özellikle gömülü uygulamalar için çekici bir lisans türüdür.
BSDler için Linuxlere oranla daha az programýn üretildiði zamanlarda BSD geliþtiricileri Linux programlarýný BSD altýnda çalýþtýrmayý saðlayan Linux uyumluluk paketini ortaya çýkardýlar. Bu Paket, Linux sistem çaðrýlarýný düzgün yapabilmek için her iki çekirdek deðiþikliklerini ve C Library (C kütüphanesi) gibi Linux uyumluluk dosyalarýný içerir. Linux programlarýný Linux makinesi ile BSD makinesi altýnda çalýþtýrmak arasýnda hýz bakýmýndan her hangi bir kayda deðer fark yoktur.
BSD 'nin “All from one supplier (Herþey tek elden)” mantýðý Linuxlerde ayný sýklýkla yapýlan güncelleme iþlemlerinin daha kolay olduðu anlamýna gelir. BSD kütüphane versiyon güncellemelerini eski versiyon kütüphaneleri ile uyumlu olarak yapar ve bu eski Binary kodlarý çalýþtýrmayý mümkün kýlar.
Bunlarýn hepsinin pratikteki anlamý nedir? Kim BSD kim Linux kullanmalý?
Bu hakikatten cevaplanmasý zor bir sorudur. Bir kaç öneri þuþekilde sýralanabilir:
“If it ain't broke, don't fix it” (Bozulmuyorsa düzeltme). Eðer halihazýrda açýk kodlu bir iþletim sistemi kullanýyorsanýz ve ondan memnunsanýz deðiþiklik yapmak için iyi bir sebeb yoktur.
BSD sistemi, özellikle FreeBSD dikkate deðer bir þekilde Linuxlerden daha fazla performans saðlayabilir. Fakat bu herkesi ayný derecede etkileyen birþey deðildir ve bir çok durumda yok denecek kadar az performans farký vardýr. Ama bazý özel durumlarda da Linux'de FreeBSD'den daha iyi olarak nitelendirilebilir.
Genelde BSD sistemi güvenilirlilik açýsýndan daha iyi üne sahiptir. ve bu genelde daha olgun koda sahip oluþundan kaynaklanýr.
BSD lisansý GPL Lisansýndan daha dikkat çekicidir.
BSD Linux kodlarýný çalýþtýrabilir ama Linux BSD kodlarýný çalýþtýranilir. Bunun bir neticesi olarakda BSD için Linux'den daha fazla yazýlým vardýr.
BSDi her zaman BSD/OS'u desteklemektedir ve yakýn zaman önce FreeBSD ile bir anlaþma imzalamýþlardýr.
Ek olarak her projenin kendi yardým yada kiralama departmaný vardýr: FreeBSD, NetBSD, and OpenBSD.