Açık Kaynak İşletim Sistemi Öğr. Gör. Aslı Ergün DERS 1 Ders Hakkında • Bu derste Açık Kaynak İşletim sistemleri hakkında genel bilgiler, Ubuntu Linux işletim sisteminin kurulması ve çalıştırılması, kullanılan uygulamalar ve linux kabuk (shell) programlama gibi konular anlatılacaktır. • Ders (vize + final) formunda notlandırılacaktır. • Gerekli ders notları: http://kisi.deu.edu.tr/asli.ergun web sitesinde bulunabilir. Açık Kaynak İşletim Sistemi Nedir? • Açık kaynak yazılım veya açık kaynaklı yazılım kaynak kodu isteyen herkese açık olan yazılımlardır. Bu tarzda hazırlanmış işletim sistemlerine Açık Kaynak İşletim Sistemi denir. • Bu tür yazılımların kullanıcıya yazılımı değiştirme özgürlüğü sağlar. Açık kaynak kodlu yazılımlar, uyarlanabilir, sağlam, hızlı ve güvenlidir. Dünyanın her tarafından bilişim uzmanlarınca ortaklaşa endüstri standartlarında geliştirilen açık kaynak kod yazılımları, insanlığın ortak malıdır. Açık Kaynak Yazılımları Hazırlamak • Programcılar yazılımları geliştirirken kullandıkları programlama dilleriyle kaynak dosyaları oluştururlar. • Daha sonra derlemeli dillerde (C, C++, Java, Pascal) bu dosyayı derleyerek çalıştırılabilir hale çevirirler. Ve kullanıcıların ulaşabilecekler sunuculara yüklerler. • Açık kaynaklı yazılım savunucuları, her üretilen ve dağıtılan programla birlikte kaynak kodunun da dağıtılmasını savunurlar. Bu sayede geliştirme esnasında ve ilerde yeni sürümlerin ortaya çıkması esnasında düzeltilip daha kaliteli bir yazılım çıktığını düşünürler. Açık Kaynak Yazılım Örnekleri • Açık kaynak kodlu yazılımları; uygulama ve işletim sistemi yazılımları diye ayırabiliriz • Uygulama yazılımlarına örnekler ; Open Office, GNU uygulama yazılımları(derleyiciler, editörler...) • İşletim Sistemlerine örnekler; Linux, Debian,Android... İşletim sistemleri.. Lisanslar, Özgür Yazılım • Lisans, kullanıcıların yazılım üzerindeki hakları olarak özetlenebilir. Kullanıcılar belirli bir yazılımı kullanma, dağıtma, üzerinde değişiklik yapma ve değiştirdiği şeklini dağıtma haklarına sahip olabilirler. Kullanıcıların yazılımlar üzerinde değişiklik yapabilmeleri için yazılımın kaynak kodunun açık olması gerekmektedir. • GNU GPL (GNU Public Licence): En yaygın kullanılan özgür yazılım lisansıdır. En çok kullanılan platformlardan birisi Linux işletim sistemidir. GPL(Global Purpose Licence) • GPL, FSF (Free Software Foundation) tarafından geliştirilen ve kamunun kullanımına sunulan bir bilgisayar lisansıdır. GPL pek çok özgür yazılım tarafından kullanılmaktadır. GPL'in en fazla kullanıldığı platformlardan birisi Linux işletim sistemidir. • GPL altında yayınlanan bir yazılımla her istediğinizi yapamazsınız. Örneğin o yazılımı, beraberinde kaynak kodları olmaksızın dağıtamazsınız. Başka birisinin dağıtım haklarını kısıtlayamazsınız. GPL Özgürlükleri • Programı sınırsız kullanma özgürlüğü. • Programın nasıl çalıştığını inceleme ve amaçlara uygun değiştirme özgürlüğü. • Programın kopyalarını sınırsız dağıtma özgürlüğü. • Programın değiştirilmiş halini dağıtma özgürlüğü. Linux • Linux (telaffuz: Lin-uks): GNU Projesi çerçevesinde yaratılan Unix benzeri , Unix’e fikirsel ve teknik anlamda alternatif olarak geliştirilmiş; birçok platformda çalışan, çok kullanıcılı, çok işlevli , açık kaynak kodlu, özgür ve ücretsiz bir işletim sistemi çekirdeğidir. Çekirdeğin kaynak kodları GNU Genel Kamu Lisansı çerçevesinde özgürce dağıtılabilir, değiştirilebilir ve kullanılabilir. • Linux dağıtımlarının bazıları şunlardır: Ubuntu, Debian, Opensuse, Pardus, Fedora, vb ... • Kullanım Alanları: Açık kaynak kodlu olması çekirdek yapı üzerinde uygulamayı kolaylaştırmıştır.Bundan dolayı linux farklı amaçlar dahilinde kullanılır. • 1.Linux,cep telefonlarında,cep bilgisayarlarında,diz üstü bilgisayarlarda,masaüstü bilgisayarlarda ve sunucularda kullanımı yaygındır. • 2.Her amaç için farklı bir linux dağıtımı bulmak mümkündür.Ev kullanıcıları için Ubuntu, OpenSUSE, Pardus gibi dağıtımlar yaygınken; sunucularda Debian, Fedora daha yaygın olup ayrıca eğitim için de Edubuntu gibi dağıtımlar bulmak mümkündür. GNU(Gnu is Not Unix ) • Serbest yazılım modeline verilen isimdir. • Yazılımın açık kaynak kodlu olmasını öngörmektedir. • GNU nun sağladığı açık kaynak kodu sayesinde isteyen herkes daha gelişmiş,özgün, üretken çalışmalarda bulunabilir. • GPL - GNU General Public License - GNU Genel Kamu Lisansı • Linux çekirdeğini kullanan kullanıcılar sistemlerine Linux demektedir ancak GNU project GNU/Linux denmesini önerir. • Bir çok GNU programları diğer işletim sistemlerinde de kullanılmıştır. (Windows, BSD, Solaris ve Mac OS gibi) Linux Tarihçesi • Üniversitelerde bilgisayar bilimi öğrencilerine işletim sistemlerini öğretmek için kullanılan Unix işletim sistemi, donanım üreticileri tarafından lisansı alınıp, satılmaya başlandıktan ve çeşitlilik arttıktan sonra yeni bir işletim sistemine gereksinim duyulmaya başladı. Bu amaçla Andrew Tannenbaum tarafından MINIX işletim sistemi geliştirildi. • 1983'de Richard M. Stallman GNU(GNU: GNU's Not Unix) projesini başlatıyor. Özgür bir işletim sistemi geliştirmeyi amaçlıyor, kanıtlanmış bir tasarım modeli için Unix seçiliyor. • 1990 yılında Finli bir bilgisayar bilimi öğrencisi olan Linus Torvalds Intel mimarisindeki bilgisayarlarda hafıza yönetimi yapan bir yazılım üzerinde çalışmaya başladı ve bir süre sonra bu projenin büyüyerek UNIX çekirdeği gibi çalışabileceğini farketti 1991 yılında Linus, comp.os.minix haber grubuna Linux adını verdiği işletim sistemi projesini duyurdu. GNU projesindeki eksik olan parçayı , yani çekirdeği tamamlayan linux zamanla internet üzerindeki bir çok programcı tarafından geliştirildi. Linüx’ün Mimarisi Kullanıcı Uygulamaları (GNU) İşletim Sistemi Servisleri (Apache, Sendmail, vs.) KERNEL (ÇEKİRDEK) – LINUX Donanım Kontrolörleri Donanım – CPU, HDD, Keyboard, Mouse, Monitor, RAM Kernel (Çekirdek) • • • • Tüm işlemlerden sorumlu yönetim kademesidir. Sistemin düzgün çalışmasını sağlar, Bilgisayar kaynaklarının düzenlenler, Kullanıcıların görevlerinin sırayla yapılmasını sağlar, • Bellek denetimi yapar, • Yan birimlerin (CD-ROM,disket sürücü vb. çalışmasından sorumludur. Shell (Kabuk) • Bilgisayar ile kullanıcı arasındaki bağlantıyı sağlar. • Girilen komutları bilgisayara , sonuçları kullanıcıya iletir. User= Kullanıcı Utilities= Yardımcı Programlar Hardware= Donanım Kernel= Çekirdek Shell= Kabuk Shell (Kabuk) Terminal Linux’ün Kullanım Amaçları • • • • Kişisel Kullanım Yazılım Geliştirme İnternet Haberleşmesi İnternet Sunucusu Linux’ün Kullanım Amaçları • Kişisel Kullanım – Linux’ta bir işletim sisteminden beklenebilecek tüm yazılımlar bulunur... – Örneğin applixware ve open office yazılımları red hot dağıtımıyla birlikte verilmektedir... • Yazılım Geliştirme – C,C++,Java,Ada,Fortran,Pascal,Lisp başta olmak üzere hemen hemen her programın derleyici ve yorumlayıcısı Linux’te mevcuttur... Linux’ün Kullanım Amaçları • İnternet Haberleşmesi – Bir modemin sunduğu olanakların hepsini Linux ile de kullanabiliriz... – k-mail ile mail okuyabilir, haber öbeklerinde tartışma gruplarına katılabilriz... • İnternet Sunucusu – Üzerine sunucu sistemi kurulup dosya paylaşımları ve diğer yazılım ve donanım paylaşımları yapılır. Linux’ün Avantajları • • • • • • • • • Ücretsizdir. Kaynak kodu serbesttir. Hızla gelişiyor. Daha güvenlidir. Yüksek performans sağlar. İsteğe bağlı geliştirilebilir. Birden çok kullanıcıyı destekler. Uygulama programları sistemden bağımsız çalışır. Ek yazılım ve sürücü kurulmasına ihtiyaç duymaz Linux’ün Dezavantajları • Yeterince tanıtımı yapılmıyor. • Dinamik ve sürekli değişen bir yapıya sahiptir. • Teknik destek, dağıtım ve dökümantasyon alanında zayıftır. • Linux’un kullanım ve yönetimi daha zordur. • Tüm ihtiyaçlara cevap veremiyor. • Bazı ticari yazılımlar Linux üzerinde fazla gelişemiyor. • Oyunlar ve eğlenceli uygulamalar azdır. • Basit kullanıcıya bazen korkutucu, karışık gelebilir. Dağıtımlar • Linux, GNU projesinin çekirdeğe verilen isimdir. Dağıtımlar, bu çekirdeğe GNU yazılımlarının da ekleyerek sunan alternatif işletim sistemleridir. Yazılımlar GNU tarafından sağlandığı için Linux tabanlı işletim sistemleri GNU/Linux olarak adlandırılır. • En çok bilinen kullanılan dağıtımlar: RedHat, Fedora, Suse, Debian, Mandrake, Ubuntu, Pardus ve Slackware’dir. Bunların yanısıra doğrudan CD’den çalışan Knoppix, Kanotix gibi dağıtımlar vardır. • Dağıtımlar arasındaki farklar nelerdir? - Kurulum yöntemleri farklı - İçerdikleri paketler farklı - Kullanıcı arayüzleri farklı - Sistem yönetiminde farklar var LINUX Dağıtımları (PARDUS, DEBİAN,UBUNTU, OPENSUSE,FEDORA) Windows-Linux Karşılaştırması • Yazılım: Windows’un her versiyonu sınırlı sayıda uygulama içeriyor. Linux’ta ise ana işletim sistemi ile beraber verilecek yazılımların sayısına dağıtıcı karar veriyor.Linux’un bu noktadaki avantajı, yazılımların kurulmasını sağlayan uygulamaların tek bir yönetim sistemi tarafından idare edilmesi.Bu sayede kullanıcı her bir yazılımı tek tek kurmak yerine, tek bir kurulum ile işlemi gerçekleştirir. Windows-Linux Karşılaştırması • Kurulum: Kurulum açısından iki işletim sistemi de birbirine çok yakın. Hem Windows hem de Linux’un kurulum aşamaları oldukça kolay ve kurulum sırasında amatör kullanıcıya yardımcı olan menüler var. Bilinen güvenlik açıkları, sistemdeki ve uygulamadaki hatalar Windows’ta olduğu gibi Linux’ta da güncelleme yoluyla ortadan kaldırılabiliyor. Windows-Linux Karşılaştırması • Gereksinimler: Windows 7 şu anda , kısıtlamalara bağlı olarak 1 Ghz’in üstünde, 32-Bit işlemciye ve 512MB belleğe sahip olan her bilgisayarda kullanılabiliyor. Linux için de yaklaşık 300Mhz’lik bir işlemci ve 128MB’lik bellek minimum sistem gereksinimleri. • Kullanıcı Hakları: Linux’ta sıradan kullanıcılar sadece kendilerine izin verildiği ölçüde değişiklikler yapabilirken, bilgisayar yöneticisi(root) istediği her şeyi yapma hakkına sahip oluyor. Windows’ta ise kurulum aşamasından sonra otomatik olarak kullanıcıya yönetici haklarını veriyor. Windows-Linux Karşılaştırması • Yeni Donanım Ekleme: Kurulum aşamasından sonra bilgisayara takılan donanımları Windows genellikle tanıyor. En kötü ihtimalle bilgisayar baştan başlatıldığında, donanım kullanıma hazır hale geliyor. Linux’ta yeni takılan donanımı otomatik olarak algılama ve kullanıma hazır hale getirme özelliğine sahip.Ancak bu özellik Linux işletim sisteminde takılan donanımın sürücüleri mevcutsa devreye giriyor. Birkaç firma hariç, çoğu firma Linux için donanım sürücüsü çıkarmıyor. Windows-Linux Karşılaştırması • Ofis Programları: Windows altında Microsoft Office,en gelişmiş büro paketi iken, Linux’ta bu rolü Open Office oynuyor. Open Office çok basit bir program olduğundan kullanıcılar çok çaba harcamadan programı kavrayıp kullanabiliyorlar. Open Office1.1.1 versiyonundan itibaren herhangi bir dokümanın Microsoft formatına geçirilmesi veya başka bir ofis dokümanıyla bilgi alışverişi yapması sorun oluşturmuyor. Windows-Linux Karşılaştırması • Virüsler: Günümüzde Linux için de virüsler bulunmasına rağmen, bunlar az sayıda olduklarından ve dosyaların içine gizlenerek bilgisayardan bilgisayara kopyalanamadığından dolayı tehlike oluşturmaz. Linux’ta e-posta ile gelen dosyalar kullanıcıya ulaşır ulaşmaz otomatik çalışmadığı için virüs taşıyan bir e-posta sorun olmaktan çıkıyor. Kullanıcı dosyayı gördükten ve güvenli olduğuna inandıktan sonra çalışma iznini veriyor. Ayrıca Linux’ta browser ve işletim sistemi ayrılmış olduğundan kullanıcı onayı olmadan açılan postalar ve web sayfaları virüs bulaştıramıyor. Windows-Linux Karşılaştırması • Oyunlar: Her iki işletim sisteminde de standart olarak basit oyunlar bulunuyor. Ancak Linux’la birlikte gelen ufak oyun sayısı Windows’tan fazla. Her ne kadar Linux gelişmiş oyunları çalıştırabilse de piyasada Linux için oyun bulunmuyor. Güncel oyunları rahat bir şekilde oynamak sadece Windows’ta mümkün. • Masaüstü: Windows’ta sürükle&bırak özelliği ile herhangi bir uygulamaya yazı veya resim kopyalamak mümkün. Linux’ta ise Open Office programının içindeki uygulamalar arasında sürükle&bırak özelliği kullanılabilirken, diğer Linux uygulamaları ile Open Office arasında bu şekilde bilgi alışverişi yapmak her zaman mümkün olmuyor. Windows-Linux Karşılaştırması • Güvenlik: Linux’un tamamen güvenilir bir işletim sistemi olduğu söylenemez. Ancak Linux güvenlik açısından Windows’tan daha ileride. Örneğin Linux İnternet Explorer ve Outlook Express gibi güvensiz programları kullanmıyor. Ağ hizmetleri konusunda iki işletim sisteminde de yanlış ayarlama yapıldığı takdirde büyük güvenlik açıkları ortaya çıkabiliyor. Ancak Linux geliştirilmeye çok açık bir sistem. Çok yüksek derecede güvenliğe ihtiyaç duyulduğunda, Linux işletim sistemini Selinux (securityenhanced linux) ile bir güvenlik kalesine çevrilebiliyor. Windows-Linux Karşılaştırması • Multimedya: Hem Windows hem de Linux altında çoğu ses ve video dosyasını extra bir araca ihtiyaç duymadan çalıştırmak mümkün. Basit görevler için Linux daha iyi donatılmış olmasına rağmen, profesyonellere hitap etmekte biraz güçlük çekiyor. Windows ‘ta XP ile gelen Windows Movie Maker basit videoları çalıştırmak için yeterli bir program. Linux’ta ise Suse buna karşılık “Main Actor5.2” programının demosunu sunuyor. Tam versiyonu kullanmak için ise belli bir ücret ödemek gerekiyor. Ayrıca Linux’ta Adobe Photoshop gibi resim işleme programlarının yerini tutabilecek bir yazılım henüz geliştirilemedi. Windows-Linux Karşılaştırması • Dil Desteği: Microsoft’un yazılımları Türkiye’de anlaşmalı olduğu bir kurum tarafından çevrildiğinden, piyasadaki tüm Windows’larda aynı dil kullanılmakta.Linux’ta ise dağıtımlarda bulunan uygulamalar tek bir kurum tarafından çevrilmediğinden tamamen Türkçeleşmiş Linux’tan bahsetmek zor. • Ağ ve İnternet: Daha önceden kurulmuş olan bir ağa bağlanmak hem Windows’ta hem de Linux’ta çok kolay. Eğer çevirmeli bağlantı ile internete bağlanılacaksa Windows’ta çok daha hızlı gerçekleşiyor. İnternet kullanıcıları açısından Linux’ta Windows’tan çok daha iyi performans gösteren yazılımlar bulunuyor. AÇIK KAYNAK MOBİL İŞLETİM SİSTEMİ: ANDROID İŞLETİM SİSTEMİ • Android işletim sistemi açık kaynak olarak mobil cihazlar konusunda çığır açmış bir mobile işletim sistemidir. Android Tarihçesi-1 • 2003 yılında Andy Rubin, Rich Miner, Nick Sears ve Chris White tarafından California’da Android Inc. adında bir şirket kuruldu. O zamanlar kimsenin tahmin etmediği şekilde Linux çekirdekli açık kaynak kodlu bir işletim sistemini cep telefonlarına uyarlamayı başardılar. • Google, Android’i henüz 2 yıllık bir firmayken 2005 yılında satın aldı. Android’in kurucuları da Google’da çalışmaya başlayarak projelerine sınırsız mali kaynak bulmuş oldular. Android işletim sistemi gerçek anlamda 2005’ten sonra geliştirilmeye başlanmış oldu. • 2007 yılında Google, Android işletim sistemini geliştirdiğini açıkladıktan kısa süre sonra dev bir birlik kuruldu. Adı Open Handset Alliance (OHA) olan birliğin amacı piyasadaki standartları belirlemekti. Google önderliğindeki bu birlikte HTC, Samsung, LG, Motorola, Sony Ericsson gibi telefon üreticilerinin yanı sıra Intel ve Qualcomm gibi işlemci üreticileri de, Nvidia gibi grafik yongası üreticileri de yer aldı. Android Tarihçesi-2 • 2008 yılına gelindiğinde Google kaynak kodları sundu. Ve telefon üreticileri ilk Android telefonu üretmek için yarışa girdiler. İlk Android telefon olan HTC tarafından yapıldı. HTC Dream, Android 1.0 kullanıyordu. İnternet tarayıcısı, Medya Oynatıcısı, Gmail senkronizasyonu ile o dönem için iyi özelliklere sahipti. Ayrıca Android Market uygulaması da mevcuttu. • Adroid dağıtımları farklı kod adlarıyla dağıtılır ve bilinir oldu. En son Android 4.4 Kitkat dağıtımı mevcuttur. Android Dağıtımları • • • • • • • • • 1.0 sürümü Alpha 1.5 sürümünün kod adı Cupcake 1.6 Donut 2.2 Eclair 2.3. Gingerbread 3.0 Honeycomb 4.0 Ice Cream Sandwitch 4.1 Jelly Bean 4.4 Kitkat Gelecek Ders • Bu dersin amacı açık kaynak kodlu bir işletim sistemi üzerinde deneyim kazanabilmektir. Bu derste Linux Ubuntu dağıtımı üzerinde çalışmalar yapacağız. Önümüzdeki ders Ubuntu kurumu üzerinde duracağız.