%entities; ]>
BSD Nedir? Greg Lehey
grog@FreeBSD.org
&tm-attrib.freebsd; &tm-attrib.apple; &tm-attrib.linux; &tm-attrib.opengroup; &tm-attrib.sun; &tm-attrib.xfree86; &tm-attrib.general; $FreeBSD$ $FreeBSD$ Açık kod dünyasında Linux kelimesi neredeyseciş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.
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 &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. 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 &os; '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. BSD neden daha iyi tanınmıyor? Aşaðıdaki 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 &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. 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. 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 &os;'ye yakın olacak çünkü yaygın olarak kullanılan BSD versiyonu &os; 'dir. 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ı. 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ı). &os; 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 &os; deposu ortalama günde 100 kez güncellenir ancak bu güncellemeler çoðu kez çok küçüktür. 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. &os;'de CURRENT'a bir numara atanır. Örneðin &os; 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. &os; '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. 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: &os; 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. &os; 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 &macos; 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 &os;'ye benzer ve bir çok geliştirici iki sistemlede çalışır. &macos; 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 &os; committer 'ıdır. Bu çekirdeðin üzerinde Aqua/Quartz grafik arabirimi ve &macos; '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. 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. 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. 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 &os; 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 &os;'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. 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 &os; ile bir anlaşma imzalamışlardır. Ek olarak her projenin kendi yardım yada kiralama departmanı vardır: &os;, NetBSD, and OpenBSD.