BSD Nedir?
Şöyle ki açık kaynaklı kod dünyasında Linux kelimesi
neredeyse işletim sistemi ile eş anlamlıdır fakat açık kaynak kodlu UNIX ®
sadece Linux değildir. İnternet İşletim Sistemi Sayacı 'na
göre Nisan 1999 itibarı ile dünyada internete bağlı makinaların %31.3 'ü Linux,
%14.6 'ü ise UNIX 'tir. Yahoo gibi dünyanın en büyük organizasyonlarından biri
BSD kullanmaktadır. Dünyanın en meşgul FTP sunucularından biri olan ftp.cdrom.com günde 1.4 TB dosya
transferi için BSD kullanmaktadır.
Öyleyse sır
nedir? Neden BSD daha iyi bilinmiyor? Bu küçük yazı, bu ve diğer soruların
cevaplarını aramaktadır.
Bu yazıda
BSD ve Linux arasındaki farklar bu şekilde ifade edilecektir.
[ Split HTML
/ Single HTML ]
1. BSD nedir?
Öncelikle BSD, Berkeley
Software Distribution'ın kısaltılmışıdır. Bu isim California Üniversitesi,
Berkeley 'in kaynak kodu dağıtımı olan AT&T 'nin UNIX 'i için bir
eklentiler zinciridir. Bir çok açık kaynak kodlu işletim sistemi projesi, 4.4 BSD-Lite
olarak bilinen kaynak kodu dağıtımını temel kabul eder. Ek olarak bunlar,
özellikle GNU projesi olmak üzere diğer bir çok açık kod projesini de kapsar.
BSD 'in içeriği:
- BSD çekirdeği işlem zamanlama,
hafıza yönetimi, simetrik çoklu işlemci(SMP), aygıt sürücüleri ve
diğerlerini kapsar.
Linux çekirdeğinden farklı olarak kapasite ve güçte
bir çok farklı BSD çekirdeği vardır.
- C kütüphanesi, sistem API
'sinin temellidir
BSD C kütüphanesi GNU projesi tabanlı değildir,
Berkeley kodu temellidir.
- Kabuk, dosya araçları
derleyiciler ve linkerler gibi araçlar.
Bazı araçlar dışında bir çoğu projesinden
sağlanmıştır.
- X Windows sistemi grafik ekran
arabirimi.
Birçok BSD türevinde kullanılan X Window sistemi ayrı
bir proje olan XFree86" projesi
'nde devam ettirilmektdir. Linux 'te bu sistemi kullanmaktadır. BSD KDE ya da
GNOME gibi bir görsel masaüstüile öntanımlı olarak gelmez. Fakat istenirse
bunlar da kullanılabilir.
- Bir çok diğer program ve
araçlar.
2. Ne gerçek bir UNIX® 'mi?
BSD işletim
sistemi bir kopya değildir, fakat temelde UNIX 'in atası sayılan AT&T'nin
işletim sisteminin kaynak kodundan oluşur. Ayrıca bu kod System V UNIX 'in de
atasıdır. Bu durum sizi belki şaşırtmış olabilir. Yada AT&T hiç bir zaman
kaynak kodunu vermemiş olmasına rağmen bu nasıl olabilir?
AT&T
UNIX 'inin açık kaynak kodlu olmadığı doğrudur ve kopya hakkı düşünüldüğünde
BSD kesinlikle bir UNIX değildir fakat diğer taraftan AT&T diğer
projelerden ve özellikle Berkeleydeki California Üniversitesi Computer Science
Research Group (CSRG -Bilgisayar Bilimi Araşatırma Grubu)undan AT&T UNIX 'e
bir çok kod dahil ettiği düşünülmelidir. 1976 'dan başlayarak CSRG yazdıkları
yazılımı içeren teyp 'leri dağıtarak bunu Berkeley Software Distribution
ya da BSD olarak nitelendirdi.
BSD ilk
sürümleri asıl olarak kullanıcı programlarından oluşuyordu ta ki dramatik bir
şekilde CSRG karşılılı olarak DARPA (Defence Advanced Projects Research Agency)
ile ağlarındaki (ARPANET) iletişim protokollerini güncellemek için sözleşme
imzalayana kadar. Bu yeni protokol Internet Protokolü daha sonra da TCP/IP
olarak adlandırıldı. BSD nin asıl geniş alanlara yayılmış sürümü 1982 de
piyasaya sürülen 4.2 BSD 'dir.
1980 'lerde
bir çok küçük çaplı işletim sistemi şirketi piyasaya çıktı. Ve birçokları kendi
işletim sistemlerini yazmak yerine UNIX işletim sistemini lisanslamayı tercih
ettiler. Özelde SUN Microsystems 4.2BSD temelli UNIX üzerinde değişiklikler
yaparak SunOS" adıyla lisansladı. AT&T UNIX 'in ticari olarak
satılmasına izin verince, çok kısa bir süre içinde System V adını alacak System
III isimli küçük uygulamalarla satışa başlandı. System V networking uygulama ve
bileşenlerini içermiyordu, bu sebeble piyasaya sürülen bir çok uygulama BSD
'den özellikle ağ teknolojileri alanında TCP/IP protokolünü kullanmaya başladı.
Bunun yanında csh kabuğu ve vi editörünü de kendi sistemlerine
dahil etti. BSD 'den alınan bütün bu eklentilere Berkeley Extensions adı
verildi.
Piyasaya
sunulan BSD kasetleri AT&T kaynak kodu ve gerekli olan olan UNIX lisansını
içeriyordu. 90larda CSRG'a ayrılan fon azalınca grup kapanma ile karşı karşıya
kaldı ve bazı grup üyeleri AT&T 'nin kodunu içermeyen BSD Açık kaynak kod
olarak dağıtılan kodlarını dağıtmaya karar verdi ve bu Networking Tape 2
ya da kısaca Net/2 adı verilen dağıtım ile gerçekleşti. Net/2 tam
anlamıyla bir işletim sistemi değildi çünkü yaklaşık olarak %20 oranındaki
kernel kaynak kodu eksikti. CSRG üyelerinde William F. Jolitz geriye kalan %20
lik kodu yazarak 1992'de 386BSD ismiyle piyasaya sürdü. Aynı zaman zarfında
eski CSRG üyelerinden oluşan bir grup Berkeley
Software Design Inc. adı verilen işletim sisteminin betasını piyasaya
sürdüler ve bu işletim sisteminin adı daha sonra BSD/OS olarak değiştirildi.
386BSD
hiçbir zaman güvenilir bir işletim sistemi olamadı. Onun yerine 1993 yılında
iki ayrı proje doğdu. Bunlar: NetBSD ve
FreeBSD. NetBSD 93'ün başlarında
tamamlandı ancak FreeBSD 'nin ilk versiyonu yılın sonuna kadar hazır durumda
değildi. Bu süre içerisinde kodu devam ettirilmekte güçlük çekilince
karışıklığı önlemek ve yönetimi kolay kılmak için ayrıldı. Projeler farklı
amaçlar gütmeye başladı. 1996 'da NetBSD 'den ayrılarak doğan OpenBSD doğdu.
3. BSD neden daha iyi tanınmıyor?
Bir süre yaptığım araştırmaya göre aşağıda sıralayacağım
birçok sebebe bağlı olarak BSD tam olarak bilinmemektedir:
- BSD programcıları çoğu zaman
pazarlama amacı gütmek yerine kendi kodlarını geliştirme ile
ilgileniyorlar.
- Linux 'lerin popülaritesi
özellikle baskı (ve kitap piyasası) ve şirketlerin desteği linuxlere özel
destek ve güncellik sağlıyor buna karşılık BSDnin bu şekilde herhangi bir
destekçisi yoktur. Fakat bu gün geçtikçe değişmektedir.
- BSD programcıları Linux
programcılarından daha tecrübeliler ve işletim sisteminin kullanım
kolaylığı ile daha az ilgileniyorlar Yeni kullanıcılar Linuxleri daha
kullanışlı olarak kabul ediyor ve destekliyorlar.
- 1992, AT&T BSDI 'a dava açtı ve bu yazılımın
AT&T 'ye ait olan lisanslı kaynak kodunu içerdiğini iddia etti. Dava
1994'te anlaşma ile sona erdi. Fakat davanın hayaleti insanları avlamaya
devam etti. Mart 2000'de ise web üzerine, davanın mahkeme tarafından
geçmişte sonuçlandırıldığınıhaykıran bir makale yayınlandı.
Davanın ortaya çıkardığı önemli bir detayda
isimlendirmeydi. 1980 'lerde BSD aynı zamanda BSD UNIXolarakta bilinmekteydi.
AT&T 'ye ait kodların son kalıntılarının da BSD'den çıkartılması ile
birlikte BSD UNIX adından kurtuldu. Bu sebeble birçok kitapta the 4.3BSD UNIX
operating system ve the 4.4BSD operating systemisimlerini görebilirsiniz.
- BSD ile ilgili olarak akılda
kalan genellikle dağınık ve saldırgan olduğudur. There is a perception
that the BSD projects are fragmented and belligerent. Wall Street Journal'da bir makalede BSD projelerinin
balkanülkelerinin ürünü olduğundan bahsedildi. Davada olduğu gibi burada
da akılda kalan bu tip düşünceler BSD'nin geçmişteki konumu ve durumudur.
4. BSD ve Linux Karşılaştırması
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.
4.1. BSD'nin sahibi kimdir?
BSD tamamen anonimdir yani 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ı.
4.2. BSD nasıl geliştirildi ve
güncellendi?
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.
Iş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 sistemiolarak 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.
4.3. BSD Sürümleri
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-Stabil)
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.
4.4. BSD'nin in hangi versiyonları
bulunabilir?
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.
4.5. BSD kullanım lisansının GNU
kullanım lisansından farkı nedir?
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.
4.6. Daha başka ne bilmeliyim?
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.
4.7. BSD'mi Linux'mü kullanmalıyım?
Bunların
hepsinin pratikteki anlamı nedir? Kim BSD kim Linux kullanmalı?
Bu
hakikatten cevaplanması zor bir sorudur. Bir kaç öneri şuşekilde sıralanabilir:
- Eğer hali hazı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.
4.8. BSD için kim yardım servis ve
eğitim sağlıyor?
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, ve OpenBSD.
__________________________________________________ NOT:
Çoğunlukla özgün, bazı genel ve özel bilgileri parça parça yabancı
kaynaklardan çevirerek derledim zaman ayırarak okuduğunuz için teşekkür
ederim..
Cetinia | Bilişimin Kızıl Elması
Hiç yorum yok:
Yorum Gönder
Yorum yaptığınız için teşekkürler..