Yazılım Kurulum ve Yönetimi dersi, genellikle Bilgisayar Mühendisliği, Yazılım Mühendisliği, Elektrik-Elektronik Mühendisliği, Endüstri Mühendisliği, Bilgisayar Programcılığı, Bilgisayar Teknolojisi ve Bilişim Sistemleri bölümlerinde okutulur. Ayrıca, bu ders, bazı Meslek Yüksek Okullarında ve İktisadi ve İdari Bilimler Fakültelerinde de yer alabilir.
Bu dersin, bilgisayar sistemleriyle çalışan herhangi bir sektörde veya organizasyonda çalışacak kişilere faydalı olabileceği düşünülerek, bazı bölümlerde zorunlu, bazı bölümlerde ise seçmeli olarak sunulabilir. Ayrıca, bilgisayar sistemleri ve yazılım yönetimi konusunda kariyer yapmak isteyen kişiler için de bu ders önemlidir.
Yazılım Kurulum ve Yönetimi dersi, günümüzde yazılım ve bilişim teknolojilerinin önemli bir parçası haline gelmiştir ve bu nedenle, birçok üniversitede farklı isimler altında farklı programlarda sunulmaktadır. Ancak, temel amacı, öğrencilere yazılım kurulumu ve yönetimi konularında teorik ve pratik bilgi sağlamak ve bu konuda beceriler kazandırmak olarak özetlenebilir.
Yazılım Kurulum ve Yönetimi dersinin amacı:
Yazılım Kurulum ve Yönetimi dersi, modern bilgisayar sistemlerinde yazılımın nasıl etkin bir şekilde kurulacağını, yönetileceğini ve optimize edileceğini öğretmeyi amaçlar. Günümüzde yazılım, işletim sistemlerinden endüstriyel uygulamalara kadar geniş bir alanda kullanılmaktadır. Bu ders kapsamında öğrenciler, farklı yazılım türleri hakkında bilgi sahibi olacak, kurulum süreçlerini öğrenecek ve sistem yönetimi ile ilgili temel becerileri kazanacaktır.
Dersin içeriği şunları kapsamaktadır:
- Bilgisayar sistemlerinin temelleri
- Donanım ve yazılım ilişkisi
- Yazılım kavramı ve yazılım dilleri
- İşletim sistemleri ve yazılım türleri
- Yazılım kurulum süreçleri ve en iyi uygulamalar
- Güncellemeler, güvenlik ve bakım süreçleri
Bu ders, bilişim alanında çalışmak isteyen öğrenciler için temel bir altyapı sağlarken, aynı zamanda sistem yöneticileri ve teknik destek uzmanları için kritik bilgiler sunmaktadır.
Bilgisayar sistemleri, donanım ve yazılım bileşenlerinin bir araya gelerek kullanıcıya hizmet sunduğu yapılardır. Temel olarak üç ana bileşenden oluşur:
- Donanım (Hardware): Fiziksel bileşenlerdir (işlemci, bellek, depolama, anakart vb.).
- Yazılım (Software): Bilgisayarın işlevselliğini sağlayan programlardır (işletim sistemleri, uygulamalar, sürücüler).
- Kullanıcı: Bilgisayarla etkileşime giren kişi ya da sistem.
Bilgisayar sistemleri; veri işleme, depolama, iletişim ve hesaplama gibi temel görevleri yerine getirir.
Bilgisayar donanımı, sistemin işleyişini sağlayan fiziksel bileşenlerdir. Temel bileşenler:
İşlemci (CPU - Central Processing Unit)
- Bilgisayarın "beyni" olarak çalışır.
- Saat hızı (GHz), çekirdek sayısı ve nesiller arası farklar performansı belirler.
- Güncel İşlemci Modelleri: Intel Core i9-13900K, AMD Ryzen 9 7950X
Bellek (RAM, ROM, SSD, HDD)
- RAM (Rastgele Erişimli Bellek): Geçici bellek olup hız açısından çok kritiktir.
- ROM (Salt Okunur Bellek): Firmware ve BIOS gibi sistem yazılımlarını saklar.
- SSD (Katı Hal Sürücüsü): Geleneksel HDD’lere kıyasla daha hızlı ve dayanıklıdır.
- HDD (Sabit Disk Sürücüsü): Büyük kapasiteli ancak daha yavaş depolama birimi.
Anakart (Motherboard)
- Tüm bileşenleri birbirine bağlayan ana karttır.
- Önemli Bileşenler: Yonga seti (chipset), RAM yuvaları, PCIe slotları, depolama bağlantıları (SATA, NVMe)
Giriş/Çıkış Birimleri
- Giriş: Klavye, fare, mikrofon, tarayıcı
- Çıkış: Monitör, hoparlör, yazıcı
- Çift Yönlü (I/O Devices): USB, harici diskler, dokunmatik ekranlar
Bilgisayarlar, kullanım amaçlarına ve donanımsal özelliklerine göre farklı kategorilere ayrılır:
Masaüstü Bilgisayarlar (Desktop PCs)
- Avantajları: Yüksek performans, genişletilebilirlik
- Dezavantajları: Taşınabilir olmaması
- Kullanım Alanları: Ofis, oyun, grafik tasarım, mühendislik
Dizüstü Bilgisayarlar (Laptops)
- Avantajları: Taşınabilir, enerji verimli
- Dezavantajları: Yükseltme seçenekleri sınırlı
- Örnek Modeller: Apple MacBook Pro, Dell XPS 15, ASUS ROG Zephyrus
Sunucular (Servers)
- Büyük veri işlemleri, bulut sistemleri ve web hizmetleri için kullanılır.
- Türleri: Web sunucuları, veri tabanı sunucuları, uygulama sunucuları
Gömülü Sistemler (Embedded Systems)
- Özel görevler için optimize edilmiştir.
- Örnekler: Akıllı saatler, IoT cihazları, otomobil sistemleri
Süper Bilgisayarlar (Supercomputers)
- Milyonlarca işlemci çekirdeği ile büyük veri analizi yapar.
- Örnek: Summit (ABD), Fugaku (Japonya)
Bilgisayarlar, teknolojik gelişmelerle birlikte çeşitli aşamalardan geçmiştir:
- Nesil (1940-1956) - Vakum Tüpleri
- ENIAC, UNIVAC gibi devasa sistemler
- Büyük, ağır ve çok fazla enerji tüketen sistemler
- Nesil (1956-1963) - Transistörler
- Daha küçük, daha güvenilir ve daha az enerji tüketen sistemler
- IBM 1401 gibi ticari bilgisayarlar
- Nesil (1964-1971) - Entegre Devreler (ICs)
- İlk kişisel bilgisayarlar ve iş istasyonları
- IBM System/360, PDP-8 gibi modeller
- Nesil (1971-günümüz) - Mikroişlemciler
- Intel 4004 ile başlayan dönem
- Kişisel bilgisayarların (PC) yaygınlaşması
- Windows ve macOS gibi işletim sistemlerinin ortaya çıkışı
- Nesil ve Ötesi - Yapay Zekâ ve Kuantum Bilgisayarlar
- Günümüzdeki GPU ve TPU destekli yapay zekâ sistemleri
- Kuantum bilgisayarlar (IBM Q, Google Sycamore)
DİSK SÜRÜCÜLER VE DEPOLAMA TEKNOLOJİLERİ
Bilgisayarlarda verileri kalıcı olarak depolamak için disk sürücüler kullanılır. Disk sürücüler temelde iki ana kategoriye ayrılır:
a) HDD (Hard Disk Drive - Sabit Disk Sürücüsü)
- Mekanik parçaları içeren dönüşlü disklerdir.
- Veriler manyetik plakalar üzerine yazılır ve okunur.
- Daha büyük depolama kapasitesi sunar ancak SSD'lere göre daha yavaştır.
- İşletme mantığı: Veriler, dönen plakalar üzerindeki manyetik alanlar yardımıyla okunur/yazılır.
b) SSD (Solid State Drive - Katı Hal Sürücü)
- Hareketli parça içermez, veriler NAND flash bellek üretkenleri üzerinde saklanır.
- HDD'lere göre daha hızlı, dayanıklı ve sessizdir.
- NVMe ve SATA olmak üzere farklı bağlantı türleri bulunur.
Elektromanyetizma, elektrik ve manyetizma arasındaki etkileşimi inceleyen fizik dalıdır. HDD'lerin çalışma mantığı elektromanyetik prensiplere dayanır:
- HDD'lerde veri saklama, manyetik plakalar üzerine manyetik kutuplaşma ile gerçekleşir.
- Manyetik kafalar, disk plakaları üzerindeki manyetik alanları algılayarak verileri okur/yazar.
- Okuma/Yazma Kafası: Manyetik sinyalleri elektriksel sinyallere dönüştürür.
- Manyetik Plakalar: Verileri binary (0 ve 1) olarak kaydeder.
Sabit disklerde veriler belirli yapılar üzerinde organize edilir. HDD ve SSD fark etmeksizin, dönüşlü veya elektronik depolama alanlarında verilerin düzenli saklanması için belirli bölgeler kullanılır.
a) Track (İz) Nedir?
- HDD'de, plakalar üzerinde belirli bir yarıçapta bulunan dairesel veri yollarına "track" denir.
- Her bir track, verileri saklayan daha küçük parçalar içerir.
b) Sector (Sektör) Nedir?
- Bir track, belirli bölülere ayrılır ve her bir bölüm "sector" olarak adlandırılır.
- Her sector genellikle 512 byte veya 4096 byte (4 KB) büyüklüğündedir.
- Yeni nesil disklerde "Advanced Format" ile 4 KB sector kullanılır.
Bad sector, bir sabit diskin belirli bir bölümünün hasar görmesi ve veri okuyamaması anlamına gelir. İki tür bad sector vardır:
Fiziksel Bad Sector:
- Disk plakalarında fiziksel hasar oluştuğunda ortaya çıkar.
- Manyetik alan bozulmaları, toz, darbe gibi sebeplerle oluşur.
- Düzeltilemez.
Mantıksal Bad Sector:
- Dosya sistemindeki hatalar nedeniyle disk belirli bir sectorü kullanamaz hale gelir.
- Disk onarma aracıları ile tamir edilebilir.
Bad Sector Belirtileri
- Bilgisayarın ani yavaşlaması
- Diskten gelen olağandışı sesler
- Dosyaların bozulması ya da açılamaması
- Disk okuma/yazma hataları
Bad Sector Tespiti ve Onarımı
- "chkdsk /r" komutuyla Windows üzerinden kontrol edilebilir.
- "S.M.A.R.T." analiz aracıları (CrystalDiskInfo, HDDScan) kullanılabilir.
- Mantıksal bad sector'ler yazılım ile onarılabilir ancak fiziksel bad sector olan disklerin değiştirilmesi önerilir.
YAZILIM KAVRAMI
Yazılım, bir bilgisayar veya cihazın belirli görevleri yerine getirmesi için tasarlanmış bir dizi talimat veya programdır. Bu talimatlar, kullanıcının komutlarını işleyerek donanımın nasıl çalışacağını belirler. Yazılım, temel olarak bir bilgisayara ne yapacağını söyleyen komutlar bütünüdür.
1- Sistem Yazılımı (System Software)
Sistem yazılımı, bilgisayar donanımını doğrudan kontrol eden ve diğer yazılımların sorunsuz çalışması için gerekli temel işlevleri sağlayan yazılımdır. Sistem yazılımı, donanım ile kullanıcı uygulamaları arasında bir arayüz görevi görür. Örneğin, kullanıcıların yazdığı yüksek seviyeli programlama dillerini (Python, Java, C++ gibi) makine diline (1'ler ve 0'lar) çevirir.
Sistem yazılımının özellikleri:
- Sistem yazılımı, donanım ile doğrudan etkileşim halindedir.
- Genellikle Assembly veya C gibi düşük seviyeli dillerde yazılır.
- Sistem yazılımını tasarlamak ve anlamak karmaşıktır.
- Sistem yazılımı, donanım ile doğrudan etkileşimde olduğu için yüksek performanslıdır.
- Kullanıcılar ile doğrudan etkileşimde bulunmaz, arka planda çalışır.
Bunlar genellikle bilgisayar üreticileri tarafından hazırlanır. Bu yazılımlar, donanımla çok temel düzeyde etkileşimde bulunmak için kullanılan, düşük düzeyli dillerde yazılmış programlardan oluşur. Sistem yazılımı , donanım ve son kullanıcılar arasında arayüz görevi görür.
Sistem Yazılım Türleri
- İşletim Sistemi (Operating System) :Bir bilgisayar sisteminin ana programıdır. Bilgisayar sistemi AÇIK olduğunda, bilgisayarın belleğine yüklenen ilk yazılımdır. Temel olarak, bellek, CPU, yazıcı, sabit disk vb. tüm kaynakları yönetir ve kullanıcıya bilgisayar sistemi ile etkileşime girmesine yardımcı olan bir arayüz sağlar. Ayrıca diğer bilgisayar yazılımlarına çeşitli hizmetler sunar. İşletim sistemlerine örnek olarak Linux, Apple MacOS, Microsoft Windows vb. (İşletim Sistemi konusu Yazılım Dilleri başlığından sonra ayrı bir başlık altında işlenmiştir)
- Dil İşlemcisi (Language Processor) : Bildiğimiz gibi, sistem yazılımı insan tarafından okunabilen dili bir makine diline dönüştürür ve bunun tersi de geçerlidir. Yani dönüştürme, dil işlemcisi tarafından yapılır. Java, C, C++, Python, vb. üst düzey programlama dillerinde yazılmış programları, makineler tarafından kolayca okunabilen ( nesne kodu veya makine kodu olarak bilinir ) talimat setlerine dönüştürür .
- Aygıt Sürücüsü (Device Driver) : Aygıt sürücüsü, bir aygıtı kontrol eden ve o aygıtın işlevlerini yerine getirmesine yardımcı olan bir program veya yazılımdır. Yazıcı, fare, modem vb. her aygıtın bilgisayar sistemine sonsuza kadar bağlanabilmesi için bir sürücüye ihtiyacı vardır. Bu nedenle, bilgisayar sisteminize yeni bir cihaz bağladığınızda, işletim sisteminizin o cihazı nasıl kontrol edeceğini veya yöneteceğini bilmesi için önce o cihazın sürücüsünü yüklemeniz gerekir.
2- Uygulama Yazılımı (Application Software)
Özel işlevleri yerine getiren veya bilgisayarın temel işleyişinden çok daha fazlasını sağlayan yazılımlara uygulama yazılımı denir. Başka bir deyişle, uygulama yazılımı, son kullanıcılar için belirli bir görevi gerçekleştirmek üzere tasarlanmıştır. Yalnızca son kullanıcıların gereksinimlerini karşılamak için tasarlanmış bir ürün veya programdır. Kelime işlemcileri, elektronik tabloları, veri tabanı yönetimini, envanteri, bordro programlarını vb. içerir.
Uygulama Yazılımının Özellikleri
- Uygulama yazılımının önemli bir özelliği, kelime işlem, elektronik tablolar, e-posta,video oynatma vb. daha özel görevleri yerine getirmesidir.
- Çoğunlukla, yazılımın boyutu büyüktür, bu nedenle daha fazla depolama alanı gerektirir.
- Uygulama yazılımları kullanıcılar için daha interaktiftir, bu nedenle kullanımı ve tasarımı kolaydır.
- Uygulama yazılımının tasarımı ve anlaşılması kolaydır. (GUI)
- Genellikle Python, Java, C# gibi üst düzey dillerde yazılır.
Uygulama Yazılımı Türleri
Farklı uygulama yazılım/program türleri vardır ve bunlar:
a) Genel Amaçlı Yazılım: Bu tür uygulama yazılımları çeşitli görevler için kullanılır ve yalnızca belirli bir görevi gerçekleştirmekle sınırlı değildir. Belge hazırlama, video-müzik programları, tasarım programlar gibi…
Ofis Yazılımları:
- Microsoft Ofis Yazılımları (Word, Excel, Power Point, Acces, Visio…)
- Açık Kaynak Ofis Yazılımları (Libre Office, Apache Open Office)
Medya Oynatıcı Yazılımlar:
- Windows Media Player
- Gom Player
- VLC Player
- BSPlayer
- Winamp
Grafik Tasarım Programları/Yazılımları:
- Adobe Photoshop
- Adobe Illustrator
- Adobe InDesign
- Quark Express
- Gimp
- Corel Draw
- InkScape
Web Tasarım Programları:
- Adobe Dreamweaver
- Adobe Fireworks
- Notepad++
- Sublime Text
- Joomla
- Wordpress
- Drupal
b) Özelleştirilmiş Yazılım: Bu tür uygulama yazılımı, belirli görevleri veya işlevleri gerçekleştirmek için kullanılır veya tasarlanır veya belirli kuruluşlar için tasarlanmıştır. Örneğin demiryolu rezervasyon sistemi, havayolu rezervasyon sistemi, fatura yönetim sistemi vb.
c) Yardımcı Yazılımlar: Bu tür uygulama yazılımları, bilgisayar altyapısını desteklemek için kullanılır. Sistemi analiz etmek, yapılandırmak, optimize etmek ve bakımını yapmak ve aynı zamanda gereksinimleriyle ilgilenmek için tasarlanmıştır. Örneğin, antivirüs, disk parçalayıcı, bellek test cihazı, disk onarımı, disk temizleyicileri, kayıt defteri temizleyicileri, disk alanı analizörü vb.
Yardımcı yazılımlar, bir bilgisayarı analiz eder ve bakımını yapar. Bu yazılımlar, işletim sisteminin bu temelde nasıl çalıştığına odaklanır ve bilgisayarın düzgün çalışmasını sağlamak için görevi gerçekleştirir. Bu yazılımlar (Windows defender, Windows disk temizleme aracı vb) işletim sistemi ile birlikte gelebilir.
Antivirüs, yedekleme yazılımı, dosya yöneticisi, disk sıkıştırma aracı, tümü yardımcı yazılımlardır.
Popüler yardımcı programlardan bazıları aşağıda açıklanmıştır:
Antivirüs yazılımları:
Bir bilgisayarı virüsten korumak için kullanılır. Bir virüs algılar ve kullanıcıyı bilgilendirir ve bilgisayarın güvenliğini sağlamak için harekete geçer. Virüs, hangi virüsün etkilediğinden dolayı farklı dosya sistemine sahip olduğu kasa adı verilen farklı bir yerde tutulur. Kullanıcı, antivirüsten kötü amaçlı programı silmesini, kasaya koymasını ve hatta yok saymasını isteyebilir. Bu günlerde çoğu GUI biçiminde geliyor.
Örnek antivirüs yazılımları:
- Windows Defender,
- Kaspersky,
- AVG,
- AVAST,
- MCAFEE
- Avira
- Bitdefender
Dosya Yönetim Yazılımları:
Yazılım, bir dosya sisteminde depolanan dosyaları yönetmek için kullanılır. Dosya sistemi (FAT32, NTFS gibi) ile karıştırılmamalıdır. Dosya yönetimi aracı eski, dosyayı bir işletim sisteminde depolamak için kullanılan bir veri yapısıdır, daha sonra ise dosya Sisteminde depolanan dosyada görev gerçekleştirmek için kullanılır.
Dosya yönetimi Aracının bazı örnekleri şunlardır:
- Windows'ta Dosya Yöneticisi.
- macOS Finder..
- Opus Directory. (orijinal olarak 1990'ların başlarından ortalarına kadar Amiga bilgisayar sistemi için yazılmıştır. Amiga sürümü üzerinde ticari geliştirme 1997'de durduruldu. Directory Opus, GPSsoftware tarafından Microsoft Windows işletim sistemi için halen aktif olarak geliştirilmekte ve satılmaktadır ve Amiga için Directory Opus 4 ve 5'in açık kaynak sürümleri bulunmaktadır.)
- Dolphin KDE.
Sıkıştırma Yazılımları:
Bu araç, seçilen algoritmaya göre bir dosyanın boyutunu küçültmek için kullanılır.
Çoğu işletim sistemi, dosyaları sıkıştırmak ve açmak için araçlar içerir. Linux'un hem .tar.gz hem de .zip için araçları vardır. .7z ve .rar gibi diğer sıkıştırılmış dosyalar için üçüncü taraf bir sıkıştırma yardımcı programının yüklenmesi gerekir.
Bazı Örnekler:
- WinZip
- WinRAR
- 7-Zip
- PKZIP
- WinAce
Disk Yönetim Yazılımları:
Disk Yönetimi, Windows XP'de fdisk komutunun yerine ilk kez sunulan yardımcı programdır. Bilgisayarlarında kurulu disk sürücülerini ve bu sürücülerle ilişkili bölümleri görüntülememizi veya yönetmemizi sağlar.
Disk Yönetimi, bilgisayar benzeri sabit disk sürücülerine ve flash sürücülerine takılı sürücüleri yönetmek için kullanılır. Sürücüleri bölmek, sürücü harfleri atamak ve çok daha fazlası için kullanılabilir.
Bazı Disk Yönetimi araçları şunlardır:
- Mini Tool Partition Wizard
- Paragon Partition Manager
- EaseUS Partition Master
- SMART Monitoring Tools
- AOMEI Partition Assistant
Disk Temizleme Yazılımları:
Microsoft Windows'ta bulunan bilgisayar yardımcı programı bakımıdır. Kullanıcının artık gerekmeyen veya güvenle silinebilecek dosyaları kaldırmasına olanak tanır. Geçici dosyalar da dahil olmak üzere gereksiz dosyaların kaldırılması, bilgisayarın işleyişini iyileştirmeye ve bilgisayarın boş alanını artırmaya yardımcı olabilir. Disk Temizleme'yi ayda en az bir kez çalıştırmak mükemmel bir bakım görevidir.
Disk Temizleme aracı, geçici internet dosyalarını, eski kontrol diski dosyalarını silebilir, eski dosyaları ve çevrimdışı web sayfalarını sıkıştırabilir. Disk Temizleme ayrıca Geri Dönüşüm Kutusu'nu boşaltmanıza, geçici dosyaları silmenize ve Küçük Resimleri silmenize olanak tanır.
Bazı Disk Temizleme yazılımları şunlardır:
- Iolo System mechanic
- IObit Advanced systemCare
- Piriform CCleaner
- Razer Cortex
Disk Birleştirici Yazılımlar:
Bir diskte depolanan dosyayı bitişik depolama konumlarını işgal edecek şekilde yeniden düzenleyerek erişim hızını artırmak için tasarlanmış Microsoft Windows'ta bir yardımcı programdır, bu teknik Birleştirme olarak adlandırılır.
Bir diski birleştirmek, kafa hareketini en aza indirir, bu da diskten dosya okumak ve diske dosya yazmak için gereken süreyi azaltır.
Birleştirici, sabit sürücü bölümünüzü arayacak ve verileri bir konumdan başka bir konuma taşıyacaktır, böylece orada depolanan dosyalar, sabit sürücü bölümünde birden çok konumda olmak yerine tek bir bitişik parça olur.
Bazı Disk Birleştiriciler:
Auslogics Disk Defrag
- MyDefrag
- Perfect disk
- Deflaggler
Sistem Yazılımı & Uygulama Yazılımı
Bellek ve süreç yönetimi gibi bilgisayar sisteminin kaynaklarını yönetmek için tasarlanmıştır. |
Belirli görevleri gerçekleştirmek için kullanıcının gereksinimlerini karşılamak üzere tasarlanmıştır. |
Düşük seviyeli bir dilde yazılmış |
Üst düzey bir dilde yazılmış |
Kullanıcılar için daha az etkileşimli |
Kullanıcılar için daha etkileşimli |
Sistem yazılımı, bir sistemin etkin işleyişi için hayati bir rol oynar. |
Uygulama yazılımı, göreve özel olduğu için sistemin işleyişi için çok önemli değildir. |
Çalıştırılacak uygulama yazılımından bağımsızdır. |
Çalıştırmak için sistem yazılımına ihtiyacı var. |
YAZILIM DİLLERİ
Bilgisayarlar, makine dilinde (0 ve 1'lerden oluşan ikili sistemle) çalışır. Ancak, makine dilinde programlama yapmak karmaşık ve zor olduğundan, programcıların daha kolay ve verimli bir şekilde yazılım geliştirebilmesi için farklı seviyelerde programlama dilleri geliştirilmiştir.
Programlama dilleri, soyutlama seviyelerine göre dört ana gruba ayrılmaktadır:
- Makine Dili
Makine dili, bilgisayarın doğrudan anlayabildiği ve işlemcinin çalıştırabileceği en temel dildir. Sadece 0 ve 1’lerden oluşan komutlarla yazılır. Her işlemcinin kendine özgü bir makine dili vardır ve bir işlemcide yazılmış makine kodu başka bir işlemcide çalışmaz.
Makine dili en düşük seviyeli dildir ve insanlar için anlaşılması oldukça zordur. Ancak, en hızlı ve doğrudan çalışan dildir çünkü çeviri gerektirmez.
- Düşük Seviyeli Diller
Makine diline oldukça yakın, donanım ile doğrudan etkileşim sağlayan dillerdir. Düşük seviyeli dillerde program yazabilmek için mikroişlemciler ve donanım mimarisi hakkında detaylı bilgi sahibi olmak gerekir.
- Assembly Dili: Assembly, makine diline en yakın olan düşük seviyeli programlama dillerindendir. Makine diline göre daha okunabilir bir yapıya sahiptir ve sembolik kodlar kullanır. Ancak, her işlemci ailesi için farklı bir Assembly dili vardır, bu yüzden taşınabilirliği düşüktür.
- Orta Seviyeli Diller
Orta seviyeli programlama dilleri, düşük seviyeli diller kadar donanıma yakın olup aynı zamanda daha anlaşılır ve taşınabilir kod yazmaya olanak tanır. Bu diller hem sistem programlama hem de uygulama programlaması için uygundur.
- C Dili: Yapısal programlama dillerinden biridir. İşletim sistemlerinden gömülü sistemlere, oyun programlamadan bilimsel hesaplamalara kadar geniş bir kullanım alanına sahiptir.
- C++ Dili: C diline dayalıdır ancak Nesne Yönelimli Programlama (OOP) özelliklerini destekler. C diline kıyasla daha esnektir ve büyük yazılım projelerinde tercih edilir.
- C# Dili: Microsoft tarafından geliştirilen bir nesne yönelimli dildir. C++ ve Java’nın güçlü yönlerini birleştirerek modern yazılım geliştirme süreçlerine uygun hale getirilmiştir. Windows uygulamaları, mobil uygulamalar ve oyun geliştirme gibi alanlarda yaygın olarak kullanılır.
- Yüksek Seviyeli Diller
Yüksek seviyeli diller, insanın anlayabileceği sözdizimine en yakın ve öğrenilmesi en kolay dillerdir. Bu diller donanım bağımsızdır ve genellikle yazılım geliştirme süreçlerini hızlandırmak için tasarlanmıştır.
- Python: Basit ve okunaklı sözdizimi ile en popüler dillerden biridir. Veri bilimi, yapay zeka, web geliştirme ve otomasyon gibi birçok alanda kullanılır.
- Java: Platform bağımsız bir dildir. "Bir kez yaz, her yerde çalıştır" prensibi ile tanınır. Mobil uygulamalardan büyük ölçekli kurumsal yazılımlara kadar geniş bir kullanım alanına sahiptir.
- Visual Basic: Microsoft tarafından geliştirilen, olay tabanlı bir programlama dilidir. Öğrenilmesi kolaydır ve genellikle masaüstü uygulamaları geliştirmek için kullanılır.
- Pascal: Akademik amaçlı olarak geliştirilen bir dildir. Yapısal programlamayı destekler ve öğrenilmesi kolaydır.
- Fortran: Bilimsel ve mühendislik hesaplamaları için geliştirilmiş yüksek seviyeli bir programlama dilidir. Özellikle süper bilgisayarlarda karmaşık matematiksel işlemler için kullanılır.
WEB PROGRAMLAMA ve KULLANILAN TEKNOLOJİLER
Web programlama, internet üzerinde çalışan dinamik ve etkileşimli uygulamaların geliştirilmesini sağlayan süreçtir. Web geliştirme, yalnızca programlama dillerini değil, aynı zamanda işaretleme dillerini (HTML, XML), stil tanımlama dillerini (CSS), betik dillerini (JavaScript), backend dillerini (PHP, Python, Node.js vb.), veri tabanlarını (SQL, NoSQL) ve API teknolojilerini de kapsar.
Web uygulamaları istemci (frontend) ve sunucu (backend) tarafı olmak üzere iki temel bileşene ayrılır:
- Frontend (Ön Yüz) Teknolojileri: Kullanıcının doğrudan etkileşim kurduğu, tarayıcıda çalışan teknolojilerdir. (HTML, CSS, JavaScript ve frontend framework’leri)
- Backend (Arka Uç) Teknolojileri: Sunucu tarafında çalışan, veri tabanı ve iş mantığını yöneten sistemlerdir. (PHP, Python, Node.js, ASP.NET vb.)
- Veritabanı Teknolojileri: Web uygulamalarının veri yönetimi için kullanılır. (MySQL, PostgreSQL, MongoDB vb.)
- API ve Web Servisleri: Farklı sistemler arasında veri alışverişi sağlayan yapılardır. (RESTful API, GraphQL vb.)
- Web Güvenliği ve HTTPS: Web uygulamalarının güvenliğini sağlamak için kullanılan yöntemlerdir.
Aşağıda, web geliştirmede kullanılan temel diller ve teknolojiler detaylandırılmıştır.
- HTML (HyperText Markup Language)
HTML bir programlama dili değil, bir işaretleme dilidir. Web sayfalarının yapısını ve içeriğini belirlemek için kullanılır. HTML, etiketler (tag) ile çalışır ve metin, resim, video, bağlantılar gibi öğeleri sayfada düzenlemek için kullanılır. Açık kaynaklı ve öğrenmesi kolay bir dildir. Dosya uzantıları: .html, .htm
- CSS (Cascading Style Sheets)
CSS, HTML tarafından oluşturulan sayfaların tasarımını ve görsel düzenini belirlemek için kullanılan bir stil dilidir. Renkler, yazı tipleri, sayfa düzeni ve responsive (mobil uyumlu) tasarımlar CSS ile yapılır. CSS, HTML etiketlerine doğrudan gömülebilir, harici bir dosyada tanımlanabilir veya "style" etiketi ile sayfa içinde yazılabilir.
- JavaScript (JS)
JavaScript, dinamik ve etkileşimli web sayfaları oluşturmak için kullanılan bir programlama dilidir. Tarayıcı tarafında çalışır ve kullanıcı etkileşimlerini yönetmek, animasyonlar eklemek, formları doğrulamak gibi işlevler için kullanılır.
Modern JavaScript, React, Angular ve Vue.js gibi frameworkler ile desteklenerek büyük ölçekli web uygulamalarında yaygın olarak kullanılmaktadır.
- AJAX (Asynchronous JavaScript and XML)
AJAX, JavaScript kullanarak sayfanın tamamını yenilemeden veri alışverişi yapmayı sağlayan bir teknolojidir. Özellikle dinamik web sitelerinde, anlık veri güncellemeleri ve hızlı kullanıcı deneyimi sağlamak için kullanılır.
Not: AJAX tek başına bir programlama dili değildir, JavaScript ile XML veya JSON formatında veri alışverişi yapmayı sağlayan bir tekniktir.
- PHP (Hypertext Preprocessor)
PHP, sunucu tarafında çalışan ve web uygulamalarının backend işlemlerini yöneten bir programlama dilidir. Veritabanı işlemleri, kullanıcı giriş-çıkış yönetimi, form verisi işleme gibi işlevler için kullanılır.
- Açık kaynaklıdır ve en yaygın kullanılan backend dillerindendir.
- Genellikle MySQL, PostgreSQL gibi veritabanlarıyla birlikte çalışır.
- Dosya uzantıları: .php
- ASP.NET
ASP.NET, Microsoft tarafından geliştirilen bir web uygulama framework’üdür. C# veya VB.NET dilleriyle kullanılabilir ve genellikle büyük ölçekli kurumsal projelerde tercih edilir.
- Windows tabanlıdır ve IIS (Internet Information Services) sunucusu üzerinde çalışır.
- PHP’ye göre daha karmaşıktır, ancak güvenlik ve performans açısından güçlüdür.
- Python & Django / Flask
Python, web geliştirme için yaygın olarak kullanılan bir dildir. Python’un Django ve Flask gibi framework'leri ile dinamik ve ölçeklenebilir web uygulamaları geliştirilebilir.
- Django: Büyük projeler için tercih edilen, güçlü ve modüler bir framework’tür. ORM (Object-Relational Mapping) desteği ile veritabanı işlemlerini kolaylaştırır.
- Flask: Hafif ve esnek bir framework’tür, küçük projeler veya mikro servisler için idealdir.
- Node.js
Node.js, JavaScript’in sunucu tarafında çalışmasını sağlayan bir çalışma ortamıdır. Geleneksel olarak frontend dili olan JavaScript, Node.js sayesinde backend işlemlerini de yönetebilir.
- Gerçek zamanlı uygulamalar (chat, online oyunlar, canlı bildirimler) için uygundur.
- js gibi framework’ler ile kullanılarak hızlı ve ölçeklenebilir API’ler geliştirilir.
- Dosya uzantıları: .js
- SQL & NoSQL Veritabanları
Web uygulamalarında verilerin saklanması ve yönetilmesi için veri tabanı yönetim sistemleri (DBMS) kullanılır.
- SQL (Structured Query Language): Geleneksel ilişkisel veritabanları için kullanılır. MySQL, PostgreSQL, Microsoft SQL Server gibi sistemler SQL tabanlıdır.
- NoSQL (Not Only SQL): Büyük ölçekli ve esnek veri yönetimi için kullanılır. MongoDB, Firebase, CouchDB gibi sistemler NoSQL tabanlıdır.
- API (Application Programming Interface) & RESTful Web Servisleri
Modern web geliştirmede farklı sistemlerin birbiriyle iletişim kurabilmesi için API’ler kullanılır.
- RESTful API: HTTP istekleri (GET, POST, PUT, DELETE) ile çalışan, hafif ve ölçeklenebilir bir API mimarisidir.
- GraphQL: REST’e alternatif olarak geliştirilen, daha esnek veri sorgulama imkânı sunan bir API teknolojisidir.
- Web Güvenliği ve HTTPS
Web uygulamalarında güvenlik, en önemli konuların başında gelir. Web güvenliği için kullanılan bazı yöntemler:
- HTTPS (HyperText Transfer Protocol Secure): Veri iletişimini şifreleyerek güvenli bir bağlantı sağlar.
- OAuth ve JWT (JSON Web Token): Kimlik doğrulama ve yetkilendirme için kullanılır.
- SQL Injection, XSS, CSRF gibi saldırılara karşı güvenlik önlemleri alınmalıdır.
İŞLETİM SİSTEMİ
İşletim sistemi, elektronik cihazlarda çalışan, bu cihazların donanım kaynaklarını yöneten ve çeşitli uygulama yazılımları için yaygın servisleri sağlayan bir yazılımlar bütünüdür.
İŞLETİM SİSTEMİNİN MANTIKSAL YAPISI
Bir işletim sisteminin mantıksal yapısı, işletim sisteminin temel bileşenlerini ve işlevlerini tanımlar. İşletim sistemi, bilgisayar donanımını ve uygulama yazılımlarını yöneten yazılımdır. İşte bir işletim sisteminin mantıksal yapısını oluşturan temel bileşenler:
- Çekirdek (Kernel): İşletim sisteminin merkezi bileşeni olan çekirdek, donanım ile yazılım arasındaki iletişimi sağlar. İşletim sistemi işlevlerini yönetir, işlem yönetimi, bellek yönetimi, dosya yönetimi, cihaz sürücüleri ve ağ iletişimi gibi temel görevleri yerine getirir.
- Bellek Yönetimi: İşletim sistemi, fiziksel belleği (RAM) yönetir ve her uygulamanın ve işlemin bellek kullanımını denetler. Bellek yönetimi, bellek tahsisini ve serbest bırakmayı içerir.
- İşlem Yönetimi: İşletim sistemi, çalışan işlemleri yönetir. İşlemler, bilgisayar programlarının yürütüldüğü özdeş iş birimleridir. İşletim sistemi, işlem oluşturma, sonlandırma, duraklatma ve devam ettirme yeteneklerini sağlar.
- Dosya Yönetimi: İşletim sistemi, dosyaların oluşturulması, okunması, yazılması, güncellenmesi, silinmesi ve taşınması gibi dosya işlemlerini yönetir. Dosya yönetimi, dosya sistemi olarak adlandırılan bir yapıyı kullanarak gerçekleştirilir.
- Giriş/Çıkış (I/O) Yönetimi: İşletim sistemi, cihazlar arasındaki veri akışını yönetir. Bu, klavye, fare, ekran, disk sürücüleri, yazıcılar ve diğer donanım cihazlarını içerir. I/O yönetimi, cihaz sürücülerini ve veri transferini kontrol eder.
- Ağ İletişimi: İşletim sistemi, ağ bağlantıları ve iletişimi yönetir. Bu, yerel ağlar, kablosuz ağlar ve internet erişimi gibi ağlar arasında veri transferini içerir.
- Kullanıcı Arabirimi: İşletim sistemi, kullanıcıların bilgisayarla etkileşimde bulunmasını sağlar. Bu, grafik kullanıcı arabirimi (GUI) veya komut satırı arabirimi gibi farklı kullanıcı arayüzleri içerebilir.
- Güvenlik ve Kimlik Doğrulama: İşletim sistemi, güvenlik önlemlerini uygular ve kullanıcıların kimlik doğrulamasını yönetir. Bu, kullanıcı hesaplarını koruma, şifreleme, erişim kontrolleri ve güvenlik güncellemelerini içerir.
- Zaman ve Zamanlama: İşletim sistemi, zamanı ve saatleri yönetir. Bu, tarih ve saat ayarlarını, zamanlayıcıları ve zaman sinyali senkronizasyonunu içerir.
İşletim sistemi, bu temel bileşenleri bir araya getirerek bilgisayar donanımını etkili bir şekilde kullanılabilir hale getirir ve uygulama yazılımlarının çalışmasını sağlar. İşletim sistemi, kullanıcıların işlemci, bellek, depolama ve diğer kaynakları paylaşmalarına yardımcı olur ve aynı zamanda donanımın karmaşıklığını kullanıcılardan gizler. Bu, bilgisayarın kullanımını daha kolaylaştırır ve uygulama geliştiricilerine bir platform sağlar.
Unix, Linux, Solaris, Windows, MacOS, AIX, Android, PalmOS, Symbian, WebOS…
Unix, 1960'ların sonlarında ve 1970'lerin başlarında AT&T Bell Laboratories'de geliştirilen ve daha sonra birçok farklı versiyonu türetilen bir işletim sistemi ailesidir. Unix, çok sayıda bilgisayar türüne ve mimarisine uyum sağlayabilen, çok kullanıcılı, çok görevli bir işletim sistemidir.
Unix tabanlı işletim sistemlerinden bazıları şunlardır:
- Linux
- macOS (Apple'ın işletim sistemi)
- Solaris
- AIX (IBM'in işletim sistemi)
- HP-UX (Hewlett-Packard'ın işletim sistemi)
Unix, birçok endüstri ve kuruluş tarafından kullanılmaktadır ve genellikle sunucu sistemlerinde ve bilimsel hesaplama alanlarında yaygın olarak tercih edilmektedir. Unix felsefesi, basit, küçük araçların bir araya getirilmesi ve her birinin tek bir işi iyi yapmasını teşvik eder. Bu, Unix'in esneklik, güvenilirlik ve genel kullanılabilirlik sağlamasına yardımcı olur.
Solaris, ilk olarak Sun Microsystems (şimdi Oracle Corporation'ın bir iştiraki) tarafından geliştirilen ve pazarlanan bir Unix tabanlı işletim sistemidir. Solaris, güçlü performans, güvenilirlik ve güvenlik özellikleri ile öne çıkar. Solaris işletim sistemi hakkında bazı temel bilgiler:
- Güçlü İşletim Sistemi: Solaris, yüksek performanslı sunucular, veri merkezleri ve iş istasyonları gibi büyük ve kritik sistemlerde kullanılmak üzere tasarlanmıştır. Gücünün bir kısmı, sistem kaynaklarını verimli bir şekilde kullanabilmesi ve yüksek performanslı hesaplama görevlerini destekleyebilmesidir.
- Güvenlik ve Veri Gizliliği: Solaris, güvenlik konusunda ciddi bir odak noktasıdır. Zengin güvenlik özellikleri içerir ve çok sayıda güvenlik standartlarına uygunluğu sertifikalandırılmıştır. Bu, hassas verilerin korunmasını destekler.
- Zengin İşlevsellik: Solaris, geniş bir yazılım ekosistemi ve çok sayıda uygulama sunar. Ayrıca, sanallaştırma teknolojilerini ve bulut bilişim entegrasyonunu destekler.
- ZFS Dosya Sistemi: Solaris'in özelliklerinden biri, ZFS (Zettabyte File System) olarak adlandırılan gelişmiş bir dosya sistemi sunmasıdır. ZFS, veri bütünlüğünü sağlama, yedekleme ve hızlı veri depolama için önemli avantajlar sunar.
- Sun Cluster: Solaris, yüksek erişilebilirlik ve iş sürekliliği için kullanılan Sun Cluster gibi özelliklere sahiptir. Bu, kritik iş yüklerinin kesintisiz çalışmasını sağlamak için kullanılır.
- Açık Kaynak Katkıları: Solaris, açık kaynak topluluklarına katkıda bulunan ve açık kaynak projeleriyle bütünleşen bir işletim sistemidir. Bu, Solaris kullanıcılarının geniş bir yazılım ve hizmet yelpazesi ile entegre olmalarına olanak tanır.
Solaris işletim sistemi, özellikle büyük kurumsal ortamlarda ve kritik uygulamalar için tasarlanmış yüksek performanslı sistemlerde kullanılır. Oracle, Solaris'in geliştirilmesini ve destek hizmetlerini sağlamaya devam etmektedir, ancak işletim sisteminin kullanımı zaman içinde diğer Unix benzeri işletim sistemlerinin ve Linux'un yükselmesi nedeniyle daha sınırlı hale gelmiştir.
Linux, özgür ve açık kaynaklı bir Unix benzeri işletim sistemidir. İlk kez 1991 yılında Linus Torvalds tarafından geliştirilmeye başlanmıştır. Linux, geniş bir kullanıcı ve geliştirici topluluğu tarafından geliştirilen, dağıtılan ve desteklenen bir işletim sistemidir. İşte Linux hakkında bazı temel bilgiler:
- Açık Kaynak ve Özgür Yazılım: Linux, özgür yazılım felsefesine dayanır ve GNU Genel Kamu Lisansı (GPL) gibi özgür yazılım lisansları altında dağıtılır. Bu, kullanıcıların yazılımı inceleyebilmesini, değiştirebilmesini ve paylaşabilmesini sağlar.
- Çeşitli Dağıtımlar: Linux'un birçok farklı dağıtımı (distro) bulunur. Bu dağıtımlar, farklı kullanım senaryolarına ve gereksinimlere göre özelleştirilmiş sürümlerdir. Örnekler arasında Ubuntu, Fedora, CentOS, Debian ve Red Hat Enterprise Linux bulunmaktadır.
- Çoklu Kullanıcı ve Çoklu Görev: Linux, çok kullanıcılı ve çok görevli bir işletim sistemidir. Birçok kullanıcının aynı anda çalışmasına ve birden fazla görevin (işlem) yönetilmesine izin verir.
- Geniş Donanım Desteği: Linux, birçok farklı donanım platformunu destekler. Bu, masaüstü bilgisayarlar, sunucular, gömülü sistemler ve mobil cihazlar dahil olmak üzere bir dizi cihazda çalışabilmesini sağlar.
- Geniş Yazılım Ekosistemi: Linux, binlerce ücretsiz ve açık kaynaklı yazılım uygulamasını içeren geniş bir yazılım ekosistemine sahiptir. Bu, kullanıcıların işlerini kolaylaştırmak için çok sayıda uygulama ve araç bulmalarını sağlar.
- Topluluk Destek: Linux kullanıcıları ve geliştiricileri arasında geniş bir topluluk bulunur. Bu topluluk, sorun giderme, yardım ve belgelendirme sağlamak için birçok kaynak sunar.
Linux, birçok farklı dağıtım (distribution veya distro) tarafından sunulmaktadır. Her bir Linux dağıtımı, Linux çekirdeğini temel alır ve özel uygulamalar, paket yöneticileri, pencere yöneticileri ve diğer bileşenler ekler. Bu farklılıklar, her dağıtımın belirli kullanım senaryolarına ve ihtiyaçlarına hitap etmesini sağlar. İşte bazı popüler Linux dağıtımlarından bazıları:
- Ubuntu: Ubuntu, kullanımı kolay bir masaüstü işletim sistemi olarak ün kazanmıştır. Ayrıca sunucu versiyonları da mevcuttur. Canonical Ltd. tarafından geliştirilir ve geniş bir topluluk tarafından desteklenir. Ubuntu, LTS (Uzun Süreli Destek) sürümleriyle bilinir.
- Fedora: Fedora, özgür ve açık kaynaklı yazılıma dayalı bir Linux dağıtımıdır. Yenilikçi ve güncel yazılımların öncüsü olarak bilinir. Fedora Projesi, Red Hat'ın topluluğa yönelik sürdürdüğü bir projesidir.
- Debian: Debian, istikrarlı ve güvenilir bir Linux dağıtımıdır. Debian Projesi, özgür yazılım ilkelerini benimseyen bir topluluk tarafından yönetilir. Debian, çeşitli diğer Linux dağıtımlarına temel teşkil eder.
- CentOS: CentOS, Red Hat Enterprise Linux (RHEL) tabanlı ücretsiz bir Linux dağıtımıdır. Bu nedenle CentOS, iş dünyası için güvenilir bir alternatif sunar. Ancak, CentOS 8 ve sonrası sürümlerde, CentOS Stream adında yeni bir dağıtım modeline geçiş yapılmıştır.
- openSUSE: openSUSE, kullanımı kolay bir Linux dağıtımıdır ve SUSE Linux Enterprise (SLE) tabanlıdır. Hem masaüstü hem de sunucu kullanımı için sürümleri mevcuttur.
- Arch Linux: Arch Linux, hızlı ve hafif bir dağıtım olarak bilinir. Kendi sistemini özelleştirmeyi seven deneyimli kullanıcılar için uygundur. Arch, "Kullanıcı Odaklı" bir yaklaşım benimser.
- Kali Linux: Kali Linux, siber güvenlik ve penetrasyon testleri için özel olarak tasarlanmıştır. Bu nedenle siber güvenlik profesyonelleri ve pentester'lar tarafından yaygın olarak kullanılır.
- Linux Mint: Linux Mint, kullanıcı dostu bir masaüstü işletim sistemi sunar ve genellikle yeni Linux kullanıcıları için tavsiye edilir. Cinnamon ve MATE gibi farklı masaüstü ortamları seçenekleri sunar.
- Gentoo: Gentoo, "kendin yap" bir yaklaşım benimseyen bir Linux dağıtımıdır. Kullanıcılar, sistemi özelleştirmek ve derlemek için Portage paket yöneticisini kullanır.
- Slackware: Slackware, Linux'un eski ve geleneksel bir dağıtımıdır. Minimalist bir yaklaşımı benimser ve özellikle tecrübeli kullanıcılara yöneliktir.
Bunlar, yalnızca popüler Linux dağıtımlarından bazılarıdır. Linux dünyasında birçok daha özelleştirilmiş ve niş dağıtım da bulunmaktadır. Her bir dağıtım, farklı kullanım senaryolarına ve gereksinimlere hitap eder, bu nedenle hangi dağıtımın sizin için en uygun olduğunu belirlerken ihtiyaçlarınıza ve tercihlerinize göz atmanız önemlidir.
Android, Google tarafından geliştirilen ve açık kaynaklı bir mobil işletim sistemidir. Android, mobil cihazlar için tasarlanmış bir işletim sistemidir ve dünya genelinde birçok farklı üretici tarafından kullanılmaktadır. İşte Android hakkında bazı temel bilgiler:
- Açık Kaynaklı: Android, açık kaynaklı bir işletim sistemidir, bu da yazılımın kaynak kodunun kamuya açık ve herkes tarafından erişilebilir olduğu anlamına gelir. Bu, geliştiricilerin Android'i özelleştirmelerine ve uygulama ekosistemi oluşturmalarına olanak tanır.
- Çoklu Cihaz Desteği: Android, akıllı telefonlar, tabletler, akıllı saatler, televizyonlar, otomobil bilgi-eğlence sistemleri ve daha birçok cihazda kullanılır. Bu, Android'in geniş bir cihaz yelpazesi ile uyumlu olduğu anlamına gelir.
- Google Play Store: Android, Google Play Store gibi büyük bir uygulama mağazası ile birlikte gelir. Bu mağaza, kullanıcılara milyonlarca uygulamaya, oyunlara ve diğer içeriklere erişim sağlar.
- Özelleştirme: Android, üreticilere ve kullanıcılara cihazlarını özelleştirmelerine olanak tanır. Üreticiler, kullanıcı arayüzlerini ve özel özellikleri ekleyebilirler. Kullanıcılar ise widget'ları, tema ve duvar kağıtlarını özelleştirebilirler.
- Güncelleme Döngüsü: Android, periyodik olarak yeni sürümler ve güncellemeler alır. Ancak bu güncellemelerin kullanıcılara ulaşma hızı, üretici ve operatörlerin politikalarına bağlıdır. Google'ın kendi cihazları, genellikle güncellemeleri daha hızlı alır.
- Açık Bir Platform: Android, uygulama geliştiricilerine açık bir platform sunar. Java, C++, Kotlin ve diğer diller kullanılarak uygulamalar geliştirilebilir. Ayrıca, Android Studio gibi entegre geliştirme ortamları (IDE'ler) ve geliştirme araçları da mevcuttur.
- Güvenlik: Android, güvenlik konusunda önemli adımlar atmıştır. Uygulama izinleri, güvenlik güncellemeleri ve Google Play Protect gibi özelliklerle kullanıcıları koruma altına alır.
- Google Hizmetleri: Android, bir dizi Google hizmetini entegre eder, bu da Gmail, Google Haritalar, YouTube, Google Drive ve daha birçok Google uygulamasına erişim sağlar.
Android, mobil cihazlar için en yaygın kullanılan işletim sistemlerinden biridir ve birçok farklı marka ve model tarafından desteklenmektedir. Ayrıca, IoT (Nesnelerin İnterneti) cihazlarından akıllı televizyonlara kadar birçok farklı cihazda da kullanılır. Android işletim sistemi, büyük bir geliştirici topluluğu ve açık kaynak özgürlüğü ile öne çıkar.
Android Versiyonları:
Windows, Microsoft Corporation tarafından geliştirilen ve pazarlanan bir işletim sistemidir. Dünya genelinde yaygın olarak kullanılan bir işletim sistemidir ve masaüstü bilgisayarlar, dizüstü bilgisayarlar, sunucular ve mobil cihazlar gibi birçok farklı platformda çalışabilir. İşte Windows işletim sistemi hakkında bazı temel bilgiler:
- Tarihçe: İlk kez 1985 yılında Windows 1.0 olarak piyasaya sürüldü. O zamandan beri birçok sürümü ve güncellemesi yayınlandı. Önemli Windows sürümleri arasında Windows 95, Windows XP, Windows 7, Windows 8 ve Windows 10 bulunmaktadır.
- Kullanıcı Dostu Arabirim: Windows, kullanıcı dostu bir grafiksel kullanıcı arabirimi (GUI) sunar. Bu, kullanıcıların fare ve klavye kullanarak bilgisayarlarına kolayca erişmelerini sağlar.
- Çeşitli Versiyonlar: Windows, farklı kullanım senaryolarına ve gereksinimlere yönelik farklı sürümlere sahiptir. Örneğin, Windows 10 Home, Windows 10 Pro, Windows Server, Windows 10 Enterprise ve daha fazlası gibi farklı sürümleri vardır.
- Uygulama Uyumluluğu: Windows, geniş bir uygulama ekosistemine sahiptir ve birçok yazılım ve uygulama Windows platformu için geliştirilmektedir. Bu, kullanıcıların çeşitli işlevler için yazılım seçeneklerine sahip olmalarını sağlar.
- Geliştirici Araçları: Windows, yazılım geliştirme için kapsamlı araçlar sunar. Visual Studio gibi entegre geliştirme ortamları (IDE'ler), geliştiricilerin Windows uygulamaları oluşturmalarına yardımcı olur.
- Güvenlik Özellikleri: Windows, güvenlik önlemlerini sürekli olarak güncellemektedir. Windows Güvenlik Duvarı, Windows Defender ve BitLocker gibi özellikler, kullanıcıların bilgisayarlarını korumalarına yardımcı olur.
- Oyunlar: Windows, birçok popüler oyunun çalıştığı bir platformdur. DirectX gibi oyun geliştirme kütüphaneleri, oyun geliştiricilerine yüksek performanslı oyunlar oluşturmaları için olanak tanır.
- Gelişmiş Donanım Desteği: Windows, farklı donanım cihazlarını destekler ve geniş bir sürücü ekosistemine sahiptir. Bu, kullanıcıların farklı donanım cihazlarını sorunsuzca kullanmalarını sağlar.
- Güncellemeler ve Destek: Microsoft, Windows işletim sistemini düzenli olarak günceller ve kullanıcılara güvenlik güncellemeleri sunar. Ayrıca, birçok Windows sürümü için uzun süreli destek (LTS) sunar.
Windows Versiyonları:
- Windows 3.1
- Windows 95
- Windows 98
- Windows 2000
- Windows ME
- Windows XP
- Windows Vista
- Windows 7
- Windows 8
- Windows 8.1
- Win 10 / Pro
- Windows 11
Sunucu/Server İşletim Sistemi: Sunucu işletim sistemleri, ağ (network) üzerindeki istemcilerin (client) ve diğer donanımların birbirleri arasında veri alıp göndermelerini sağlayan ve kaynakların paylaşımını yöneten işletim sistemleridir.
Günümüzde yaygın olarak kullanılan Windows sunucu işletim sistemlerinden bazıları şunlardır;
- Windows Server 2000
- Windows Server 2003
- Windows Server 2008
- Windows Server 2008 R2
- Windows Server 2012
- Windows Server 2012 R2
- Windows Server 2016
- Windows Server 2019
DOSYA UZANTILARI (Dosyaadı.uzantısı)
.exe --> uygulama dosyaları (install.exe , setup.exe , hesapmakinesi.exe)
.doc , .docx --> Ms Office Word (ödev.docx)
.xls , .xlsx --> Ms Office Excel (hesaptakvimi.xls)
.odt --> Açık kaynak kelime işlemci dosyası (Libre Office’in Word programı) (ödev.odt)
.txt , .rtf , .dic --> çeşitli metin/yazı dosyası uzantıları (şifrelerim.txt)
.ppt , .pptx --> Ms Office Power Point (sunum.ppt)
.avi , .mp4 , .mkv , .flv , .dat , .mov , 3gp --> Video dosyaları (Avatar.avi)
.mp3 , .wav , .mid --> Ses dosyaları (Mustafa_ceceli – iyikihayatımdasın.mp3)
.jpeg , .jpg , .png , .bmp , .tiff , .pdf --> Resim dosyaları (çiçek.jpeg)
.gif --> hareketli resim (komik.gif)
.psd --> Photoshop çalışma dosyası (neon-efekt.psd)
.html , .htm , .php , .asp , .aspx -->web dosyaları (index.php , form.php)
YAZILIM KURULUM SÜREÇLERİ VE EN İYİ UYGULAMALAR
Yazılım kurulum süreçleri, bir yazılımın kullanıma hazır hale gelmesi için gerçekleştirilen adımları kapsar. Bu süreçler, yazılımın doğru şekilde çalışmasını, güvenliğini ve performansını sağlamak için kritik öneme sahiptir. Bu başlık altında, yazılım kurulum süreçlerinin aşamalarını, farklı kurulum türlerini ve en iyi uygulamaları ele alacağız.
- Yazılım Kurulum Türleri
Yazılım kurulumu, kullanılan yönteme göre farklı kategorilere ayrılabilir:
- Manuel Kurulum: Kullanıcının elle yazılımı indirip yüklediği geleneksel yöntemdir.
- Otomatik Kurulum: Ansible, Chef, Puppet gibi otomasyon araçlarıyla yapılan kurulumlar.
- Sessiz (Silent) Kurulum: Büyük ölçekli sistemlerde kullanıcı müdahalesi olmadan gerçekleştirilen kurulumlardır.
- Container Tabanlı Kurulum: Docker ve Kubernetes gibi modern yöntemler kullanılarak yapılan kurulumlardır.
Ayrıca, kurulum ortamına göre farklı dağıtım modelleri bulunur:
- On-Premise Kurulum: Yazılımın yerel sunuculara veya bilgisayarlara yüklenmesiyle gerçekleştirilir.
- Bulut Tabanlı Kurulum: AWS, Azure gibi platformlar üzerinden yazılım dağıtımı yapılır.
- Sanallaştırma: VMware, VirtualBox, Hyper-V gibi araçlarla sanal makine tabanlı kurulumlar gerçekleştirilir.
- Yazılım Kurulum Süreçlerinin Aşamaları
a) Planlama ve Analiz
Kurulacak yazılımın amacı, kapsamı ve hedefleri belirlenerek ihtiyaç analizi yapılmalıdır. Donanım ve işletim sistemi uyumluluğu gözden geçirilerek sistem gereksinimleri değerlendirilmelidir. Ayrıca, kurulum sırasında karşılaşılabilecek olası riskler belirlenerek önlemler alınmalıdır.
b) Kurulum Öncesi Hazırlık
Olası hatalara karşı sistem ve veriler yedeklenmelidir. Kurulumun sorunsuz ilerlemesi için donanım, işletim sistemi ve ağ yapılandırması tamamlanmalıdır. Yazılımın lisans anahtarı veya aktivasyon işlemleri gerçekleştirilerek lisanslama süreci tamamlanmalıdır.
c) Kurulum İşlemi
Güvenilir kaynaklardan kurulum dosyaları temin edilmeli ve eksiksiz olduğundan emin olunmalıdır. Kurulum sihirbazı adımları dikkatlice takip edilerek kurulum işlemi gerçekleştirilmelidir. Yazılımın ayarları (dil, kullanıcı izinleri, ağ yapılandırması vb.) yapılandırılarak özelleştirme işlemleri tamamlanmalıdır.
d) Test ve Doğrulama
Yazılımın tüm özellikleri test edilerek fonksiyonel doğrulama yapılmalıdır. Sistem üzerindeki yük test edilerek çok sayıda kullanıcının eşzamanlı kullanımı simüle edilmelidir. Kurulum sonrası güvenlik açıkları belirlenerek güvenlik testleri yapılmalı ve diğer sistemlerle uyumluluk sağlanmalıdır.
e) Kullanıma Alma ve Dokümantasyon
Yazılımın kullanımına dair eğitim sağlanmalı ve kullanıcılar bilgilendirilmelidir. Kurulum süreci ve olası hata giderme adımları belgelenerek sistematik bir dokümantasyon oluşturulmalıdır.
f) Bakım ve Güncelleme
Güvenlik ve performans açısından düzenli güncellemeler takip edilmelidir. Kullanıcıların karşılaştığı hatalar zamanında düzeltilerek sistemin sorunsuz çalışması sağlanmalıdır. Güncelleme başarısız olursa geri dönülebilecek mekanizmalar tanımlanmalıdır.
- Yazılım Kurulumunda En İyi Uygulamalar
a) Güvenlik Önlemleri
Yazılım yalnızca resmi ve güvenilir kaynaklardan indirilmelidir. Dosya bütünlüğü sağlamak için SHA-256 veya GPG gibi imza doğrulama yöntemleri uygulanmalıdır. Yetkilendirme ve erişim kontrolleri dikkatlice ayarlanarak sistem güvenliği artırılmalıdır.
b) Yedekleme ve Geri Yükleme
Kurulum öncesinde sistemin yedeği alınarak olası veri kayıplarına karşı önlem alınmalıdır. Hata durumlarında geri yükleme planı hazır bulundurulmalıdır.
c) Adım Adım Kurulum
Gereksiz bileşenlerin yüklenmesinden kaçınılmalı ve yalnızca ihtiyaç duyulan özellikler seçilmelidir. Kurulum sırasında oluşan hataların tespit edilebilmesi için sistem logları takip edilmelidir.
d) Test ve Doğrulama
Kurulum sonrası performans testleri yapılmalı ve sistem yük altında test edilmelidir. Güvenlik açıklarını belirlemek için penetrasyon testleri gerçekleştirilmelidir.
e) Dokümantasyon ve Eğitim
Kurulum süreci eksiksiz bir şekilde belgelemeli ve olası sorunlarla karşılaşıldığında çözümler için kılavuz oluşturulmalıdır. Kullanıcı eğitimi sağlayarak yazılımın doğru ve verimli kullanılmasına destek olunmalıdır.
- Gerçek Dünya Senaryoları ve Örnekler
Örnek 1: PostgreSQL Kurulumu
- Resmi siteden PostgreSQL indirilmelidir.
- Kurulum adımları takip edilerek veri tabanı yapılandırılmalıdır.
- Yetkilendirme ayarları yapılmalı ve güvenlik önlemleri alınmalıdır.
- Test verileri eklenerek sistemin doğruluğu kontrol edilmelidir.
Örnek 2: Docker ile Nginx Kurulumu
# Nginx Docker imajını çekme
docker pull nginx
# Nginx’i çalıştırma
docker run --name mynginx -p 80:80 -d nginx
Örnek 3: Windows Sunucuda Yazılım Kurulumu
- Kurulum medyası edinilmeli ve bütünlük kontrol edilmelidir.
- Kurulum sihirbazı çalıştırılarak güvenlik duvarı ayarları düzenlenmelidir.
- Gerekli bağımlılıklar yüklenerek sistem gereksinimleri tamamlanmalıdır.
- Yazılımın işletim sistemi ile uyumlu olup olmadığı test edilmelidir.
- Sık Karşılaşılan Sorunlar ve Çözüm Önerileri
Sorun |
Çözüm |
Uyumsuzluk Sorunları |
Yazılımın sistem gereksinimleri tekrar kontrol edilmelidir. |
Lisans Sorunları |
Lisans anahtarının doğruluğu kontrol edilmeli ve gerekirse destek ekibiyle iletişime geçilmelidir. |
Performans Sorunları |
Sistem kaynakları gözden geçirilmeli, gereksiz bileşenler kaldırılmalıdır. |
Güvenlik Açıkları |
Yazılımın en güncel sürümü kullanılmalı ve güvenlik duvarı ayarları gözden geçirilmelidir. |
- Sonuç
Yazılım kurulum süreçleri, doğru planlama, dikkatli uygulama ve kapsamlı testlerle sorunsuz bir şekilde tamamlanabilir. En iyi uygulamaları takip ederek, yazılımın güvenli, performanslı ve kullanıcı dostu bir şekilde çalışmasını sağlayabilirsiniz. Bu süreçte dokümantasyon ve eğitim, uzun vadeli başarı için kritik öneme sahiptir.
-- ÇEŞİTLİ YAZILIM TÜRLERİ --
A) Mesajlaşma yazılımları:
mIRC, ICQ, Ms Live Messenger, Sype, Google Talk, CamFrog, Zoom, Ms Teams, Whatsapp, Telegram
B) Dosya ve Sistem Yazılımları:
Deep Freeze, Downloader yazılımları, uTorrent, Dönüştürücü yazılımlar (convertors softwares: doc to PDF convertor, mp4 to Avi convertor), kurtarma yazılımları (recovery softwares)
D) Sanallaştırma yazılımları:
Oracle Virtual Box, Vmware, Ms Hyper V
A) Oyun yazılımları:
Grand Theft Auto V, Apex Legends, Cyberpunk 2077, Halo Infinite, Counter-Strike: Global Offensive, PUBG: BATTLEGROUNDS, New World, Dota 2.
Türk yapımı oyunlar: Mount & Blade Serisi, Tartarus, Alchemist's Castle, Roots of Insanity, Crysis Serisi, Conarium, İstanbul Kıyamet Vakti, Kabus 22, Erzurum Survivor
BİLGİSAYAR OYUNU TÜRLERİ:
1.FPS (First Person Shooter)
FPS ya da tam açılımı “First Person Shooter” oyunlar “Karakterin gözünden oynadığımız türdeki oyunlardır” diyebiliriz. Birinci şahıs bakış açısı olarak da bilinen bu tür, karakterimizin gözünden ateş ettiğimiz oyunlardır.
Özellikle eskiden PC platformunda gördüğümüz bu tarz oyunlar yeni nesil ile birlikte konsollar üzerinde de yoğun olarak tercih ediliyor. Bu türün atası, ID Software’a ait Wolfenstein isimli yapımdır. Doom ile birlikte oyun dünyasının gündeminde en üst sıraya oturduğunu söyleyebiliriz. Günümüzde Counter strike global offensive (CS:GO), Call of Duty ve Battlefield bu türün en başarılı örnekleridir.
2.TPS (Third Person Shooter)
Bu tür oyunlarda karakterimizin bütün vücudunu görüyoruz. Uzaktan çekilen bir kamerayla karakterimizi kontrol ettiğimiz oyun türlerine TPS adı veriliyor. Oyun haritası üzerinde birçok kaynağı en iyi şekilde yöneterek hem askeri hemde stratejik anlamda rakibe karşı üstünlük kurmaya çalıştığımız oyunlardır. Bu türe örnek oyunlar; GTA serisi, Metal Gear Solid serisi, God of War serisi ve Assasin’s Creed serisidir.
3.RPG (Role Playing Game)
Oyun dünyasının en kapsamlı ve detaylı türüdür. Oyuna başlarken karakterimizi en detay ayrıntıya kadar yapmamıza olanak sağlar. Oyunların akışında aldığımız kararlar oyunların senaryosunu değiştirir. Yeni RPG türlerinde diyalogları bile kendimiz seçebiliriz. Bu oyun türlerine örnek vermek gerekirse aklımıza ilk gelen Witcher serisi, Skyrim serisidir.
4.MMORPG (Massively Multiplayer Online Role Playing Game)
‘Devasa Çok Oyunculu Çevrimiçi Rol Yapma Oyunu’ anlamına gelen MMORPG’yi RPG oyunlardan ayıran tek şey çevrimiçi bir şekilde başka oyuncular ile birlikte oynanmasıdır. Büyük kitleleri peşinden koşturan bu tür oyunlar kendini sürekli yeniler ve oyunculara farklı deneyimler yaşatır. World of Warcraft bu türün temel taşıdır. Ülkemizde çok oynanan Metin2, Knight Online ve Silkroad MMORPG’nin en güzel örnekleridir.
5.MOBA (Multiplayer Online Battle Arena)
Moba gerçek zamanlı savaş strateji oyunlarının türüdür. Belirli bir oyun haritası üzerinden 0’dan geliştiğimiz ve oyunun ilerlemesine göre güçlendiğimiz oyun türüdür. iki yada daha fazla takımın oyunun haritasında stratejik hamleler yaptığı ve bir takımım galip gelmesiyle oyun son bulur. League of Legends bu türün en güçlü oyunudur.
6. RTS (Real Time Strategy)
Gerçek Zamanlı Strateji oyunlarında ekonomi kurup askeri başarı elde etmek temel hedeftir. Son derece detaylı ve hızlı davranmanız gereken oyun türünün başlıca örnekleri Age Of Empires serisi ve Starcraft serisidir.
7.TBS (Turn Based Strategy)
Yine RTS gibi ekonomi kurmanız amaçlanır ancak farklılık olarak hamlelerinizi sırayla yaparsınız. Daha taktiksel bir durum ortaya çıktığı için oyunlar çok uzun sürer. Civilization ve Total War serileri TBS türüne örneklerdir.
8. Adventure (Macera)
Kısaca macera türündeki oyunlardır ve herhalde en eski türlerden birisi de budur. Bu tür yapımlar sizi maceradan, maceraya taşırken gizemlerin nasıl çözüleceğini, içinden çıkılmaz bir durumda iken, kurtuluş yolunu ya cebinde taşıdığı bir kurtçukla ya da inanılmaz bir hamle ile sunar. Bu türün en güzel örnekleri Tomb Raider ve Uncharted gibi aksiyonu bol oyunlar olabilir.
9. Simulation (Simülasyon)
Günlük yaşamımızda gerçekleştirdiğimiz meslekleri yada işleri, video oyunları aracılıyla dijital ortama aktarılıp simüle edilmiş halleridir. Yarış oyunlarından tutun da poligon oyunlarına, gerçek hayat simülasyonlarından tutun da sürüş simülasyonlarına kadar birçok içeriğe ev sahipliği yapar. Oyunların içinde eklenen gerçekçilik ve ayrıntılardan dolayı insanlara normal şartlarda yapamayacakları birçok şeyi sunmalarından dolayı oyuncular tarafından da sıkça tercih edilirler.
10. Platform Oyunları
Genel olarak iki boyutlu oyunların çokça olduğunu bu türde günümüzde üç boyutlu platform oyunları da çıkarılmaktadır. Platform oyunları oyun sektörünün ilk işlerinden de sayılabilir. En başta üretilen birçok oyun belirli platformlar üzerinde oynanmakta ya da seviye mantığı ile platform değiştirmekteydi. Burada verdiğimiz örnek daha çok Atari Salonlarında oynanan oyunlarla uyuşuyor. Kısaca belirli bir akış şemasına sahip ve görevleri tamamlayarak ilerlediğimiz hoplamalı zıplamalı oyunlar diyebiliriz. Platform türüne örnek verecek olursak: Süper Mario.
11. J-RPG – japanese role playing game
Rol yapma oyunlarının yaygınlaşma aşaması sanırım en çok Asya pazarını etkilemiş olsa gerek. Tür dahilinde o kadar çok içerik ürettiler ve türü kendilerince o kadar çok geliştirdiler ki RPG bir evrim geçirip o J-RPG olarak adlandırılmaya başladı. Buradaki J, Japonyayı temsil etmekte ve bu sebeple Japon Rol Yapma Oyunu olarak çevirebiliriz.
----------
Yazılım Kurulum ve Yönetimi Dersinin Vizesi Hakkında Açıklama:
1. Arkadaşlar sınavımızda bu sayfadaki "DOSYA UZANTILARI" başlığına kadar sorumlusunuz. Bu başlığa kadar olan kısmı çalışıyorsunuz.
Yazılım Kurulum ve Yönetimi Dersinin Final Sınavı Hakkında Açıklama:
1. Derste Windows 10, Windows Server 2012, Ubuntu ve Kali Kurulumu yaptık. Windows 10, Windows 11, Windows Server 2012 ve Ubuntu'yu genel hatlarıyla inceledik. Bu doğrultuda örnek sorular paylaşıyorum, isteyen arkadaşlar bu örnek sorulara da bakabilir. Şimdilik Windows 11 soruları var, diğer işletim sistemleri ile ilgili örnek soruları güncelleyince sizlerle paylaşacağım. ÖRNEK SORULARI İNDİRMEK İÇİN TIKLAYINIZ.
'yazılım kurulum ve yönetimi', 'bilgisayar yazılım kurulumu', 'windows işletim sistemi', 'android işletim sistemi', 'linux işletim sistemi', 'sistem yazılımları', 'uygulama yazılımları', 'işletim sistemi', 'dil işlemcisi', 'aygıt sürücüsü', 'ofis yazılımları', 'medya oynatıcılar', 'tasarım programları', 'web tasarım programları', 'özelleştirilmiş yazılım', 'yardımcı yazılımlar', 'antivirüs yazılımları', 'dosya yönetim yazılımları', 'sıkıştırma yazılımları', 'disk yönetim yazılımları', 'disk temizleme yazılımları', 'disk birleştirme yazılımları', 'yazılım dilleri', 'makine dili', 'alt seviyeli diller', assembly, 'orta seviyeli diller', 'üst seviyeli diller', pascal, c, c++, c#, fortran, 'visual basic', 'photoshop', 'corel draw'