İÇİNDEKİLER BİLGİ TEKNOLOJİLERİNE GİRİŞ-III • • • • • Yazılım Uygulama Yazılımları Sistem Yazılımları İşletim Sistemleri Programlama Dilleri • Kötü amaçlı yazılımlar TEMEL BİLGİ TEKNOLOJİLERİ HEDEFLER • Bu üniteyi çalıştıktan sonra; • Uygulama ve sistem yazılımlarının özelliklerini bilecek, • Sistem yazılımlarını açıklayabilecek • İşletim sistemlerinin çalışma şeklini kavrayabilecek, • Programlama dillerini ve görevlerini açıklayabilecek • Kötü amaçlı yazılımların verdikleri zararları bilecek, • Bilgisayarları kötü amaçlı yazılımlardan koruyabileceksiniz. BÖLÜM 3 Bilgi Teknolojilerine Giriş - 3 Giriş Bilgisayar sisteminin iki temel bileşeninden biri yazılımdır. Yazılımlar çeşitli amaçları yerine getirmek için oluşturulmuş komutlar topluluğudur. Bu komutlar yardımı ile bilgisayarın donanım bileşenleri idare edilebildiği gibi herhangi bir amaçla veriler organize edilebilir. Genel olarak yazılımlar uygulama ve sistem yazılımları olarak ikiye ayrılmaktadır. Belirli bir amacı gerçekleştirmek için geliştirilen yazılımlara uygulama yazılımları denir. Bilgisayar sistemi üzerindeki kontrolleri gerçekleştirmek için ise sistem yazılımlarına ihtiyaç duyulmaktadır. Bu ünitede uygulama ve sistem yazılımlarının özellikleri ve örnekleri üzerinde durulacaktır. Ayrıca bilgisayar sistemi üzerinde olumsuz etkileri olup sistem içerisinde istenmeyen virüsler, truva atları, ağ solucanları ve casus yazılımlar gibi zararlı yazılımların etkilerine de değinilecektir. YAZILIM (SOFTWARE) Yazılım, kullanıcıların bilgisayarda işlem yapmalarını sağlayan tüm programlara verilen genel addır. Yazılım, kullanıcıların bilgisayarda işlerini icra etmelerine imkan veren tüm programlara verilen genel addır. Yazılımlar; uygulama yazılımları ve sistem yazılımları olmak üzere iki ana gruba ayrılır. Uygulama yazılımları programlama dilleriyle yazılan kullanıcıya yönelik yazılımlardır. Bunlar da genel amaçlı ve özel amaçlı olmak üzere ikiye ayrılır. Genel amaçlı uygulama yazılımlarına kelime işlem, elektronik hesap tablosu, veri tabanı, dosya yönetimi ve grafik programları örnek verilebilir. Muhasebe, bordro, envanter yönetimi ve üretim planlama yazılımları ise özel amaçlı yazılımlardır. Sistem yazılımları, uygulama yazılımlarının belli bir donanım grubu üzerinde pürüzsüz olarak çalışmasını temin eden zemin programlarını içerir. İşletim sistemleri, derleyiciler ve yorumlayıcılar sistem yazılımlarına örnek verilebilir. UYGULAMA YAZILIMLARI Uygulama yazılımları belirli işlemleri (Ör: resim yapma, dosya sıkıştırma) yerine getirmek için geliştirilen yazılımlardır. Uygulama yazılımlarının geliştirilmesi için programlama dilleri ve diğer bazı uygulama geliştirme araçları kullanılır. Uygulama yazılımları belli bir işletim sistemi altında çalıştırılmak üzere hazırlanırlar. Örneğin, Macintosh işletim sistemi altında çalışmak üzere hazırlanan bir kelime işlem programı, WINDOWS işletim sistemini kullanan kişisel bilgisayarlarda çalışmayacaktır. Bununla birlikte, genellikle ticari uygulamalar diğer birçok işletim sistemi altında da çalışabilecek şekillerde hazırlanmaktadır. Atatürk Üniversitesi Açıköğretim Fakültesi 2 Bilgi Teknolojilerine Giriş - 3 Genel Amaçlı Uygulama Yazılımları Günümüzde bilgisayar sistemleri için çok sayıda genel amaçlı uygulama yazılımı mevcuttur ve bunların sayısı her geçen gün hızla artmaktadır. Bu yazılımlardan kişi ve kurumlarca en yaygın olarak kullanılanları kelime işlem programları, elektronik hesap tablosu programları ve dosya/veri tabanı yönetim sistemleridir. Kelime işlem programları bilgisayar sistemi üzerinde çeşitli metinlerin oluşturulmasına ve düzenlenmesine imkan veren programlardır. Kelime işlem programları: Kelime işlem programları bilgisayar sistemi üzerinde çeşitli metinlerin oluşturulmasına ve düzenlenmesine imkan veren programlardır. Bu programlar diğer genel amaçlı uygulama yazılımlarına oranla çok daha yaygın bir şekilde kullanılmaktadır. Bazı kelime işlemciler, masaüstü yayıncılık, elektronik takvim ve elektronik posta gibi özelliklere sahip olan entegre ofis sistemlerinin temelidir. Hesap tablosu programları: Hesap tablosu programları bilgisayar sistemini son derece kabiliyetli bir elektronik hesap makinesine dönüştüren programlardır. Bu programların çoğu, verileri alıp çeşitli türlerde grafiklere dönüştürme kabiliyetine de sahiptir. Dosya yöneticileri ve veri tabanı yönetim sistemleri büyük miktarlardaki verileri depolayıp bu verilere hızlı bir erişim sağlanmasına ve bu verilerden raporlar hazırlanmasına imkan veren programlardır. Sunum Programları: Sunum uygulamaları belli bir konuda yapılan araştırmanın veya hazırlanan raporların sonuçlarını bilgisayar yardımıyla diğer kişilere görüntü ve ses destekli anlatımlar yapmak için kullanılırlar. Sunum genellikle bilgisayara bağlı bulunan bir projeksiyon cihazı yardımıyla yapılır. Bu uygulamalar her türlü grafik, ses ve video görüntülerinin kullanılmasına imkan verir. Dosya yöneticileri ve veri tabanı yönetim sistemleri: Dosya yöneticileri ve veri tabanı yönetim sistemleri büyük miktarlardaki verileri depolayıp bu verilere hızlı bir erişim sağlanmasına ve bu verilerden raporlar hazırlanmasına imkan veren programlardır. Bu yazılımlar genellikle üretici firmalar tarafından birleştirilerek tek bir paket halinde sunulabilirler. Bu tür paketlere entegre yazılım paketleri denilmektedir. Ayrıca bu paketler içerisinde; e-posta gönderip almak için mail istemci, resim dosyalarını düzenlemek ve paylaşmak için resim yönetici, bülten, broşür, kartpostal ve el ilanı gibi yayınlar hazırlamak için yayın editörü programları da entegre olarak bulunmaktadır. Entegre paketlerin avantajı kullanıcının ihtiyaç duyduğu her şeyin elinin altında bulunması ve etkileşimli olarak çalışabilmesi; ayrıca entegre yazılımın fiyatının, yazılımların ayrı ayrı satın alınmasına oranla daha ucuz olmasıdır. Bununla birlikte, entegre yazılımın kullanıcının ihtiyaç duyduğundan çok daha fazla fonksiyonelliğe sahip olması bir dezavantaj teşkil edebilir. Microsoft Office, Open Office ve Libre Office entegre yazılımlara verilebilecek örneklerdir. Atatürk Üniversitesi Açıköğretim Fakültesi 3 Bilgi Teknolojilerine Giriş - 3 Özel Amaçlı Uygulama Yazılımları Özel amaçlı uygulama yazılımları belirli işlemlerigerçekleştirmek için geliştirilen yazılımlardır. Bir oyun yazılımından kurumdaki personel giriş çıkışını takip eden yazılıma kadar sadece sınırlı amaçları olan tüm programlar bu grupta değerlendirilebilir. Bu yazılımlar bir kurumun ihtiyacı için özel olarak geliştirilebildiği gibi kişisel ihtiyaçlara yönelik paket program olarak da piyasaya sunulabilir. Aşağıda özellikle kurumlarda kullanılan bazı özel amaçlı yazılım türleri kısaca açıklanmıştır. Karar destek sistemleri problemlerin çözümlerinde kullanılan yazılımlardır. Analiz ve karar verme: Bu tür yazılımlardan birisi karar destek sistemleridir. Bir karar destek sistemi belli işlemleri yapmaktan çok problemlerin çözümünde yöneticilere yardımcı olmak amacıyla geliştirilmiş olan bir sistemdir. Birçok karar destek sistemi matematiksel modellerden faydalanmak üzere istatistik ve yönetim bilimi yazılımlarını birleştirir. Karar vermede kullanılan bir diğer yazılım çeşidi ise uzman sistem yazılımlarıdır. Uzman sistemler, uzmanların bir sonuç çıkarmak üzere kullandıkları yöntemleri taklit ederek karar vericilere tavsiyelerde bulunması amacıyla kullanılan yazılımlardır. Planlama, programlama, koordinasyon ve organizasyon: Finansal planlama, bütçe, masraf ve satış raporları hazırlama, toplantı gündemlerinin hazırlanması ve randevuların ayarlanması gibi işler yine bu amaçlarla geliştirilen uygulama yazılımları yardımıyla yapılır. Bu tür yazılımlara masaüstü düzenleyici yazılımlar denir. Ayrıca yöneticilerin Gant şemaları, PERT, CPM ve diğer proje yönetim araçlarını kullanmasını kolaylaştıran proje yönetimi yazılımları da bu grupta değerlendirilebilir. Raporlama: Bu uygulamalar verilerin sıralanması, sınıflandırılması, özetlenmesi ve estetik görünümlü bir duruma getirilmesi amacıyla kullanılan yazılımlardır. Genellikle ya uygulama yazılımı içerisinde ya da entegre bir şekilde çalışır. İletişim: İletişim programları bilgisayar ağları arasında iletişim kurulmasına imkan veren programlardır. Günümüzde yaygın bir şekilde kullanılan internet hizmetlerinden yararlanmak için geliştirilmiş olan her türlü program iletişim programları içerisinde düşünülebilir. Kurumlar kendileri için özel bir iletişim ortamı hazırlatabilecekleri gibi bu amaçla önceden hazırlanmış programları da özelleştirebilirler. Atatürk Üniversitesi Açıköğretim Fakültesi 4 Bilgi Teknolojilerine Giriş - 3 SİSTEM YAZILIMLARI Sistem yazılımları donanım parçalarının kullanılmasına olanak tanıyan yazılımlardır. Sistem yazılımları, uygulama yazılımları ile bilgisayar donanımı arasında aracılık eden yani bilgisayar sisteminin sorunsuz bir şekilde çalışmasını sağlayan yazılımlardır. Bu kısımda işletim sistemi (Operating System) ve hizmet (Utility) yazılımları kısaca incelenecektir. İşletim Sistemi Yazılımları Bir işletim sistemi, bilgisayar sisteminin yapacağı işleri yöneten programlar bütünüdür. Bir işletim sisteminin temel fonksiyonu bilgisayar kaynaklarının yönetimi ve kontrolüdür. Bilgisayar düğmesine basılınca onun açılmasını sağlayan, kullanıcılara belge ve klasörleri görüntüleyen yazılım aslında işletim sistemidir. İşletim sistemi olmazsa diğer yazılımlar çalışmaz. Bir işletim sisteminin gerçekleştirdiği temel işlemler; Merkezi işlem birimini farklı işlere yönlendirmek, Ana belleği yönetmek, Harici kayıt cihazlarını yönetmek, Yönetici program işletim sisteminin koordinasyonunu sağlar. Giriş/çıkış birimlerini kontrol etmek, Bilgisayar sisteminin güvenliği ve kontrolünü sağlamaktır. İşletim sistemleri genellikle bir yönetici (supervisor), iş-kontrol programları (command-language translator), bir giriş/çıkış kontrol sistemi (input/output control system) ve kütüphaneler (libraries) içerirler. Bir işletim sisteminin kalbi yönetici programdır. İşletim sisteminin tüm koordinasyon ve yönetimi bu program tarafından yapılır. Bilgisayar sistemi açıldığında belleğe yüklenen bu program işletim sisteminin diğer kısımlarının kullanımını organize eder. İş kontrol programları, kullanıcının işletim ihtiyaçlarını karşılamak için kullanacağı komutlardan ibarettir. İş kontrol programlarının fonksiyonu, dosyaların listelenmesi, disklerin biçimlendirilmesi, programların kopyalanması ve dosyaların silinmesi gibi işlemleri yerine getirmektir. Giriş/çıkış kontrol sistemi, giriş ve çıkış cihazlarıyla etkileşimi sağlar. Örneğin, yönetici program, bir dosyanın veya programın kullanıcı için diskten okutulması gerektiğini tespit ederse bu işin yapılmasını giriş çıkış kontrol sistemine havale eder. Kütüphane programları, bilgisayar kaynaklarının paylaşıldığı çok kullanıcılı sistemlerde verilerin, programların ve kullanıcıların kataloğunun hazırlanması ve yönetilmesi işlemlerini yerine getirir. Örneğin, herhangi bir kullanıcı bir bilgisayar Atatürk Üniversitesi Açıköğretim Fakültesi 5 Bilgi Teknolojilerine Giriş - 3 sistemine bir kimlik ve şifreyle bağlandığında erişimin yetkili mi yoksa yetkisiz mi yapıldığının tespit edilmesi işlemi kütüphane programları tarafından yapılır. Mikrobilgisayar işletim sistemleri İşletim sistemi, kullanıcılar için uygulama yazılımlarına, verilere ve diğer bilgisayar kaynaklarına bir geçit olarak düşünülebilir. Günümüzde mikrobilgisayarlar için çok sayıda işletim sistemi mevcuttur. Aşağıda bu işletim sistemlerinden bazıları temel özellikleri açıklanarak anlatılmıştır. Ms-dos işletim sistemi MS-DOS (Microsoft-Disk Operating System) 90’lı yıllarda mikrobilgisayarlarda en yaygın kullanılan işletim sistemiydi. MS-DOS benzeri bir işletim sistemi de PC-DOS (Personal Computer-Disk Operating Systems) işletim sistemidir. MS-DOS ve PC-DOS temelde aynı işletim sistemleridir. Başlangıçta MSDOS, IBM uyumlu bilgisayarlar için kullanılırken, PC-DOS, MicroSoft tarafından IBM kişisel bilgisayarlar için geliştirilmişti. Her iki işletim sistemi de ilk geliştirildiği günden bu yana defalarca yenilenmiş ve yeni sürümleri üretilmiştir. Macintosh işletim sistemi Apple firması, 1984 yılında kendi bilgisayarları için ilk grafik arayüzü olan işletim sistemini geliştirdi. Bir fareyle birlikte kullanılan bu işletim sistemi, kullanıcıların ikon denen grafiksel semboller kullanarak dosya ve programları yönetmelerini mümkün kıldı. Örneğin bir dosyayı silmek için kullanıcının yapması gereken işlem silinecek dosyayı temsil eden ikonu sürükleyerek çöp kutusunun içerisine bırakmaktır. Apple’ın bu grafik arayüzlü ve kullanımı kolay işletim sistemi diğer firmaların da aynı türde işletim sistemleri geliştirmelerine öncülük etmiştir. Windows işletim sistemi Mikrobilgisayar işletim sistemlerindeki en önemli gelişme Windows 3.0’ ın üretilmesidir. Mikrobilgisayar işletim sistemlerindeki en önemli gelişmelerden biri Windows 3.0’ın üretilmesidir. Eşzamanlı olarak bir çok uygulamanın çalıştırılabilmesine imkan veren ve grafik arabirimine sahip olan bu yeni işletim sistemi aynı zamanda DOS uygulamalarını da çalıştırabiliyordu. Böylece kullanıcılar alıştıkları özellikleri de içeren Windows’a daha kolay uyum sağlayabildiler. 1992 yılında MS-DOS 5.0 ile birlikte Windows’un 3.1 sürümü ve 1995’te Windows 95 sürümü piyasaya çıktı. Her iki versiyon da piyasaya çıktığında satış rekorları kırdı. Windows 95’i takiben Windows 98, Windows Millenium Edition (ME), Windows 2000, Windows XP, Windows Vista ve son olarak da Windows 7 üretildi. Windows işletim sistemlerinin en son sürümü Windows 7’dir. Windows 7 yüksek performansı ve etkili görsel öğeleri ile 2009’un Ekim ayında kullanıcıları ile buluştu. Atatürk Üniversitesi Açıköğretim Fakültesi 6 Bilgi Teknolojilerine Giriş - 3 Linux işletim sistemi Linux, ağa bağlı bilgisayarlar üzerinde uzun yıllardan beri kullanılan ve UNIX tabanlı bir işletim sistemidir. Bir anlamda UNIX'in kişisel bilgisayarlar (PC)’a uyarlanmış versiyonu olarak değerlendirilebilir. Temel bazı işlemleri yapmak için bir öğrenci olan Linus Torvalds tarafından geliştirilen bir Linux işletim sistemi ardından özellikle Internet üzerinde çok sayıda programcının katkısıyla gelişmiş, ardından büyük bilgisayar şirketlerinin de destekleriyle bugün yaygın kullanılan bir işletim sistemi haline gelmiştir. Web sunucusu gibi özellikleri yerleşik olarak içeren Linux işletim sistemleri özellikle Internet bağlantılarının yönetilmesinde yaygın olarak kabul görmüştür. Web sunucusu gibi özellikleri yerleşik olarak içeren Linux işletim sistemleri özellikle Internet bağlantılarının yönetilmesinde yaygın olarak kabul görmüştür. Linux, ücretsiz, sağlam ve güçlü bir işletim sistemidir. Açık bir yapıda olduğu için, Linux’un kaynak kodu herkes tarafından erişilebilir ve değiştirilebilir. Diğer bir deyişle bütün programcılar Linux’a katkıda bulunabilirler. Açık kod kavramıyla yaygınlaşan Linux’un temel özellikleri şunlardır: Linux bilgisayarların daha az sistem çökmelerine (crashed) maruz kalmakta olduğu bilinmektedir. Linux hızlı ve etkin bir işletim sistemidir Hemen hemen tüm Linux dağıtımları internet üzerinde ücretsiz indirilebilmektedir. Linux işletim sistemi günümüzde eğitim kurumlarında ve kişisel kullanımlarda yeterince yaygınlaşmamıştır. Pardus işletim sistemi Anabilgisayar sistemleri, minibilgisayarlar ve diğer süper bilgisayar sistemlerinin işletim sistemlerine kıyasla daha karmaşık ve ayrıntılı bir yapıya sahiptirler. Pardus aslında Linux tabanlı bir işletim sistemidir. Pardus Projesi, Türkiye Bilimsel ve Teknolojik Araştırma Kurumu (TÜBİTAK)'na bağlı Bilişim ve Bilgi Güvenliği İleri Teknolojiler Araştırmalar Merkezi (BİLGEM) bünyesinde geliştirilmektedir. Projenin ismi Anadolu parsının latince (bilimsel) isminden, Panthera Pardus Tulliana'dan gelmektedir. Açık kaynak kodlu yerli işletim sistemi Pardus 2011 ile daha rahat bir kullanım ve daha çok donanım desteği gibi yeniliklerin yanı sıra, Türkçe yazım denetimi desteği, kötü niyetli yazılımlara karşı güvenli yapısı ve entegre programlar gibi beğenilen özelliklerini sunmaktadır. Büyük bilgisayarların işletim sistemleri Anabilgisayar sistemleri, minibilgisayarlar ve diğer süper bilgisayar sistemlerinin işletim sistemlerine kıyasla daha karmaşık ve ayrıntılı bir yapıya sahiptirler. Büyük sistemler çoğu kez çok kullanıcılı bilgisayarlardır. Kullanıcıların terminalleri sınırlı işlem kabiliyetine sahip olabilir ve işlemler tamamen Atatürk Üniversitesi Açıköğretim Fakültesi 7 Bilgi Teknolojilerine Giriş - 3 Çoklu programlama ile CPU’nun sırayla kullanılması aynı anda bir grup programın çalıştırılmasına imkan verir. terminallerin bağlı olduğu bilgisayarda yapılabilir. Bu yüzden bu tür sistemlerin aynı anda çok sayıda kullanıcının merkezi işlemciyi paylaşmasına imkan veren işletim sistemlerine sahip olması gerekir. Büyük sistemlerin işletim sistemleri aynı anda sistemi kullanan kişilerin işlerini mümkün olan en yüksek etkinliği sağlayacak şekilde düzenler. Dolayısıyla bu işletim sistemleri aynı anda birçok programın çalışmasını, birden fazla işin yapılmasını sağlar ve zaman paylaşımını ve belleğin kullanımını düzenler. İşletim sistemlerinin genel özellikleri şöyledir. Çoklu Programlama (Multi-programming): Bilgisayar kaynaklarının paylaşımında en önemli işletim sistemi yeteneği çoklu programlamadır. Çoklu programlama, çok sayıda programın CPU’nun eşzamanlı kullanımıyla herhangi bir anda bir bilgisayar sisteminin kaynaklarının paylaşımına imkan verilmesidir. Eşzamanlı kullanım, gerçekte herhangi bir anda CPU’nun bir program tarafından kullanılması, ancak diğer programların input/output ihtiyaçlarına da aynı anda cevap verilmesidir. Bu durumda iki veya daha çok program aynı anda aktif durumdadır fakat aynı bilgisayar kaynaklarını aynı anda kullanamazlar. Çoklu programlama ile bir grup program CPU’yu sırayla kullanır. Aynı anda birden fazla işlemin yapılması çoklu görev (Multitasking) olarak da tanımlanabilir. Çoklu görev, bir işletim sisteminde birden fazla işlemin aynı anda işletime alınabilmesi özelliğidir. Word programında bir belge hazırlandığı anda Winamp programından müzik dinleyebilmek çoklu görev özelliğine örnek olarak verilebilir. Bunun sağlanması için, görevler (uygulamalar) kısa zaman dilimleri içinde işlemcide çalıştırılır. Bu zaman dilimlerinin oldukça küçük zaman dilimleri olması nedeniyle yapay da olsa bir eş zamanlılık söz konusu olur (İşlemci aynı anda iki işi yapamaz). Sanal bellek bir programı page denilen sabit uzunluklu kısımlara veya segment denilen değişken uzunluklu kısımlara ayırmaktadır. Sanal Bellek (Virtual Memory): Sanal bellek sistemleri, disk yüzeyini RAM’in mantıksal bir uzantısı şeklinde düzenleyerek birincil belleği genişletir. Bir program çalıştırılacağı zaman ilk birkaç sayfa ana belleğe taşınır. Daha sonra bilgisayar programı çalıştırmaya başlar. Sanal bellek, her programın yalnızca bir ya da birkaç sayfasını saklayarak çok sayıda programın bellekte kalmasına imkan verir. Programların diğer kısımları çalıştırılıncaya kadar sabit kayıt biriminde durur. Sanal bellek sayesinde programcılar veya kullanıcılar belleğin hacmi konusunda sıkıntı yaşamamış olurlar. Zaman Paylaşımı (Time Sharing): Zaman paylaşımı, merkezi işlem biriminin birden çok kullanıcının faaliyetlerini aynı anda desteklemesine imkan veren çok popüler bir tekniktir. Zaman paylaşımı kullanıcıların işleri yapılırken bu kullanıcılara küçük ve sabit zaman aralıkları tahsis eder. Örneğin sisteme bağlı olarak çalışan 100 kullanıcı varsa, bilgisayar bunların her birine 100’er milisaniye zaman ayırabilir. Bilgisayar, bir kullanıcının işinden diğerine o derece hızlı bir şekilde geçiş yapar ki, her kullanıcı bilgisayarı sadece kendi kullanıyor gibi hisseder. Atatürk Üniversitesi Açıköğretim Fakültesi 8 Bilgi Teknolojilerine Giriş - 3 Çoklu İşlem veya Paralel İşlem (Multi Processing): Çoklu işlem, birçok işi aynı anda yapmak için birbirine bağlı olarak çalışan iki veya daha fazla merkezi işlem biriminin (CPU) kullanımı anlamında kullanılır. Çoklu programlama ve çoklu işlem arasındaki fark, çoklu programlamanın tek bir merkezi işlem biriminde aynı anda birçok programın çalıştırılabilmesi, çoklu işlemde ise aynı programın değişik kısımlarının birkaç merkezi işlem biriminde aynı anda çalıştırılabilmesidir. Günümüzde artık ucuz ve güçlü işlemcilerin var olması nedeniyle, birçok imalatçı firma yazılım ve donanım sistemlerini çoklu işleme imkan verecek şekilde hazırlamaktadır. Çok sayıda işlemci ekip halinde ve paralel olarak çalışabileceğinden, işler daha hızlı bir şekilde yapılacaktır. PROGRAMLAMA DİLLERİ Genel amaçlı ya da özel amaçlı tüm uygulama yazılımları programlama dilleriyle yazılır. Bir programlama dili, insanların bilgisayara çeşitli işlemler yaptırmasına imkan veren her türlü sembol, karakter ve kurallar bütünüdür. Programlama dilleri insanlarla bilgisayarlar arasında tercümanlık görevi yapar. Programlama dilleri, bilgisayara neyi ne zaman yapacağını belirten deyim ve komutlar içerir. Programlama dilleri zaman içerisinde gelişerek günümüzde çok kabiliyetli bir duruma gelmiştir. Bu kesimde programlama dillerinin gelişme süreci kısaca incelenecektir. Programlama dillerinin tarihi gelişimi aşağıdaki Tablo 1’de verilmiştir. Kuşak Programlama Dili Periyod 1 Makine dili 1940’lı ve 1950’li yıllar arası 2 Assembly dili 1950’li yıllardan itibaren 3 Yüksek seviyeli diller 1960’lı yıllardan itibaren 4 Çok yüksek seviyeli diller 1970’li yıllardan itibaren 5 Yapay zekaya yönelik diller, nesneye yönelik diller ve paralel işlem dilleri 1980’li yıllardan itibaren Tablo 1. Programlama Dilleri Programlama dilleri çeşitli özelliklere ve yeteneklere sahiptirler. Genel olarak programlama dillerinin özellikleri ve genel yapıları aşağıdaki gibidir. Makine Dili: Makine ve Assembly dilleri düşük seviyeli diller olarak tanımlanır. Bilgisayarların ilk dönemlerindeki programlama dilleri, kullanımı çok zor olan makine dili ve assembly dilleriydi. Makine dili, geliştirilen ilk programlama dilidir ve ilk kuşağı temsil eder. Makine dilinde yazılan tüm komutlar 0 ve 1’lerden Atatürk Üniversitesi Açıköğretim Fakültesi 9 Bilgi Teknolojilerine Giriş - 3 oluşur. Bütün talimatlar en detaylı bir şekilde tanımlanır ve iki tabanlı sayı sistemi kullanılarak kodlama yapılır. Bilgisayarların ilk dönemlerindeki programlama dilleri, kullanımı çok zor olan makine dili ve assembly dilleridir. Yüksek seviyeli dillerden birinde yazılan bir kaynak program makine diline çevrilmek zorundadır. Yüksek düzey programlama dilinde yazılan programa “kaynak kodu” denmektedir. Assembly dilleri: Assembly dili karmaşık programlar yazmak için kullanılan düşük seviyeli bir programlama dilidir. Assembly kullanıcılar tarafından anlaşılması zor olan makina dilinin sayısal ifadelerini, programlanması daha kolay olan alfabetik ifadelerle değiştirerek düşük seviyede programlama için bir ortam oluşturur. Assembly kullanmanın amacı, ilk bilgisayarlarda yazılan programların daha az hata içermesi ve daha az zaman almasını sağlamaktır. Assembly dilleri ikinci kuşak dillerdir ve geliştirilmesine 1950’li yılların başlarında Grace Hopper tarafından öncülük edilmiştir. Bu dillerde makine dili talimatları daha kolay bir şekilde anlaşılabilecek ve hatırlanabilecek olan sembollerle ifade edilir. Düşük seviyeli diller grubundan sayılmasına rağmen, makine diline göre bir adım daha ileride olan assembly dilleri günümüzde bile özellikle BIOS programlama, ikili (binary) aritmetik, bellek tahsisi, “stack” işleme, karakter seti kodlaması, kesme işlemi ve derleyici tasarımı gibi işler için programcılar tarafından kullanılmaktadır. Çünkü bu dillerle yazılan programlar genellikle çok hızlı çalışır ve daha az depolama yüzeyi gerektirirler. Ancak bu dillerle programlama yapmak çok yorucu, sıkıcı ve zaman alıcı olduğundan cazibesini kaybetmiştir. Yüksek seviyeli diller: Üçüncü kuşak da denilen yüksek seviyeli programlama dilleri öğrenilmesi daha kolay, program yazılması daha az zaman alan, komutları konuşma diline yakın olan programlama dilleridir. Yüksek seviyeli dillerden birinde yazılan komutlar makine diline çevrilmek zorundadır. Makine diline çevrilmeden önceki haline “kaynak program” ya da “kaynak kodlar” denir. Programcılar makine diline çevrilmiş çalıştırılabilir formatı satar ya da dağıtırlar. Dönüştürme işlemini gerçekleştiren yazılımlara “derleyici” ya da “yorumlayıcı” denir. Çok yüksek seviyeli diller: Dördüncü kuşak diller olarak da isimlendirilen çok yüksek seviyeli diller programlama işini çok daha kolaylaştırmıştır. Bu dillerin ardındaki temel felsefe kullanıcıların bilgisayara bir şeyin nasıl yapılacağını değil ne yapılacağını ifade edebilmelerine imkan vermesidir. Örneğin, sayıların sıraya dizdirilmesi işlemini yapabilmek için bir yüksek seviyeli dil ile karmaşık bir mantık kullanarak 15-20 satırlık bir program yazmak gerekir. Bunun aksine bir dördüncü kuşak dil ile bir kullanıcının yapacağı iş sıraya dizilecek alanı belirlemek, sıralama işleminin büyükten küçüğe mi yoksa küçükten büyüğe mi yapılacağını belirlemek ve ekrandaki bir ikona tıklayarak ya da bir menüden “sırala” komutunu seçerek sıralama işlemini gerçekleştirmektir. İlk geliştirilen dördüncü kuşak diller ile daha sonraları geliştirilen diller arasında bile takip edilen prosedürler ve kullanılan metotlar bakımından büyük farklılıklar vardır. Yeni geliştirilen diller çok daha karmaşık işleri çok daha kolay bir Atatürk Üniversitesi Açıköğretim Fakültesi 10 Bilgi Teknolojilerine Giriş - 3 şekilde yapmaya imkan vermektedir. Tablo 2’debazı programlama dilleri ve bunların seviyeleri açıklamaları ile birlikte sunulmuştur. Dil ALGOL Türü YS APL YS BASIC C++ YS ÇYS COBOL YS FORTH DS/YS FORTRAN YS LISP YS PL/1 YS Prolog YS RPG Smalltalk ÇYS ÇYS Açıklama FORTRAN’a benzer ama daha kapsamlı ve esnek bir dil Fen bilimleri uygulamalarında yaygın kullanımı olan bir dil Çok kullanılan ve öğrenilmesi kolay olan bir dil Nesneye yönelik popüler bir dil Daha çok işletme uygulamalarında kullanımı olan bir dil Assembly dilleri ve yüksek seviyeli diller arasında bir dil Fen bilimleri uygulamalarında kullanılan en eski yüksek seviyeli dil Yapay zeka uygulamalarında çok kullanılan dillerden biri Hem işletme uygulamalarını hem de fen bilimleri uygulamalarını destekleyen yüksek kabiliyetli bir dil Yapay zeka uygulamalarında çok kullanılan dillerden biri Rapor oluşturma dili İlk nesneye yönelik dil ve kullanımı hala yaygın Tablo 2. Çok Kullanılan Bazı Diller ve Özellikleri * DS=Düşük Seviyeli, YS=Yüksek Seviyeli, ÇYS=Çok Yüksek Seviyeli Yeni Yazılım Araçları ve Yaklaşımları Nesneye yönelik programlama Nesneler, verileri ve program kodlarını bir araya getirmektedir. Nesneye yönelik programlama, üzerinde işlem yaptığı verileri ve spesifik prosedürleri bir nesneyle birleştiren bir programlama yaklaşımıdır. Nesneler verileri ve program kodlarını bir araya getirir. Verileri prosedürler aktarma yerine, programlar nesnenin içerisine yerleştirilmiş olan bir prosedürü icra etmek için bir mesaj gönderir. Prosedürler, nesneye yönelik dillerde metotlar olarak tanımlanır. Aynı mesaj birçok farklı nesneye gönderilebilir. Ancak her biri mesajı farklı biçimde yürütür. Nesneye yönelik programlama, programcıların kod yazmadığı görsel programlama olarak bilinen yeni bir programlamaya öncülük etmiştir. Böylece programcılar programlama nesnelerini seçip fare ile taşıyarak kullanırlar. Nesneler bir kütüphaneden bir programdaki spesifik bir yere kopyalanırlar. İki veya daha fazla nesneyi bağlayarak bir çizgi çizebilirler. Visual Basic, Java bu tür yazılımlara örnek verilebilir. Atatürk Üniversitesi Açıköğretim Fakültesi 11 Bilgi Teknolojilerine Giriş - 3 Enterprise sistemler ve özel yazılımlar Bir diğer temel yazılım trendi ERP gibi iletişim ve kontrol için örgütsel ihtiyaçları destekleyen entegre programların geliştirilmesidir. ERP hem kurumlara özel yeni yazılımlara imkan tanıyan hem de üzerinde hazır çözümler bulunan ortamlardır. En büyük avantajı ise bütünleşik bir ortam olmasıdır. Bu tür sistemler bir bütün olarak organizasyonun verilerini yönetmek, verileri son kullanıcılara hazırlamak, örgütsel karar verme için koordinasyon ve kontrolü sağlamak için geliştirilmiş olan büyük sofistike programlardır. Bu büyük sistemler, alacak hesapları, sipariş vb. gibi bir zamanlar ayrı olan sistemleri ve ayrı departmanlara hizmet veren sistemleri birleştirirler. Middleware, iki ayrı uygulamayı, verileri birbirine aktarmak üzere bağlayan bir yazılımdır. Birçok firma, mevcut sistemlerini atıp sıfırdan başlayarak yeni sistemler oluşturamazlar. Genellikle eski mainframe uygulamaları günlük işlemler için vazgeçilemez niteliktedir ve değiştirilmeleri büyük risk taşır. Bu uygulamalar, ancak diğer uygulamalarla birleştirildiğinde faydalı olabilirler. Değişik eski uygulamaları entegre etmenin bir yolu Middleware denilen özel yazılımlar kullanılmasıdır. Bu yazılımlar iki farklı sistem (farklı bilgisayar veya ortamlar) arasında bir köprü veya arayüz oluşturmak için kullanılır. Böylece değişik dillerde geliştirilmiş ve değişik veri çeşitlerini kullanan uygulamaların birbirleriyle anlaşabilmesi sağlanır. Buna örnek olarak, son zamanlarda şirketlerin en çok rağbet ettiği uygulama modernleştirmeleri gösterilebilir. Eski tip uygulamaları tamamen yeniden geliştirmek yerine, var olanın tamamını ya da bir kısmını alt yapı olarak tutup, orta katmanlar aracılığı ile yeni sisteme entegre etmek mümkündür. Kötü Amaçlı Yazılımlar Kötü amaçlı yazılımlar, bilgisayara zarar vermek, programları bozmak, yok etmek ya da silmek amacıyla yazılmış programlardır. Bilgisayara zarar vermek, programları bozmak, yok etmek ya da silmek amacıyla yazılmış programlardır. Kullanıcının kendi bilgisayarına veya programlarına isteyerek zarar vermeyeceği gerçeğinden hareketle bu yazılımların başkaları tarafından yazıldığı ve makinelere ulaştırıldığı sonucu açıktır. Kötü amaçlı yazılımlar farklı şekillerde bilgisayara bulaşır ve farklı şekilde çalışırlar. Bu yazılımlar Truva Atları, Ağ Solucanları, Virüsler ve Casus Yazılımlar başlıkları altında incelenir. Truva atları (trojanlar) Bilgisayarda faydalı bir iş icra eder gibi görünmekte iken, aslında sisteme zarar vermek amacıyla yazılmışlardır. Truva programlarını yazanlar, programın görünen kısmında, özellikle görsel anlamda bir şeyler yapar görünen ancak bilgisayara zarar verebilecek kodlar da içeren programlar yazarlar. Bununla birlikte, yararlı iş yapan bir programın içerisine kötü amaçlı kişiler tarafından Truva yazılımları yerleştirilmesi de mümkündür. Atatürk Üniversitesi Açıköğretim Fakültesi 12 Bilgi Teknolojilerine Giriş - 3 Truva yazılımları, bulundukları bilgisayardaki kişisel şifreleri, dosya listelerini, açık bulunan erişim noktaları gibi, doğrudan erişilmesi mümkün olmayan bilgileri, kötü amaçlı kişilere ulaştırabilmektedir. Truva programlar, genellikle herkesin kolaylıkla ulaşabileceği yerlere konulurlar. Görünüşte güzel şeyler yapan bir yazılım olduğundan kullanıcılar tarafından hızlı bir şekilde paylaşılıp çoğaltılır. Çabuk dağılmasını sağlamak için küçük boyutlarda tutulurlar. Bilgisayarda Truva yazılımlarının olup olmadığı Truva tarayıcısına sahip anti-virüs yazılımları ile bulunabilir. Virüsler Doğrudan bilgisayara ve yazılımlara zarar vermek için yazılmışlardır. Truva yazılımları gibi olmayıp görünen yüzde icra ettikleri hiçbir şey yoktur. Yapıları gereği, görünüp fark edilmemeleri gerekir. Sistem dosyalarına zarar veren bir virüs, genellikle sistemin yeniden yüklenmesini gerektirir. Virüsler, kendi kendilerini kopyalayacak kodlara sahiptir. Kopyalandığı makinede bulaşmak için uygun program ararlar. Bulduklarında, içerisinde kopyasının olup olmadığını kontrol eder. Kopyası yoksa bir kopyasını program içerisine kaydeder. Virüslerin aktif hale gelme zamanı farklılık gösterir. Bazıları kopyalanır kopyalanmaz aktif hale gelirken, bazıları aktif hale gelmek için bir takım şartların sağlanmasını bekler. Bu şartlar belirli bir saat veya belirli bir tarih olabileceği gibi, bir işlemin belirli sayıda yapılmasını bekleme de olabilir. Aktifleşme şartı yerine geldiğinde, virüs kendine verilen görevi yerine getirir. 26 Nisan 1986 günü meydana gelen Çernobil nükleer felaketinin yıl dönümlerinde aktifleşen CIH virüsü, zaman ayarlı virüse güzel bir örnektir. Önceleri çabuk el değiştiren oyun ve program CD’leri veya flash disklerle bulaşırken günümüzde internet yoluyla bulaşma daha yaygındır. Özellikle elektronik postalar aracılığıyla, kullanıcının elektronik posta adres defterini kullanarak kendini, adreslere tanıdık bir kullanıcı gibi dağıtan birçok virüs bulunmaktadır. Ağ solucanları Ağ solucanları, ağ bağlantıları vasıtasıyla sistemden sisteme kendini kopyalayabilen programlardır. Ağ bağlantıları vasıtasıyla sistemden sisteme kendini kopyalayabilen programlardır. Virüs gibi sisteme büyük zararlar verebilecekleri gibi Truva atı gibi faydalı bir iş yapar görünebilirler. Virüsler bir sistemde çok fazla sayıda kopya bulundurabilirken virüslerden farklı olarak ağ solucanı sistemde bir tane bulunur. Kimi zaman bir sistem faaliyeti gibi görünerek kendini gizler ve başka sistemlere bir kullanıcı gibi bağlanarak bilgi çalar, kimi zaman da bulaştığı sisteme dışarıdan müdahalelere imkan veren arka kapılar (back door) açar. Atatürk Üniversitesi Açıköğretim Fakültesi 13 Bilgi Teknolojilerine Giriş - 3 Casus yazılımlar Casus yazılımlar (Spyware), internet bağlantısına sahip bilgisayarlarda, kullanıcının bilgisi dışında başka sitelere bağlantı kurmaya, internet’ten istem dışı reklamlar indirmeye ve belirli sitelere yönlendirme yapmaya yarayan yazılımlardır. Bilgisayarda arka planda çalıştıkları için fark edilmezler ve bağlantı hızını yavaşlatırlar. Bilgilerin yönlendirildiği sitelerdeki reklamları kullanıcı istemese de ekrana taşırlar. İnternet tarayıcısının açılış sayfasını değiştirir ve başka sitelere yönlendirirler. Bilgisayara yerleşme şekli virüsler gibi kendini kopyalama şeklinde değildir. Kullanıcı tarafından gezilen sitelerde ekranda görünen bir “.....programını indirmek ister misiniz?” gibi bir uyarıya kullanıcının isteği ile “evet” demesi sonucu bilgisayara kaydedilir veya bir başka program içerisinde uzantı olarak taşınırlar. Internet bağlantısına sahip olmayan bilgisayarlarda iş göremezler. Anti-virüs programları ile temizlenemezler çünkü virüs değillerdir. El yordamıyla silinmeleri neredeyse imkansızdır. Bulundukları klasörler silinse bile kalmaya devam edebilirler. Casus yazılım temizleme program paketleri vardır. Bu programları kullanmak en iyi çözümdür. Bu programların da sürekli güncellenmesi gerekir. Hafızada eş zamanlı koruma sağlayanları daha kullanışlıdır. Kötü amaçlı programlara karşı önlemler Anti-virüs programları bilgisayarda zararlı programlar tarafından kirletilmiş dosyaları bularak, dosya içeriğine mümkün oldukça zarar vermeden dosyayı temizleyen programlardır. Truva atları, ağ solucanları ve virüsler gibi zararlı programların bilgisayara girmelerine engel olmak, kullanıcıların birinci önceliği olmalıdır. İkinci öncelik; bulaşma olmuşsa aktif hale gelmeden temizlemektir. Temizleme işlemi için antivirüs programları kullanılmalıdır. Anti-virüs programları bilgisayarda zararlı programlar tarafından kirletilmiş dosyaları bularak, dosya içeriğine mümkün oldukça zarar vermeden dosyayı temizleyen programlardır. Ancak bu her zaman mümkün olmamakta bulaşmış dosyanın temizlenemediği durumlar ortaya çıktığında dosya tümüyle silinmektedir. Anti-virüs programlar kullanılacak ise; etkinlik test sonuçları yüksek olan ve gelişen ve değişen virüsleri yakalayabilecek şekilde güncellemeye imkan verenlerinin tercih edilmesi gerekir. Güncel anti-virüs programları belleğe yerleşerek gerçek zamanlı koruma (real-time protection) sağlarlar. Yani virüsü sisteme bulaşmaya çalışırken fark ederek engellerler. Atatürk Üniversitesi Açıköğretim Fakültesi 14 Özet Bilgi Teknolojilerine Giriş - 3 •Yazılımlar bilgisayar donanımları etkin bir şekilde kullanmak için geliştirilmiş araçlardır. Geliştirilme amaçlarına göre çeşitli isimler altında kategorize edilen yazılımlar uygulamaya yönelik veya sistem yönetimini gerçekleştiren yapıya sahiptirler. Kelime işlem, hesap tablosu, dosya yöneticileri ve veri tabanı yönetim sistemleri genel amaçlı uygulama yazılımları kapsamındadır. Ayrıca kullanıcıların çeşitli ihtiyaçlarını giderecek özel amaçlı çeşitli yazılımlarda bulunmaktadır. •Sistem yazılımları, donanımların kullanılması ve uygulama yazılımlarının çalışmalarına platform oluşturmaya olanak sağlayan yazılımlardır. İşletim sistemleri olarak isimlendirilen bu yazılımlar birçok firma tarafından geliştirilmekte ve kullanıma sunulmaktadır. Ayrıca açık kaynak kodlu olarak ifade edilen ve ücretsiz dağıtımları olan işletim sistemleri de bulunmaktadır. Linux türevleri ve Pardus açık kaynak kodlu ücretsiz işletim sistemlerine örnek olarak verilebilir. •Yazılımlar programlama dilleri olarak tanımlanan uygulamalar kullanılarak geliştirilmektedir. Bu uygulamalar zaman içerisinde daha kolay kullanılabilir ve daha hızlı çalışabilir hale gelmiştir. Günümüzde yazılımlar kullanıcı dostu olarak üretilmektedir ve kullanımları oldukça kolaydır. Genel olarak kullanıcıların ihtiyaçlarını karşılayan yazılımların yanında çeşitli kötü amaçlara hizmet eden yazılımlar da geliştirilmektedir. Turuva atları, virüsler, ağ solucanları ve casus yazılımlar gibi çeşitli isismlerde ve farklı amaçlara hizmet eden birçok yazılım bulunmaktadır. Bu yazılımlar kullanıcıların kişisel bilgilerini çalma, bilgisayarlara farklı ortamlardan erişimlere olanak sağlama, donanım ve yazılıma zarar verme gibi olumsuz durumları meydana getirmektedirler. Atatürk Üniversitesi Açıköğretim Fakültesi 15 Bilgi Teknolojilerine Giriş - 3 DEĞERLENDİRME SORULARI Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer alan “bölüm sonu testi” bölümünde etkileşimli olarak cevaplayabilirsiniz. 1. “..............................., belli işlemleri yapmaktan çok problemlerin çözümünde yöneticilere yardımcı olmak amacıyla geliştirilmiş olan yazılımlara denir.” cümlesinde boş bırakılan yere getirilmesi gereken ifade aşağıdakilerden hangisidir? a) Uzman sistemler b) Proje yönetimi yazılımları c) Veri tabanı yönetim sistemleri d) Karar destek sistemleri e) Paket programlar 2. “Büyük miktarlardaki verileri depolayıp bu verilere hızlı bir erişim sağlanmasına ve bu verilerden raporlar hazırlanmasına imkan veren yazılımlara …………………………………… denir.” cümlesinde boş bırakılan yere getirilmesi gereken ifade aşağıdakilerden hangisidir? a) Hesap tablosu yazılımları b) İşletim sistemi yazılımları c) Veri tabanı yönetim sistemleri d) Kelime işlem yazılımları e) Sunum yazılımları 3. Aşağıdaki ifadelerden hangisi işletim sistemlerinin görevlerinden değildir? a) Ana belleği yönetmek b) Kaynak kodları makine diline çevirmek c) Giriş/çıkış birimlerini kontrol etmek d) Merkezi işlem birimini yönlendirmek e) Bilgisayar sisteminin güvenliği ve kontrolünü sağlamak 4. Aşağıda verilen virüs ve Truva atları ilgili ifadelerden hangisi yanlıştır? a) Her ikisi de sisteme zarar vermek için hazırlanan yazılımlardır b) Her iki yazılım da kendini kopyalayarak çoğaltma eğilimindedir c) Truva atı kendini yararlı bir program gibi göstererek zarar verme amacındadır d) Virüsler bulaştıkları sisteme zarar verirken kendilerini gizlerler e) Virüsler aktifleşmek için bir şartın yerine getirilmesini bekler Atatürk Üniversitesi Açıköğretim Fakültesi 16 Bilgi Teknolojilerine Giriş - 3 5. Aşağıdakilerden hangisi Linux işletim sisteminin temel özellikleri arasında yer almaz? a) Diğer işletim sistemlerinden biraz pahalıdır b) Unix tabanlıdır c) Hızlı çalışır d) Sistem çökmesine karşı dayanıklıdır e) Açık kaynak kodludur Cevap Anahtarı 1.D, 2.C, 3.B, 4.B, 5.A Atatürk Üniversitesi Açıköğretim Fakültesi 17