2. Bir işletim sisteminin beyni çekirdektir (ing. kernel). Çekirdek
olmaksızın bir işletim sisteminin var olması düşünülemez. Tüm diğer
programlar çekirdek aracılığı ile işletilirler.
Çekirdek programların donanımla ve diğer programlarla
haberleşmesinin mümkün olduğunca tek tip bir biçimde, diğer bir
deyişle donanım ya da program bağımlı olmaksızın,
gerçekleştirebilmelerini de sağlar.
Đşletim sistemleri konusundaki en ilginç örneklerden birisi Debian
GNU/Linux sistemidir. Debian, mevcut durumunda Linux çekirdeğinden
ve GNU araçlarından oluşan bir işletim sistemidir. Ancak Debian, Hurd
çekirdeğini de çalıştıracak biçimde güncellenmektedir. Debian ekibinin
nihai hedefi, aynı GNU araçlarını farklı çekirdek alternatifleri ile
kullanıcılara sunabilecekleri bir işletim sistemi oluşturmaktır.
1-2
2
3. 1960 - 1970’li yıllarda her bilgisayar sistemi için özel olarak makine
dilinde (ing. assembly) geliştirilmiş işletim sistemleri vardı. Her yeni
bilgisayar sistemi için yeniden işletim sistemleri yazılır, kullanıcıların
bilgisayardan bu yolla daha rahatça faydalanmaları sağlanırdı.
1960’ların sonunda geliştirilen UNIX’in yalnızca çok küçük bölümü
makine dilinde geliştirilmiştir. Đşletim sisteminin büyük bölümü, hemen
hemen aynı yıllarda geliştirilen ve daha yüksek seviyeli bir dil olan C
dili ile geliştirilmiştir.
Đşletim sisteminin büyük bir bölümünün daha yüksek seviyeli ve
taşınabilir bir dil olan C ile geliştirilmesi yeni bilgisayar üreticilerinin
UNIX’i kendi bilgisayar sistemlerine taşımalarını kolaylaştırmış önemli
bir teknolojik yenilik olmuştur.
UNIX ile beraber sağlanan Uygulama Programlama Arayüzü (ing. API –
Application Programming Interface) uygulamaların tüm UNIX’lerde
sorunsuz bir biçimde geliştirilebilmesine imkan vermiştir. Bir UNIX için
geliştirilen bir uygulama, sadece yeniden derleme ile farklı donanım
mimarileri üzerinde çalışan diğer UNIX’lere de sorunsuz bir biçimde
aktarılabilmektedir.
1-3
3
4. Çok görevli (ing. multi-tasking): Aynı anda birden fazla görevi
çalıştırabilme becerisidir. Birden fazla görev birbirine paralel olarak
(birden fazla CPU var ise) ya da paralelmişçesine çalıştırılabilir. Örneğin
bir kelime işlemci ile çalışırken buna paralel olarak diskteki dosyaları
yedeklemek mümkündür.
Çok kullanıcılı (ing. multi-user): Birden fazla kullanıcı aynı anda
bilgisayar sisteminden faydalanabilir. Örneğin, bir kullanıcı Đnternet’ten
dosya çekerken bir diğeri bir hesap tablosu uygulamasını kullanıyor
olabilir.
Taşınabilir (ing. portable): Farklı bir donanım mimarisine sahip
bilgisayar sistemine çok az bir kod değişikliği ile taşınabilmesidir.
Örneğin Intel Pentium işleyicisi için geliştirilmiş olan bir UNIX pek az
kod değişikliği ile bir başka işleyici üzerinde de çalışacak hale
getirilebilir. Bu geniş uyumluluk sayesinde mimari bağımlılığı
azaltılabilmekte ve çeşitlilik arttırılabilmektedir.
Yüksek performanslı: Görsellikten çok basitliğin tercih edildiği UNIX
dünyasında, yalınlık ve sadelik nedeni ile pek çok uygulama daha
yüksek performans ile çalışmaktadır. 1970’lerin başında geliştirilen bir
işletim sistemi olmasına rağmen halen pek çok kuruluş tarafından
görev-kritik uygulamalar UNIX üzerinde işletilmektedir.
1-4
4
6. Linux Đşletim Sistemi, Finlandiya Üniversitesi Bilgisayar Bilimleri 2. sınıf
öğrencisi Linus Torvalds’ın Intel 80386 işleyicili bilgisayarı üzerinde
yaptığı denemeler ile ortaya çıkmıştır. Linus, kendi bilgisayarını bir
işletim sistemi olmaksızın açacak ve program çalıştıracak hale
getirmeye çalışmış ve ilk ürünü olan 0.02 sürümünü 1991’de
tamamlamıştır.
Üniversitede katıldığı bir derse konu olan Minix sisteminden daha iyi bir
işletim sistemi yazmayı hedefleyen Linus’un Đnternet haber gruplarına
gönderdiği ve destek istediği mesajı çok büyük bir ilgi görmüştür. Kısa
sürede Linus’a ve sonradan Linux olarak adlandırılan projeye destek
veren çok sayıda gönüllü, Linux’u bugünkü konumuna ulaşmıştırmıştır.
Linux, yazılım kaynak kodunun herkese açık olmasına ve kodun
sahipliğinin kamuya ait olmasını sağlayan bir yazılım lisansı olan “GNU
Genel Kamu Lisansı” ile dağıtılmaktadır. Bu lisans ve nitelikleri ünitenin
izleyen bölümlerinde konu edilmektedir.
Yalnızca bir işletim sistemi çekirdeği olan Linux, onu kullanılabilir kılan
diğer özgür yazılımlar sayesinde anlamlı ve kullanılabilir bir sistem
haline gelmektedir.
1-6
6
8. Linux işletim sisteminin en önemli özelliklerinden birisi kamu malı olmasıdır. Bu
özelliği, Linux’un herhangi bir bireyin ya da kuruluşun denetiminde olmadığı
anlamına gelmektedir. Linux’u alıp kullanmaya başlayan kuruluşlar herhangi bir
yazılım lisans ücreti ödemek zorunda da değildir.
Linux’un geliştirilmesine katkı veren kişiler ve kuruluşlar, bir gün katkı vermekten
vazgeçseler bile yazılım kamunun malı olduğu sürece başka gönüllüler Linux’un
gelişimini sürdürebilirler. Böylece, pek çok diğer alanda olduğu gibi üreticinin strateji
değiştirmesi, ürünü sonlandırması ya da ürün bağımlılığı yarattıktan sonra ağır
koşullar öne sürmesi gibi tehlikeler bertaraf edilmiş olur.
Sistemin kaynak kodu dileyen herkesin incelemesine ve değiştirmesine açıktır. Arzu
eden herkes Linux kaynak kodunu http://www.kernel.org adresindeki web sitesinden
çekebilir, inceleyebilir, değiştirebilir ve değiştirilmiş halini dağıtabilir. Kaynak kodun
bu biçimde açıkta olması, hataların kolaylıkla bulunup giderilebilmesine imkan verir.
Yazılımın kaynak kodunu inceleyen binlerce kişinin var olduğu düşünülürse, hataların
nasıl kolayca tespit edilerek giderilebileceği de anlaşılabilir.
Kaynak kodun açık olmasının bir diğer avantajı yeni özelliklerin kolayca
eklenebilmesine ve kuruluşların kendilerine özgün beklentilerini bu yolla
karşılayabilmeleridir. Açık kaynak kodu sayesinde yazılıma müdahale mümkün hale
geldiğinden, yeterli teknik birikimi olan herkes sisteme kendi ihtiyaçları
doğrultusunda yeni özellikler ekleyebilmektedir.
Yeni özellik eklemenin dışında, sistemi ihtiyaca göre şekillendirmek, alt-düzey
ayarlarını düzenlemek ve gereksiz bölümlerini çalışmaz hale getirmek de
mümkündür. Böylece işe uygun bir sistem elde edilebilmektedir.
8
9. Linux, HP-Compaq Alpha, Sun Sparc ve UltraSparc, Motorola PowerPC
ve StrongARM gibi onun üzerinde farklı donanım platformu üzerinde
tümüyle aynı biçimde çalıştırılabilmektedir. Bir mimari üzerinde
çalıştırılan uygulama yazılımı bir diğer işleyici üzerinde çalışan Linux’a
sorunsuz biçimde taşınabilir ve işleyiş sürdürebilir.
Bu sayede, örneğin, Intel Pentium mimarisinde kullanılan sunucu
yetersiz kaldığında çok sayıda PowerPC işleyicisi olan bir IBM ya da çok
sayıda UltraSparc işleyicisi olan bir Sun bilgisayar sistemine geçiş
yapılabilmektedir. Uygulamaların yeni mimari üzerinde yeniden
derlenmesi bu değişikliği gerçekleştirmek için yeterlidir.
Linux, diğer UNIX türevleri ile büyük bir uyum içerisindedir. AT&T ve
BSD türevi UNIX’lerin her ikisinin de özelliklerini bünyesinde barındıran
Linux, bu niteliği ile diğer UNIX’ler üzerinde çalıştırılabilen
uygulamaların kolayca kendi üzerine taşınmasına imkan vermektedir.
Bu sayede, örneğin Sun Solaris sistemleri üzerinde geliştirilen bir
uygulama, neredeyse hiç değiştirilmeden Linux üzerinde yeniden
derlenerek çalıştırılabilmektedir.
Bu konuda ilginç bir anektod, Sybase firmasının Sybase Adaptive
Server ürününü Linux’a nasıl taşıdığına ilişkindir. Firmanın
mühendislerinin bildirdiğine göre, yazılımın Linux üzerinde çalışmasının
sağlanması için hiçbir özel çaba gerekmemiş, salt yeniden derleme
yeterli olmuştur. Bu, genel amaçlı bir veritabanı sunucu sistemi gibi
büyük bir yazılım ölçeğinde oldukça önemli bir başarıdır.
1-9
9
10. Temelde Linux çekirdeğini kullanan ve çekirdekle birlikte sunulan
yazılımlar bütününe Linux dağıtımı (ing. Linux distribution) adı
verilmektedir. Ücretli ve ücretsiz Linux dağıtımları hazırlayan pek çok
firma ve/veya sivil toplum örgütü vardır.
Dağıtımlar, Linux çekirdeğinin ayarlarında değişiklikler yapmak,
çekirdek için kendi tercihleri olan özgün yamaları uygulamak, çeşitli ve
farklı özgür yazılımları dağıtım paketi içine koymak gibi yollar ile
farklılaşabilir. Farklılaşmak için pakete ticari lisanslı uygulamaları
yerleştirmek, ücretli teknik destek sunmak ve yerel dil desteğini ön
plana çıkartmak da kullanılan diğer yollardandır.
RedHat, Mandrake, Suse, Debian GNU/Linux ve TurboLinux birer Linux
dağıtımıdır, hepsinin de temelinde aynı çekirdek (Linux) bulunmasına
rağmen önceki paragraflarda özetlenen nitelikleri ile farklılıklar
göstermektedirler.
1-10
10
11. Kurs kapsamında verilecek tüm örneklerde Red Hat Linux dağıtımının
güncel sürümleri esas alınmaktadır. Örneklerin hemen tümü, hiç bir
değişiklik yapmadan diğer Linux dağıtımları altında da aynı biçimde
çalıştırılabilmektedir.
Red Hat Linux’un Profelis tarafından tercih edilmesinin gerekçeleri üç
ana başlık altında toplanabilir. Red Hat, kurumsal alanda tercih
edilebilecek pek az ana dağıtımdan birisidir. Oracle ve IBM gibi
sektörün önde gelen firmaları ile iş birliği içerisindeki az sayıdaki
dağıtımdan birisi olan Red Hat Linux, aynı zamanda hem komut satırı
araçları ve hem de grafik kullanıcı arayüzü ile kolaylıkla
yönetilebilmektedir. Kullanım ve yönetim kolaylığı ile kaynak tasarrufu
sağlayan Red Hat Linux, eski sürümlere verdiği güncelleme desteğini
de uzun süre sürdürmektedir. Pek çok diğer dağıtım yalnızca bir önceki
sürümü için güncellemeler ve yamalar yayınlasa da, Red Hat Linux
güncellemeleri üç ya da dört eski sürümler için bile temin
edilebilmektedir.
11
12. 1984’te MIT’de yapay zeka laboratuarında araştırmacı olarak çalışan
Richard Stallman özgür yazılım felsefesini ortaya koymuş, bulduğu
destek ile felsefeyi ve ürünlerini bugünlere getirmiştir. Stallman’ın çıkış
noktası bilimsel gelişimin sağlanma biçimi ile endüstride bilgisayar
yazılımlarının üretimi ve gelişimi arasında gördüğü aykırılıklardır.
Bilimsel gelişimin (ing. scientific innovation) sağlanması yalnızca ve
yalnızca akademik araştırma yapanların buluşlarını, deneyimlerini ve
diğer her türlü sonuçlarını kamu ile paylaşması ile mümkün olmaktadır.
Tüm detayların paylaşıldığı bu akademik yayınlar, bir araştırıcının
önceki araştırıcıların çalışmalarının devamı olabilecek çalışmalar
yapmasına imkan verir. Bu paylaşım bu kadar açık ve yaygın
olmasaydı, bilimsel gelişimin hızı ve toplumumuzun bugün bulunduğu
düzey çok daha düşük olurdu.
Stallman, yazılımların da “özgür” olması gerektiğini, serbestçe ve tüm
detayları ile (kaynak kod vb.) dağıtılmasını öngören Özgür Yazılım
Vakfı’nın (FSF) da kuruluşunu gerçekleştirir. GNU Genel Kamu Lisansı
(GPL) adını verdiği yazılım lisansını tanıtmayı ve kullandırmayı hedefler.
Bu lisans, bir yazılımın özgürce dağıtılabilmesine izin veren ve
yazılımları kamu malı haline getirmeyi hedefleyen bir lisanstır.
FSF, tümüyle özgür yazılım bileşenlerinden oluşan “özgür bir işletim
sistemi” üretilmesini kendisine hedef olarak benimsemiştir. Metin
editörü, çekirdek, derleyici vb. de dahil olmak üzere tüm kritik
bileşenler FSF tarafından geliştirilmiş ya da geliştirilmektedir.
12
13. UNIX, AT&T Bell Laboratuarları’nda geliştirilmeye başlanmıştır. Đşletim
sistemi başta “özgür yazılım” tarifini andırır biçimde özgürce tüm
isteyenlere dağıtılırken, AT&T’nin bölünmesinden sonra UNIX’in sahibi
olan AT&T, UNIX’i özgürce dağıtmaktan vazgeçtiğini ve yazılımı lisans
ücreti karşılığında satmayı planladığını duyurur.
O güne değin UNIX’i kullanan ve geliştirilmesine katkı veren akademik
çevre, kendi çıkış yolunu bulmakta gecikmez. Berkeley’den bir grup
geliştirici, AT&T’nin özgür dağıtımı bıraktığı yerden UNIX’i alır ve diğer
katılımcıların da desteği ile özgür bir UNIX üretmeyi ve dağıtmayı
sürdürür. Bu noktadan itibaren UNIX iki ana kola ayrılmıştır; “AT&T
UNIX” ve “BSD UNIX”.
BSD UNIX, “BSD Yazılım Lisansı” ile dağıtılmaktadır. Bu lisans, GPL’den
daha liberal bir lisanstır. BSD lisansı yazılımı tam anlamı ile “sebil”
olarak tanımlar. Yazılımı alan, dilediği gibi kullanmakta özgürdür. GPL
lisansının bir koşulu olan yapılan değişikliklerin kamu ile paylaşılması
şartı BSD lisansı ile söz konusu değildir. Yazılımı alan her istediğini
yapabilir ve yaptıklarını başkaları ile paylaşmak zorunda da değildir.
Bugün pek çok popüler yazılım BSD lisansı ile dağıtılmaktadır. Apache
web sunucusu, BSD lisansı ile dağıtılmaktadır ve pek çok firma (Oracle,
IBM vb.) kendi web sunucusu olarak Apache’yi yeniden adlandırarak
dağıtmaktadır.
Berkeley tarafından geliştirilmesine 90’ların ortasında son verilen BSD
UNIX, daha sonra pek çok kola ayrılmıştır. Bu kolların her biri
(FreeBSD, OpenBSD, NetBSD) hala sürdürülmekte ve BSD lisansı ile
dağıtılmaktadır.
13