SAKARYA ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM BİLİMLERİ FAKÜLTESİ ORTAK BİLGİSAYAR DERSLERİ KOORDİNATÖRLÜĞÜ Temel Bilgi Teknolojisi Kullanımı 2.HAFTA İşletim Sistemleri Arş.Gör. Tuğrul TAŞCI Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi’ne aittir. Bu ders içeriğinin bütün hakları saklıdır. İlgili kuruluştan izin almadan ders içeriğinin tümü ya da bölümleri mekanik, elektronik, fotokopi, manyetik kayıt veya başka şekillerde çoğaltılamaz, basılamaz ve dağıtılamaz. Her hakkı saklıdır © 2013 Sakarya Üniversitesi B ÖLÜM 3 İŞLETİM SİSTEM LERİ Günümüzde kişisel masaüstü ve dizüstü bilgisayarlardan, tablet bilgisayar ve akıllı telefonlara kadar hemen her kullanıcının en az bir tanesine sahip olabileceği cihazlar mevcuttur. Tüm bu cihazların fonksiyonlarını yerine getirebilmesini sağlayan, bir bilgisayar sistemindeki yönetici olarak düşünülebilecek işletim sistemleri bu bölümde ele alınmaktır. Bilgisayar kullanıcısı ile bilgisayar donanımı arasındaki etkileşimi sağlayan işletim sistemleri, öncelikle temel tanım ve özellikleriyle anlatılmakta, arkasından yapılarına ve kullanım amaçlarına göre açıklanmaktadır. Son olarak ise günümüzde yaygın olarak kullanılan yerleşik ve mobil işletim sistemlerinin tarihi gelişimleri ve temel özellikleri ile ilgili bilgiler verilmektedir. İşletim sistemi özellik ve işlevlerinin öğrenilmesi bilgisayar kullanımının her aşamasında okuyucunun gerçekleştirdiği işlemlerin ne anlama geldiği ve nasıl yürütüldüğüne dair bilgi sahibi olmasını sağlayarak uygulamaları daha etkin şekilde kullanmasını temin edecektir. 1.Tanım ve Temel Kavramlar 1.1.Temel bilgisayar sistemi Bir bilgisayar sistemi, bilgisayar genel olarak yandaki şekilde görüldüğü gibi donanımı(hardware), işletim sistemi (operating system), uygulama yazılımları (software) ve kullanıcılardan oluşur. Bilgisayar donanımı da kabaca; merkezi işlem birimi (CPU), bellek (memory), klavye ve monitör gibi giriş/çıkış birimleri (I/O Units) ile sabit disk gibi depolama birimlerinden meydana gelir. Bu bileşenler bir bilgisayarın asli işlevi olan hesaplama için gerekli olan kaynaklardır. Ofis programları (örn. Word, Excel), oyunlar, resim ve video işleme programları (örn. Adobe Photoshop) ve özel amaca yönelik diğer programlar bu donanım birimleri üzerinde bilgisayar kullanıcılarının isteklerini yerine getirmek için birer arayüz görevi üstlenirler. İşletim sistemi ise bilgisayar sistemi için bir yönetici konumundadır. İşletim Sistemi, bilgisayar kullanıcısı ile bilgisayar donanımı arasındaki etkileşimi sağlar. İşletim sisteminin ayrıntılı tanımı ve işlevleri bu bölüm içerisindeki konu başlıkları altında verilecektir. 23 1.2.İşletim sistemi ve özellikleri İşletim Sistemi, yandaki şekilde görüldüğü gibi bilgisayar kullanıcısı ile bilgisayar donanımı arasındaki etkileşimi sağlayan bir arabirim olarak tanımlanabilir. İşletim sisteminin bunun dışında birçok teknik tanımı vardır. Ancak alan uzmanları arasında bu tanımların hiç birisi üzerinde tam bir uzlaşma sağlanamamıştır. Yaygın olarak kabul gören tanımlardan birisi şudur: İşletim sistemi diğer bütün programlardan önce bilgisayarda çalışmaya başlayan ve bilgisayar açık olduğu müddetçe çalışmaya devam eden bir kontrol programıdır. İşletim sisteminin amacı kullanıcının etkili bir şekilde bilgisayarı kontrol etmesini ve uygulama programlarını kullanmasını sağlayacak bir ortam oluşturmaktır. İşletim Sistemi, bilgisayar kullanıcılarının isteklerine uygun olarak işlerini en kolay şekilde yapmalarını sağlamalıdır. Bunun yerine getirilmesi için farklı işletim sistemleri tarafından çeşitli hizmetler(services) sağlanır. Bu hizmetlerin bir kısmı bilgisayar kullanıcıları tarafından direkt olarak yönetilebilirken, bir kısmı da kullanıcılardan etkilenmeden arka-planda çalışmaya devam eder. İşletim sistemlerinin sundukları hizmetler farklı olmakla birlikte, aygıt yönetimi, proses ve kaynak yönetimi, bellek yönetimi ve dosya yönetimi tüm işletim sistemlerinin sahip oldukları temel hizmetler olarak sıralanabilir. Kullanışlı bir işletim sistemi, bilgisayar sisteminin kontrolünü sağlamak için bir dizi özelliklere sahip olmalıdır. İşletim sistemi uygulama programlarını çalıştırabilmeli, giriş/çıkış işlemlerini düzenleyebilmeli, başka sistemlerle iletişim kurabilmeli, hata kontrolü yapabilmeli ve kaynakları paylaştırabilmelidir. Bu özellikler daha detaylı aşağıda tanımlanmıştır: 1.2.1.Program çalıştırma İşletim sistemi herhangi bir programı belleğe yükleyip onu yürütebilmelidir. Bu durumda, program kendi işleyişindeki bir koşulun (örn. süreye bağlı çalışma) yerine gelmesi ile sonlanabileceği gibi kullanıcı tarafından ya da işletim sistemi tarafından da sonlandırılabilir. 1.2.2.Giriş/çıkış işlemleri Çalışan birçok uygulama programı, giriş olarak birtakım veriler alarak çıkışa yine değerler verme eğilimindedir. Bu giriş/çıkış işlemleri bir dosya(örneğin bir program dosyadan bir müşteri kaydını okuyarak değiştirebilir) üzerinde olabileceği gibi bir aygıt (örneğin bir program mikrofondan alarak değiştirdiği bir sesi hoparlörden verebilir) üzerinde de olabilir. 1.2.3.İletişim Bellekte yürütülmekte olan prosesler arasında veri alışverişi sıklıkla gerçekleşen bir işlemdir. Böyle bir bilgi değişimi iki yolla meydan gelir. Birisi aynı bilgisayarda yürütülen iki proses arasında, ikincisi ise birbirine ağ ile bağlı iki bilgisayarda yürütülen prosesler arasında olabilir. İşletim sistemi bu iletişimi sağlayabilmelidir. 24 1.2.4.Hata denetimi İşletim sistemi meydana gelen hatalara karşı duyarlı olmalıdır. Bilgisayar sistemlerinde işlemci, bellek veya çeşitli giriş/çıkış birimlerinde zaman zaman hatalar meydana gelebilir. Bu durumda, işletim sistemi ortaya çıkan hatalara karşı en uygun tepkiyi (program sonlandırma, ekran yenileme vb.) vererek sistemin düzgün olarak işlemeye devam etmesini sağlamalıdır. 1.2.5.Kaynak paylaşımı Aynı anda birden fazla kullanıcının sistemde olması ve devam eden çok sayıda iş olması meydana gelecek bir durumdur. Bu durumda işletim sistemi CPU, bellek, ve çeşitli I/O birimleri gibi donanım kaynaklarını kullanıcılar ve programlar arasında uygun bir şekilde paylaştırabilmeli ve bunun yönetimini etkin şekilde yapabilmelidir. 2.İşletim sistemi fonksiyonları Önceki kısımda kısaca tarif edilen işletim sisteminin temel fonksiyonları bu konu başlığı altında daha ayrıntılı olarak ele alınmıştır. Bu fonksiyonlar proses yönetimi, bellek yönetimi, dosya yönetimi, giriş/çıkış birimleri yönetimi, disk(depolama) yönetimi, ağ(network) yönetimi sağlama ile sistem koruma ve komut yorumlama işlemleri olarak sıralanabilir. 2.1.Proses yönetimi Komutları bir CPU tarafından işletilmeyen bir program hiçbir işlem yapamaz. Bir proses yürütülmekte olan bir program olarak düşünülebilir. Proses herhangi bir bilgisayar sistemindeki bir iş birimidir. İşletim sistemi, bir kısmı kendi işleyişi için gerekli olan işletim-sistemi prosesleri, bir kısmı da kullanıcıların çalıştırdığı programlara ait prosesler olmak üzere çok sayıda proses içerir. Bütün bu prosesler CPU tarafından belli zaman aralıklarında yürütülür. İşletim sistemi, sistem veya kullanıcı prosesleri üzerinde yönetimi aşağıdaki aktivitelerle gerçekleştirir: Yeni proses oluşturma ve yürütülen prosesleri sonlandırma Prosesleri askıya alma(bekletme) ve askıdaki prosesleri tekrar yürütme Proses senkronizasyonunu sağlamak için gerekli mekanizmaları oluşturma Proses iletişimi kurmak için gerekli mekanizmaları oluşturma 2.2.Bellek yönetimi Bellek, birçok bilgisayar kullanıcısının ismini RAM olarak duyduğu, modern bir bilgisayar sisteminin merkezindeki birimdir. Bellek yüz binlerce ve hatta milyonlarca veri hücresinden oluşan geçici bir depolama birimi olarak tanımlanabilir. Bellek bilgisayar sistemine bağlı olarak, söz konusu veri hücrelerinin satır ve sütun düzeninde sıralanmasından oluşur. Belleğin her bir satırındaki hücre sayısı, bir bellek-kelimesi (memory-word) olarak adlandırılır. Bellek kelimesinin uzunluğu, o bilgisayar sisteminde parçalanmadan saklanabilecek veri boyutunun üst sınırını belirler. Bellekteki satır sayısı ise belleğin kapasitesini belirler. 25 Bellek, CPU ve giriş-çıkış birimleri tarafından ortak kullanılabilen ve çok hızlı bir şekilde erişilmesi gereken verilerin, sistem ve kullanıcı programlarının yürütülmesinde bilgisayar açık olduğu müddetçe saklandığı bir depo olarak kullanılır. İşletim sistemi bellek yönetimini aşağıdaki aktivitelerle gerçekleştirir: Herhangi bir anda belleğin hangi kısımlarının hangi birimler tarafından kullanıldığına ilişkin bilgileri saklama Bellek uygun olduğunda hangi proseslerin işleme konulacağını belirleme Gerektiğinde bellek ayırma ve ayrılan belleği geri alma 2.3.Dosya yönetimi Dosya yönetiminin, işletim sisteminin en belirgin fonksiyonlarından birisi olduğu söylenebilir. Bilgisayar sistemlerinde veriler fiziksel ortamlarda çeşitli şekillerde saklanır. Manyetik teyp, manyetik disk (sabit disk) ve optik disk (CD/DVD-ROM) en çok kullanılan fiziksel depolama ortamlarıdır. Bu fiziksel depolama ortamlarının her birinin kendine ait özellikleri ve fiziksel organizasyonu vardır. Ve bu ortamların her birisi disk veya teyp sürücü gibi bir aygıt tarafından kontrol edilir. Aygıtlar, ortamların hız, kapasite, veri transfer oranı ve erişim metodu(ardışık veya rasgele – örneğin manyetik teybe ardışık olarak, manyetik diske ise rasgele erişilir.) gibi özelliklerini kontrol ederler. Bilgisayar sisteminin gerektiği gibi kullanılması için işletim sistemi depolanan verilerin mantıksal bir görüntüsünü oluşturur. İşletim sistemi, “dosya(file)” olarak adlandırılan mantıksal bir depolama birimi tanımlamak için, fiziksel özelliklere bağımlı değildir. İşletim sistemi, dosyaları fiziksel depolama ortamına karşılık getirir ve bu dosyalara depolama birimleri üzerinden erişir. Dosya, oluşturucusu (bir uygulama veya işletim sistemi) tarafından tanımlanan ve belli bir biçimde (dosya formatı; örneğin Word 2010 dosyaları .docx uzantısıyla kaydeder) sıralanan veri topluluğudur. Dosyalar sayısal (numeric) veya alfabetik formdaki verilerden oluşabilir. Klasör, dosyaların düzenli biçimde tutulmasını sağlayan mantıksal bir yapıdır. Dosyalara birden fazla kullanıcı erişmek isteyebilir, bu durumda, hangi kullanıcının hangi dosyaya ne şekilde eriştiği bilgilerinin işletim sistemi tarafından tutulması istenir. İşletim sistemi dosya yönetimini aşağıdaki aktivitelerle gerçekleştirir: Dosya oluşturma ve silme Klasör oluşturma ve silme Dosya ve klasör üzerinde değişiklik yapma Dosyaları bir depolama birimine karşılık getirme Sabit depolama ortamlarında saklanan dosyaların yedeğini alma 26 2.4.Giriş-çıkış birimleri yönetimi İşletim sisteminin fonksiyonlarından birisi de donanım özelliklerini ve bunlar üzerindeki düzenlemeleri kullanıcılardan saklamaktır. Örneğin, MS Word programını kullanarak metin yazmak isteyen bir kullanıcı klavyede bir tuşa dokunduğunda arka-planda işletim sistemi tarafında birçok iş yürütüldüğü halde bunları bilmez, sadece tuşa dokunduğunda onun ekranında görünmesi ile ilgilenir. Oysa kullanıcının klavyedeki bir tuşa dokunmasıyla birlikte, ilgili karakterin ne olduğu işletim sistemi tarafından belirlenerek MS Word programına iletilir. Aynı şekilde karakterin ekranda gösterimi de yine işletim sisteminin monitöre ilgili bilgiyi iletmesiyle gerçekleşir. İşletim sistemi giriş-çıkış birimlerini aşağıdaki aktivitelerle yerine getirir: Okuma(read) ve yazma(write) isteklerini düzenleme Genel bir aygıt yöneticisi ara-birimi sağlama Özel donanımlar için sürücüler sağlama 2.5.Disk yönetimi İşletim sisteminin temel amaçlarından birisi uygulama programlarını çalıştırmak ya da başka bir deyişle bunların çalıştırılabileceği ortamı hazırlamaktır. Eriştikleri verilerle birlikte, programların çalışırken belleğe yüklenmesi gereklidir. Bellek bütün veri ve programları içine alacak kadar büyük olmadığından, ayrıca güç kaynağı kesildiğinde bunlar kaybolacağından, bilgisayar sisteminde bellekteki bilgilerin yedeğini almak için depolama birimleri olması gerekir. Depolama birimi olarak manyetik teyp, manyetik disk, optik disk, disket, CD, ve DVD gibi ortamlar kullanılabilir. Program verileri söz konusu depolama birimlerinden birinde veya birkaçında tutulur ve ihtiyaç duyulduğunda (çalıştırılmaları gerektiğinde) belleğe yüklenirler. İşletim sistemi, disk yönetimini aşağıdaki aktivitelerle gerçekleştirir: Boş alan yönetimi Depolama alanı ayırma Disk programlama (disk birleştirme, tarama gibi) 2.6.İşletim sisteminin diğer fonksiyonları İşletim sistemi yukarda bahsedilen fonksiyonların dışında, başka bilgisayar sistemleri ile iletişim kurma(ağ yönetimi), kullanıcı programlarının ve proseslerinin bilgisayar sisteminin CPU, bellek ve I/O gibi kaynaklarına istenmeyen müdahalelerini önleme ve komut yorumlayıcı(örneğin MSDOS işletim sisteminde bu belirgin olarak görülebilir. Sistem kullanıcıdan sürekli olarak bir komut bekler ve istenen işlemi gerçekleştirir) olarak çalışma gibi fonksiyonları vardır. 3.İşletim Sistemi Türleri Elektronik devreler ve bu devrelerden meydana gelen bilgisayar donanımlarının geçtiğimiz yarım yüzyıl boyunca sürekli olarak daha küçük fiziksel boyutlara sahip olmaya devam ederken, daha hızlı ve yüksek kapasiteli veri işleme desteği vermelerine paralel olarak, zaman içerisinde fonksiyonlarının sayısı ve etkinliği sürekli artan işletim sistemleri de ortaya çıkmıştır. Son yıllarda ise işletim sistemleri artık tablet PC, akıllı telefon ya da avuç-içi bilgisayar olarak 27 kullanıcılara sunulan mobil cihazlarda çalışabilecek hale gelmiştir. Öyle ki, bu mobil cihazlar bundan on yıl önce piyasaya sunulan kişisel masaüstü bilgisayarlara göre çok daha yüksek donanım özelliklerine sahip durumdadır. Bilgi ve iletişim teknolojilerinin her alanda öncülüğü yapan Google, Apple ve Microsoft gibi küresel düzeydeki bilişim firmaları günümüzde kendi birimlerinde ürettikleri ya da donanım üreticisi uluslararası firmalarla yaptıkları ortaklıklarla ürettirdikleri bilgisayarlar için her geçen gün yeni endüstriyel, ticari ve masaüstü ya da mobil kişisel kullanıma uygun işletim sistemleri geliştirmektedirler. Önceki kısımlarda standart bir işletim sisteminin genel tanımı, özellikleri ve fonksiyonları üzerinde durulmuştu. Bu kısımda ise işletim sistemleri işleyiş prensipleri ve türlerine göre ele alınmış, tarihsel gelişim süreci ile birlikte kısaca açıklanmıştır. Batch sistemler İlk bilgisayar sistemleri “mainframe” olarak adlandırılan çok büyük fiziksel boyutlara (bir oda büyüklüğüne) sahip makinelerdi. Delikli bir kart üzerine istenen hesaplamaya ilişkin verilerin uygun şekilde işaretlenerek bilgisayara verilip, elde edilen sonuçların yazıcıya aktarılması yoluyla işletilen bu bilgisayarlar “Batch” adıyla sınıflandırılan işletim sistemlerine sahiplerdi. Bu işletim sistemleri girişleri toplu olarak alıp hesaplama sonuçlarını da toplu olarak verirlerdi. Günümüzde bu tip işletim sistemleri artık sadece tarih olmuştur. Çoklu programlanmış(Multi-Programmed) sistemler Batch türü işletim sistemlerinden sonra biraz daha gelişmiş bir işletim sistemi türü ortaya çıkmıştır. Bu yeni işletim sistemi mimarisi, bellekte bulunan birden fazla iş içerisinden bir sonraki adımda hangisinin seçileceğini belirleyen bir mekanizmaya sahip idi. Buna Çokluprogramlanmış işletim sistemi adı veriliyordu. Günümüzde bu tip işletim sistemleri de kullanılmamaktadır. Zaman-paylaşımlı(Time-Sharing) sistemler Çoklu-programlanmış işletim sistemleri bilgisayar sistemi kaynaklarının Batch modeline göre daha etkin kullanımını sağlıyordu. Böyle olmasına rağmen kullanıcı tarafında hala bir takım zorluklar vardı. Örneğin bir proses yürütülürken kullanıcının herhangi bir müdahalesi söz konusu değildi. Kullanıcı çok adımlı bir iş yaptıracağı zaman bütün işi önceden tanımlamak zorundaydı. Çoklu-programlanmış sistemlerin mantıksal bir uzantısı olarak sayılabilecek zamanpaylaşımlı sistemlerin işleyişi, CPU’nun birden fazla sayıda proses arasında geçiş yaparak her birisine bir zaman dilimi ayırması esasına dayanır. Bu da kullanıcını bir iş devam ederken ona müdahale edebilmesi anlamına gelir. Günümüzde kullanılan işletim sistemleri zaman-paylaşımlı bir altyapının gelişmiş hali olarak düşünülebilir. Kişisel işletim sistemleri Elektronik teknolojisindeki gelişmelerle birlikte bilgisayar sistemlerinin donanım maliyetleri 1970’lerden itibaren hızlı bir şekilde düşmeye başlamıştır. Bu durum kişisel bilgisayarların (Personel Computer - PC) ortaya çıkmasını sağlamıştır. Kişisel bilgisayarların ortaya çıkmasıyla birlikte de kişisel işletim sistemleri geliştirilmeye başlanmıştır. Kişisel bilgisayarlar 1970’lerde görülmeye başlanmıştır. Bunlar, mainframe denilen önceki bilgisayarlardan hem boyut olarak çok daha küçük, hem de ekonomik açıdan daha düşük bir maliyete sahiptiler. Gelişme sürecinin ilk on yılında kişisel bilgisayarlar, işletim sistemini kullanıcı programlarından koruyacak bir 28 mekanizmaya sahip değildiler. Bundan dolayı, bu süreç içinde ortaya çıkan işletim sistemleri ne çok kullanıcılı ne de çok işlemliydi. Ancak bu dönemde hızla gelişen teknolojiyle birlikte işletim sistemlerinde de büyük gelişme görüldü. Bu dönemde Microsoft DOS, Apple Macintosh, IBM OS/2 ve Microsoft Windows gibi kişisel bilgisayarlarda çalışan işletim sistemleri ortaya çıkarılmıştır. Yeni gelişmelerle birlikte kişisel işletim sistemleri, çoklu-programlı ve zamanpaylaşımlı sistemlerin özelliklerini kapsayacak şekilde oluşturulmuştur. Günümüzde kişisel işletim sistemlerinin güncel sürümleri kullanılmaya devam etmektedir. Ağ işletim sistemleri Ağ işletim sistemi, sunucu(server) özelliğine sahip bir bilgisayar üzerinde işleyen ve bu sunucu bilgisayarın kendi üzerinde ya da istemci(client) bilgisayarlar üzerinde tanımlı veritabanı, dosya, kullanıcı ve kullanıcı gruplarını yönetmesi, erişim güvenliğini tesis etmesi, ve ağ üzerindeki çeşitli uygulamalar ile işlevlerin yürütülmesini sağlayan bir sistem yazılımıdır. Ağ işletim sistemi, örnek olarak bir ağdaki (çoğunlukla kablolu ya da kablosuz yerel ağ) farklı bilgisayarlardan, paylaşılan dosya ve yazıcılara erişmeyi mümkün hale getirir. Ağ işletim sistemlerinin tarihi gelişimleri üç nesil olarak düşünülebilir. 1990’lı yılların ortalarında geliştirilerek piyasaya sunulan ağ işletim sistemleri ikinci nesil olarak adlandırılmaktadır. Bu sistemler, çoklu işleme(multi-tasking & multi-threading), ve bellek yönetimi gibi işlemleri ilk nesil sistemlere göre çok daha etkin şekilde yerine getirerek hataları asgari seviyeye düşürebilecek şekilde gelişmiş işlevlere sahip olarak piyasaya sunulmuştur. Üçüncü nesil ağ işletim sistemleri ise günümüzde de kullanılmaya devam eden ve yüksek performans ve güvenlik gereksinimi olan ağlar da dahil olmak üzere birçok ağ üzerinde ölçeklenebilir ve sürekli erişilebilir hizmetler sunmaktadırlar. En yaygın olarak kullanılan istemci/sunucu tipi ağ işletim sistemleri arasında Microsoft Windows Server (2003/2008/2012), BSD ve Mac OS gibi türevleri ve Novell Netware sistemleri sayılabilir. Bunun yanında, yönlendirici (router), switch (anahtar) ya da donanımsal bir güvenlik ateş-duvarı (firewall) üzerinde gömülü olarak çalışabilen JUNOS, Cisco IOS ve ZyNOS gibi sistemlerde günümüzde mevcuttur. Paralel sistemler Birçok bilgisayar sistemi tek işlemciye(CPU) sahiptir. Ancak günümüzde çok işlemcili sistemlere doğu bir eğilim ortaya çıkmıştır. Bu tip sistemlerde ortak bir veri yolu(bus), ortak bir frekans(clock), ve bazen de ortak bir bellek ve ortak aygıtlar kullanılmaktadır. Paralel sistemler kullanmanın birkaç nedeni vardır. Avantajlardan birisi çok işlemciyle bir takım hesaplamaların daha kısa sürelerde yapılabilmesidir. Ayrıca bu sistemlerin güvenilirliği daha yüksek bir seviyededir. Bir işlemcinin devreden çıkmasıyla birlikte yapılan işlerde bir duraklama olmaz. Geriye kalan işlemciler ortadaki işi yürütmeye devam ederler. Paralel işletim sistemleri sözü edilen bu yapıyı kontrol eden sistem programlardır. Dağıtık(Distributed) sistemler Dağıtık sistemler de paralel sistemler gibi birden fazla sayıda işlemciye sahiptir. Ancak dağıtık sistemlerde işlemciler aynı belleği ve aynı frekansı kullanmazlar. Bunun yerine her bir işlemcinin kendine ait belleği bulunur ve her işlemci diğeriyle yüksek-hızlı yollar vasıtasıyla iletişim sağlar. Dağıtık bir sistemdeki işlemciler fonksiyon ve özellik bakımından farklı olabilir. Bu sistemler kişisel bilgisayarlar veya iş istasyonlarından oluşabilir. Dağıtık sistemlerin avantajları aşağıdaki gibi sıralanabilir: 29 Kaynaklara ortak erişim Hesaplama süresinin düşmesi Güvenilirliğin yüksekliği Sistem bileşenleri arasında iletişimin varlığı Gerçek-zamanlı sistemler Özel amaçlı işletim sistemlerinden birisi de gerçek-zamanlı sistemlerdir. Gerçek-zamanlı sistemler çoğunlukla, zaman konusunda katı kısıtlamalar olduğunda kullanılır. Bu sistemler genellikle gerçek zamanda meydana gelen bir veri akışıyla işler. Bir odadaki sıcaklığın belirli zaman aralıklarında ısı algılayıcılarıyla ölçülerek, bu tür bir sisteme aktarılması ve sistemin bu sıcaklık değerini hassas bir takım hesaplamalarda kullanması gerçek-zamanlı bir sistemin çalışmasına örnek olarak gösterilebilir. Gerçek-zamanlı sistemlerin en önemli özelliği hesaplamaları yaşanan zamanda yapmayı garanti etmesidir. Doğal olarak bu da özel donanımlar gerektirir. 4.Yaygın Kullanılan İşletim Sistemleri Günümüzde en küçük akıllı mobil cihazlardan, endüstriyel üretimde kullanılan makinelere özel olmak üzere birçok işletim sistemi mevcuttur. Bununla birlikte son kullanıcılar yaygın olarak Apple Macintosh, Microsoft Windows ve Unix/Linux tabanlı işletim sistemlerini kullanmaktadır. Bu kısımda, yaygın kullanılan masaüstü kişisel işletim sistemlerinin tarihi gelişimi ve temel özelliklerinden kısaca bahsedilecektir. 4.1.Unix/linux tabanlı işletim sistemleri Unix işletim sistemi 1969 yılında ABD’de tasarlanıp uygulamaya konulmuş çok kullanıcılı (multiuser), çok görevli yapıyı destekleyen (multitasking) bir bilgisayar işletim sistemidir. Kullanıcı ile bilgisayar sistemimin etkileşimin komut yorumlayıcı yazılımlar (shell) aracılığı ile sağlandığı işletim sisteminin 1973 yılında yeni bir sürümü geliştirilmiş ve daha sonraki yıllarda hızlıca büyüyerek öğretim kurumları ve işletmeler tarafından kabul edilir bir işletim sistemi haline gelmiştir. UNIX işletim siteminin günümüzde de kullanılmaya devam eden çok sayıda türevi mevcuttur. Bu işletim sistemi ve türevleri iş-geliştirme amaçlı çok işlemcili sunucu bilgisayarlardan kişisel bilgisayarlara kadar pek çok cihaz üzerinde çalışabilme özelliğine sahiptir. Esnek ve kararlı yapısı ile çok kullanıcılı-çok görevli olarak işleyebilmesi dolayısıyla özellikle sunucu bilgisayarlar için neredeyse bir standart halini almış ve başta akademik camia olmak üzere iş istasyonları üzerinde çok yaygın bir kullanım alanı bulmuştur. Linux, ilk olarak Unix işletim sisteminden fikirsel ve teknik anlamda esinlenilerek Linus Torvalds tarafından 1991 geliştirilmiş; açık kaynak kodlu ve ücretsiz bir işletim sistemi çekirdeğidir. Çok geniş bir donanım desteğine sahip olan Linux çekirdeği; dizüstü ve masaüstü bilgisayarlar, sunucu, iş istasyonu, akıllı telefon ve gömülü cihazlar gibi hemen her platformda tam bir uyum içerisinde çalışabilmektedir. Bu işletim sisteminin kaynak kodları belirli kullanım koşulları çerçevesinde özgürce dağıtılabilir, değiştirilebilir ve kullanılabilir. Günümüzde birçok kurum ve kuruluş 30 serbestçe dağıtılan Linux çekirdeğini kendi bünyelerinde geliştirerek farklı Linux dağıtım paketleri elde etmekte ve bunlardan bir kısmı başka kurumlara ya da kişilerin ücretli kullanımına sunulabilmektedir. Söz konusu dağıtım paketlerinden en yaygın olarak kullanılanlar arasında Red Hat, OpenSUSE, Fedora, Ubuntu ve TÜBİTAK tarafından desteklenen Pardus adlı Linux türevleri sayılabilir. 4.2.Macintosh işletim sistemleri Macintosh işletim sistemi, bilişim dünyasının önde gelen firmalarından son kullanıcılar tarafından en çok bilinen IPhone ürününün de sahibi olan Apple tarafından ilk olarak 1984 yılında piyasaya sürülmüştür. Macintosh işletim sistemi de aslında Unix türevi açık kaynak kodlu bir işletim sistemidir. Son yıllara kadar yasal olarak sadece Apple marka bilgisayarlar ile uyumlu çalışan bu işletim sistemi günümüzde artık Intel gibi işlemci üreticilerinin ürünleri ile de uyumlu hale getirilerek diğer kişisel bilgisayarlarda da çalışabilmeye başlamıştır. Grafik işleme açısından oldukça yetenekli olan Macintosh işletim sistemleri çoğunlukla yayıncılık sektöründe kullanılmaktadır. Mac OS kısaltmasını kullanan, 7, 8, ve 9. sürümleri ile “Leopard” ve “Snow Leopard” olarak adlandırılan dağıtım paketleri bulunan Macintosh işletim sistemi günümüzde Apple ve Intel uyumlu bilgisayarlarda kullanılmaktadır. 4.3.Windows işletim sistemleri Windows, 1975 yılında Bill Gates ve Paul Allen tarafından temelleri atılan Microsoft firması bünyesinde geliştirdikleri işletim sistemlerine verdikleri ön addır. Microsoft firması her evde masaüstünde bir bilgisayar olması hedefiyle başlattıkları çalışmaları ilerleyen yıllarda yeni işletim sistemleriyle sürekli olarak desteklemişlerdir. 1981 yılında MS-DOS(Microsoft Disk Operating System) adı verilen işletim sistemini Microsoft IBM uyumlu kişisel bilgisayarlarda çalışır hale getirmişlerdir. Bir komut yorumlayıcı yazılımıyla kullanıcı etkileşiminin sağlandığı MSDOS işletim sistemi 2000 yılına kadar Microsoft tarafından geliştirilmeye devam edilmiştir. 2000 yılında geliştirilmesi bırakılan MS-DOS işletim sistemi günümüzde Windows işletim sistemleri içerisinden erişilip kullanılabilen bir araç haline gelmiştir. 1985 yılında Microsoft Windows 1.0 işletim sistemini piyasaya sunmuştur. Windows işletim sistemi açılır-kapanır menüler, kaydırma çubukları, program ikonları ve diyalog kutuları gibi kullanıcılara o güne kadar sunulmayan görsel öğelere sahip olan grafik desteğiyle gelmiştir. Söz konusu işletim sistemi kullanımının kolaylığı dolayısıyla son kullanıcılar tarafından büyük rağbet görmüş ve sonraki yıllarda Microsoft tarafından piyasa sunulan Windows 3.1, Windows 95, Windows 98 ve Windows ME/2000 gibi işletim sistemlerinin popülerliği kişisel bilgisayarların fiyatlarının düşmesiyle de bağlantılı olarak oldukça artmıştır. Microsoft 2001 yılında Windows XP olarak adlandırdığı işletim sistemini piyasaya sunmuştur. Windows XP işletim sistemi kullanım kolaylığı, donanım sürücüleri (tak kullan) desteği ve hatalara karşı kararlı yapısı başta 31 olmak üzere daha birçok özelliği ile kısa sürede dünya çapında satışa sunulan kişisel bilgisayarların büyük kısmında kullanılır hale gelmiştir. Öyle ki Windows Vista ve Windows 7 gibi daha yeni işletim sistemi sürümleri piyasada bulunmasına rağmen birçok kurum/kuruluş ve kişi halen Windows XP işletim sistemini kullanmaya devam etmektedir. Hatta Microsoft firması artık “Neden Windows 7’ye geçmelisiniz?” başlığında makaleler yayınlayarak kullanıcıları Windows 7 almaya teşvik etmektedir. Günümüzde artık üretilen kişisel bilgisayarların birçoğunda Windows 7 işletim sistemi bulunmaktadır. Windows 7 donanım sürücülerine verdiği çok büyük destek ile kullanıcıları donanım uyumsuzluklarından hemen hemen tamamen kurtarmıştır. Ayrıca İnternet’in de neredeyse her eve girdiği bugün son yıllarda piyasa sürülen birçok işletim sistemi gibi Windows 7’de kullanıcıya problem üretmeden İnternet’e bağlanarak arka-planda işletim sistemine ve donanım sürücülerine ait güncellemeleri kolaylıkla yapabilmektedir. Bunun yanında, Windows 7 işletim sisteminin sunduğu kullanımı kolaylaştıran ve esnek hale getiren çok sayıda özelliği mevcuttur. Bölüm 4’de Windows 7 işletim sistemi detaylı olarak ele alınacaktır. Microsoft firmasının 1980-2012 yılları arasında geliştirdiği kişisel işletim sistemleri aşağıdaki grafikte verilmiştir. 5.Mobil İşletim Sistemleri Son yıllarda elektronik dünyasında ve buna paralel olarak bilgisayarlarda çok önemli gelişmeler ve çok hızlı değişimler meydana gelmiştir. Günümüz dünyasında artık hemen hemen her kişinin en az bir mobil cihazı bulunmaktadır. Bu cihaz çoğunlukla cep telefonu olarak kendini göstermektedir ancak hızla artan bir eğilim ile birlikte artık akıllı telefonlar ve tabletler de kullanılan mobil cihazlar arasına katılmıştır. Bunda GSM şirketlerinin sağladığı 3G/4G teknolojisinin kullanıldığı mobil internet hizmetleri ile diğer kablosuz internet erişim noktalarının hem daha düşük ücretlerle kullanıma sunulmasının hem de yaygınlaşmasının büyük önemi vardır. Günümüzde piyasaya sürülen hemen her yeni mobil cihazın kablosuz internet bağlantısı bulunmakta, Internet kullanımının da birçok kişi için gereksinim haline gelmesi mobil cihazlara olan ilgiyi sürekli olarak artırmaktadır. Bu konu başlığı altında mobil 32 cihazlar üzerinde çalışan işletim sistemleri kısaca ele alınarak yaygın olarak kullanılan Android, IOS ve Windows Phone işletim sistemleriyle ilgili temel düzeyde bilgi verilecektir. 5.1.Android işletim sistemi Android, Google ve özgür bir yazılım topluluğu tarafından geliştirilen, Linux tabanlı, mobil cihaz ve cep telefonları için geliştirilen, açık kaynak kodlu mobil bir işletim sistemidir. Android ilk olarak 2007 yılında duyurulmuş ve 2008 yılı ile birlikte açık kaynak kod lisansıyla yazılımcıların geliştirmesine uygun hale getirilmiştir. Günümüzde dünya çapında çok sayıda yazılım geliştirici Android çekirdeği üzerinde değişiklikler yapmakta ve Android üzerinde çalışan uygulamalar geliştirmektedir. Geliştirilen uygulamalar Android Market (yeni adıyla Google Play) adındaki merkezi uygulama kütüphanesine online olarak yüklenmekte ve çok küçük meblağlarla Andorid işletim sistemi kullanan mobil cihaz kullanıcılarına pazarlanmaktadır. Böylelikle hem yazılım geliştiriciler milyonlarca kullanıcıya bir anda ulaşarak büyük bir pazarda ürünlerini satabilmekte hem de Android uygulama kütüphanesi çok hızlı bir şekilde büyümektedir. 5.2.IPhone OS (IOS) işletim sistemi IPhone OS, Apple firmasının geliştirdiği ve 2007 yılında piyasaya sunduğu mobil işletim sistemidir. IOS da Android gibi Linux çekirdeğini kullanan bir işletim sistemidir. IOS günümüzde kullanıcıların en büyük ilgiyi gösterdikleri IPhone ve IPad cihazlarına ait işletim sistemidir. Apple firması da Google gibi IPhone ve IPad cihazları üzerinde çalışan uygulamaların tüm dünyadaki yazılım geliştiriciler tarafından desteklenen uygulama marketine(App Store) sahiptir. Son rakamlar Apple uygulama marketinde 600 binin üzerinde, Google uygulama marketinde ise 500 bine yakın uygulama olduğunu göstermektedir. Resim, müzik, video gibi eğlenceye yönelik uygulamalardan kişisel bilgi güvenliği ve navigasyon uygulamalarına kadar çok çeşitli alanlarda uygulama barındıran bu sanal marketler kullanıcıların büyük ilgisini çekmektedir. 5.3.Windows mobile/phone işletim sistemi Microsoft mobil cihazlara yönelik olarak 2002 yılında geliştirdiği Windows Mobile işletim sistemini, ilerleyen yıllarda bu işletim sisteminin Microsoft’un rakipleri olan Google ve Apple firmalarının ürünlerine göre nispeten geride kalması dolayısıyla 2009 yılından itibaren Windows Phone adını verdiği yeni platformla güncellemiştir. Windows Phone günümüzde hala mobil cihazlar pazarında rakiplerinin gerisindedir ancak Microsoft’un lider olduğu kişisel bilgisayar pazarındaki güçlü yönleriyle mobil cihaz platformlarını desteklemesi pazarda hızla yol alabilmesini sağlamıştır. Microsoft’un yazılım geliştirme platformu olan Visual Studio kolay bir şekilde Windows Phone uygulamaları geliştirmede de kullanılabilmektedir. Bugün Windows Phone uygulama marketinde 100 binin üzerinde uygulama mevcut iken Microsoft ürünlerini kullanan yazılım geliştiricilerin sayısının rakiplerine göre oldukça fazla olması önümüzdeki yıllarda uygulamaların da çok hızlı şekilde artarak Apple ve Google uygulama marketlerindeki sayılara erişmesi mümkün görünmektedir. 33 6.İşletim Sistemlerinin Geleceği Günümüzde işletim sistemleri iki yönde gelişmektedir. Bunlardan ilki yeni nesil mobil işletim sistemleridir. Bunlar gün geçtikçe, birkaç yıl öncesinin masaüstü bilgisayarları kadar hatta daha yüksek teknik özelliklere sahip mobil cihazlar (akıllı telefon, tablet) için hayatı oldukça kolaylaştıran bankacılık, GPS ve navigasyon ve etkileşimli eğlence uygulamalarını destekleyen servisler sağlamaktadırlar. Ayrıca çok yüksek veri transfer hızları sağlayan 4G/LTE teknolojisi, giderek kablosuz mobil internet standardı olmaya başlamıştır. Bu sayede kullanıcılar artık sabit bir bilgisayara ihtiyaç duymaksızın hemen hemen tüm işlerini mobil cihazları kullanarak halledebilmektedirler. Gelişmenin olduğu diğer yöndeki yerleşik işletim sistemleri ise artık bulut(cloud) adı verilen yüksek performanslı sanallaştırılmış sunucu bilgisayarlar üzerinde çevrim-içi olarak kullanılabilme noktasına gelmiştir. Artık son kullanıcılar bilgisayarları üzerinde kurulmuş olan temel bir uygulama(tipik olarak bir web tarayıcı yazılımı) üzerinden çevrim-içi olarak sunulan birçok fonksiyonu kullanabilmektedir. Örneğin, Google Dökümanlar ya da Microsoft Office 365 adlı uygulamalar sayesinde kullanıcılar kelime işlemci, çalışma kitabı, sunum, veritabanı ya da anket gibi uygulamaları çevrim-içi çalıştırıp bulut üzerinde dosyalarını oluşturabilmekte ve kendi bilgisayarlarıyla bulut üzerindeki klasörlerini (Google Drive, Sky Drive) senkronize edebilmektedirler. Böylelikle 7/24 şekilde erişilebilir ve yedekli olarak yönetilen bulut üzerindeki sunucularda verilerini güvenle saklayabilmektedirler. Aynı zamanda, birçok kullanıcı için erişilebilirliği nerdeyse yüzde yüz seviyelerine ulaşan kablolu ya da kablosuz internet bağlantılarıyla kullanıcılar sosyal ağlar(facebook, twitter vb.) üzerinde ya da noktadan noktaya (peer to peer) sürekli olarak veri ve uygulama paylaşımı yapabilmekte, farklı mekânlarda olsalar bile ortak projeler üzerinde çalışabilmektedirler. Bu kitapta temel alınarak özellik ve işlevleri Bölüm 4’te detaylı olarak anlatılan Windows 7, dünyanın bilişim alanındaki önde gelen firmalarından Microsoft’un 40 yılı aşkın deneyimini işlevlerine yansıttığı gelişmiş bir işletim sistemi durumundadır ve bugün 500 milyonun üzerinde kişisel bilgisayar kullanıcısı bu işletim sistemini tercih etmektedir. Henüz deneme aşamasında olan Microsoft’un bir sonraki sürüm işletim sistemi Windows 8, temel olarak Windows 7’nin sahip olduğu işlevlerin büyük kısmını aynen korurken özellikle kullanıcı ara-yüzünde bazı değişikliklerle piyasaya sunulacaktır. Bununla birlikte, Windows 7’ye ilişkin olarak kitapta yer verilen bilgilerin okuyucu tarafından kavranması, gelecekte kullanımda olacak sonraki sürüm işletim sistemleri için çok iyi bir temel oluşturacaktır. 34