BSD Nedir?

Greg Lehey

trademarks

FreeBSD is a registered trademark of the FreeBSD Foundation.

Apple, AirPort, FireWire, iMac, iPhone, iPad, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of Apple Inc., registered in the U.S. and other countries.

Linux is a registered trademark of Linus Torvalds.

Motif, OSF/1, and UNIX are registered trademarks and IT DialTone and The Open Group are trademarks of The Open Group in the United States and other countries.

Sun, Sun Microsystems, Java, Java Virtual Machine, JDK, JRE, JSP, JVM, Netra, OpenJDK, Solaris, StarOffice, SunOS and VirtualBox are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.

XFree86 is a trademark of The XFree86 Project, Inc.

Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this document, and the FreeBSD Project was aware of the trademark claim, the designations have been followed by the “™” or the “®” symbol.

Özet

Açýk kod dünyasýnda "Linux" kelimesi neredeysec"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ý ilecdünyada internete baðlý makinalarýn %31.3 'ücLinux, %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 LÝnux arasýndaki farklar bu þekilde ifade edilecektir.


1. BSD nedir?

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.4BSD-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 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 Ýnternet 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?

Aþaðýdaki birçok sebebe baðlý olarak BSD tam olarak bilinmemektedir:

  1. BSD programcýlarý çoðu zaman pazarlama amacý gütmek yerine kendi kodlarýný geliþtirme ile ilgileniyorlar.

  2. 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.

  3. 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.

  4. 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 UNIX®" olarakta 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 system" isimlerini görebilirsiniz.

  5. 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 nasýl 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?

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.

Ýþte bütün bu düzenlemeler Linux’ten birçok noktada farklýlýk gösterir:

  1. 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.

  2. 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.

  3. 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.

  4. 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:

  1. 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.

  2. 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.

  3. 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.

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:

  • "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.

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, and OpenBSD.