pfe101 unite01

15
1

Upload: hakancaglar

Post on 06-Jul-2015

179 views

Category:

Education


2 download

TRANSCRIPT

Page 1: Pfe101 unite01

1

Page 2: Pfe101 unite01

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

21-2

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.

Page 3: Pfe101 unite01

1960 - 1970’li yıllarda her bilgisayar sistemi için özel olarak makine dilinde (ing. assembly) geliştirilmiş işletim sistemleri vardı. Her yeni

31-3

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.

Page 4: Pfe101 unite01

Çok görevli (ing. multi-tasking): Aynı anda birden fazla görevi çalıştırabilme becerisidir. Birden fazla görev birbirine paralel olarak

41-4

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

Page 5: Pfe101 unite01

5

Page 6: Pfe101 unite01

Linux Đşletim Sistemi, Finlandiya Üniversitesi Bilgisayar Bilimleri 2. sınıf öğrencisi Linus Torvalds’ın Intel 80386 işleyicili bilgisayarı üzerinde

61-6

öğ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.

Page 7: Pfe101 unite01

7

Page 8: Pfe101 unite01

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ığı

8

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

Page 9: Pfe101 unite01

Linux, HP-Compaq Alpha, Sun Sparc ve UltraSparc, Motorola PowerPC ve StrongARM gibi onun üzerinde farklı donanım platformu üzerinde

91-9

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.

Page 10: Pfe101 unite01

Temelde Linux çekirdeğini kullanan ve çekirdekle birlikte sunulan yazılımlar bütününe Linux dağıtımı (ing. Linux distribution) adı

101-10

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.

Page 11: Pfe101 unite01

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

11

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.

Page 12: Pfe101 unite01

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

12

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.

Page 13: Pfe101 unite01

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

13

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.

Page 14: Pfe101 unite01

14

Page 15: Pfe101 unite01

15