Bu yazı bilgisayar programlamaya merak salmış lakin bilgisayar hakkında çok da fazla bilgisi olmayan meraklıları hedeflemektedir. “İşletim sistemi nedir yenir mi?” gibi temel sorulara cevap arayacağız. Çok kısa bir özet olup, pek çok detay atlanmıştır.
İlk bilgisayarlar daha çok devasa hesap makineleriydiler. Görece karmaşık matematiksel problemleri çözmek gibi amaçlar ile kullanılıyorlardı. Yıl: 1938! Bkz: https://en.wikipedia.org/wiki/Computer
Bilgisayarlar gelişimine devam etmiştir, ikinci nesil bilgisayarlar vakum tüpleri kullanırken, 3. nesil bilgisayarlarda artık transistörler kullanılıyordu. İlk bilgisayarlar sabit programlara sabit ve sadece programlandıkları görevleri yapabilirken, ikinci ve üçüncü nesilde artık bilgisayarlar programlanabilir hale gelmişti ve bu programlar yeniden kullanım için depolanabiliyordu.
İlk başlarda programlama işlemleri makine dili kullanılarak yapılıyordu lakin makine dili insanlar tarafından okunup yorumlanabilen dil değildi. Derleyicilerin icadı programlanabilir bilgisayarların önünü açan en büyük etkenlerden birisi oldu. Artık programlar insan diline ve mantığına yakın mantıkta yazılabiliyor ve sonrasında makine diline çevriliyor ve çalıştırılabiliyordu.
Transistörlerin giderek küçülmesi ve entegre devre kartlarının gelişimi bizi yeni bir teknolojik devrime hazırlıyordu: Mikro Bilgisayarlar ve Kişisel Bilgisayarlar!
Mikro Bilgisayarlar ev bilgisayarlarına giden yoldaki ilk adımdı. Ev bilgisayarları hem ucuzlardı hem bellek hem de girdi/çıktı aygıtları olarak genişletilebiliyorlardı. En güzeli de artık her evde bulunmaya başlayan televizyonlara takılabilmeleri ve bir eğlence aracı olarak oyunları barındırıyor olmalarıydı.
İlk bilgisayarla tanışmam Commodore 64 ve Amiga 500 ile olsa da bunları kullanma şansı hiç bulamadım.
İlk başlarda her bilgisayar kendi disk işletim sistemi (DOS) ile geliyordu. Yazılım ve donanım olarak bir bütünlük yoktu. Aldığınız cihaz sadece ilgili DOS ile uyumluysa çalışıyordu. Bu dönemde IBM, bilgisayar pazarındaki payını kaybetmeye başlamıştı ve yeni bir yaklaşım ile kişisel bilgisayar (PC: Personal Computer) işine girdi ve açık mimarili ilk bilgisayarını yayınladı.
Ev bilgisayarları pazarında bütün bunlar olurken arkada bir dev zaten yerleşmiş ve yaygın kullanılır hale gelmişti: Unix. Pek çok firmanın kendine göre özelleştirdiği Unix sürümleri vardı.
IBM PC için iki firmanın ürünlerini seçmişti: İşlemci için Intel ve işletim sistemi için Microsoft! Sonrasında boynuz kulağı geçecek ve bu iki firma da dünyanın kendi alanlarındaki en büyük firmaları arasına girecekti.
1980-95 yılları arasında en çok duyduğumuz kelimelerden bazıları muhtemelen şunlardır:
2000’li yıllar iletişimin giderek arttığı bir dönemi simgelemektedir. Bu dönemde Türkiye açısından özellikle İnternet artık yaygınlık kazanmaya başlamış, her evde olmasa bile internet kafeler sayesinde erişilebilir bir hizmet olmayı başarmıştır. Dial-up/Çevirmeli ağ bağlantıların yerini ADSL bağlantıların alması bu konuda büyük bir atılım sağlamıştır. Herkesin kendi bilgisayarını OEM parçalardan bir araya getirip ucuza ortaya çıkarmaya başladığı bu dönem, 2008-10 yıllarına kadar sürdü.
Giderek ucuzlayan bilgisayarlar bir başka elektronik cihazı da hayatımızda daha fazla kullanır olmamızı sağlamıştı: Cep telefonları! Cep telefonları sonrası hayatımıza ilk giren akıllı aletler Apple ürünü iPhone akıllı telefonlar, ardından Android cep telefonları ve ardından tabletler olmuştu.
Bilgisayar ve işletim sistemleri pazarındaki Microsoft baskınlığı/tekilliği, iPhone ve Android’in gelişiyle 2010 yılı gibi sona ermeye başladı.
Bilgisayar nedir, ne iş yapar?
Bilgisayar/Computer çok çeşitli şekillerde ve ebatlarda olabilen programlanabilen pek çok elektronik aletin genel adıdır. Uzay ve havacılık alanında kullanılan bir Süper Bilgisayar / Super Computer da bir bilgisayardır, evimizde muhtemelen bulunan dizüstü veya masaüstü bilgisayar da bir bilgisayardır, cebimizdeki cep telefonu da özünde bir bilgisayardır. Çok daha derine inersek, Raspberry Pi tek kartlık aygıt da bir bilgisayardır.
İşletim sistemi nedir, ne iş yapar?
Pardus topluğunun en temel sorularından biri bu olsa gerek: “İşletim Sistemi Nedir”
Teknik bakış açısıyla, donanım kaynakları ile kullanıcıdan gelen girdilerin işlendiği programlar için ortak hizmetler sağlayan yazılım veya yazılımlar bütünüdür. Daha az teknik ifadeyle; programları yüklediğimiz, lakin üstünde genel olarak çeşitli görsel ayarlar yapmak dışında çok da söz sahibi olamadığımız yazılımlar bütünüdür.
Uygulama nedir, ne iş yapar?
Uygulamalar, programlandığı konuda kullanıcıya girdilerini alıp işletim sistemine ileten ve işletim sistemi kaynaklarında işlenen sonuçları kullanıcıya sunan araçlardır. En basit ifadesiyle bir hesap makinesi, bir dosya yöneticisi, bir İnternet tarayıcısı, bir resim görüntüleme aracı hep birer programdır.
Uygulamalar, işletim sistemlerine özel yazılabildiği gibi (Windows 10, Mac OS, Linux) yazılabildiği gibi, birden çok işletim sistemini destekleyecek şekilde de yazılabilir. Örneğin Microsoft Dosya Yöneticisi Windows işletim sistemleri için yazılmıştır ve diğer işletim sistemlerinde çalışmazken, Firefox internet tarayıcısı birden çok işletim sistemini destekleyecek şekilde yazılmıştır ve işletim sistemine uygun kurulum veya paket dosyaları indirilerek kurulabilir veya çalıştırılabilir.
Bir uygulama nasıl yazılır?
Uygulamalar, çeşitli programlama dilleri kullanılarak yazılabilir. Örneğin ImageMagick, resimleri çeşitli resim türlerine dönüştürmeye yarayan ve kökleri 1990 yılına kadar giden C dili kullanılarak yazılmış bir yazılımdır. Pek çok başka dil için de kütüphaneleri bulunmakta olup, ilgili diller üstünden uygulamaya çeşitli görevler yaptırmak mümkündür.
Girdi ve çıktı ürettiği sürece bir arayüze ihtiyaç duymayan ImageMagick gibi uygulamalar olduğu gibi GIMP gibi çoğunlukla arayüzden oluşan uygulamalar da vardır.
İşletim sistemleri açısından bakarsak; MS-DOS’tan Windows işletim sistemine dönüşürken çoğu Microsoft uygulaması bir arayüz kullanacak şekilde tasarlanmıştır. Aynı şekilde Mac OS içinde aynı durum geçerlidir lakin Linux için bu durum tam olarak geçerli değildir.
Bir uygulama nasıl edinilir?
Eski Windows ortamlarında genelde uygulama kurulabilir dosyalar (exe, msi) olarak dağıtılır. Kullanıcılar bunları çeşitli sitelerden veya kaynaklardan indirir, kurar ve kullanırdı. Bu yaklaşım artık genelde terk edilmiş olup, çeşitli mağazalar aracılığıyla programlar indirilip daha güvenli olarak kurulmaya başlanmıştır. Mac OS için de güvenilmez kaynaklardan dosya indirmek mümkün olmakla birlikte genelde Apple uygulama mağazasından edinilir ve görece daha güvenlidir. Linux için ise genelde her dağıtımın kendi depolarından indirmek mümkün olduğu gibi, dağıtımın kullandığı paket sistemiyle uyumlu paketleri kurmak, Flatpak veya Snap üzerinden kurmak veya AppImage ile sistem bağımlılığı oluşturmadan çalıştırmak ve hatta programı çıkıp derleyip kurmaya kadar giden geniş bir seçenek (elbette çeşitli zorluğuyla beraber) vardır.
Cep telefonları için ise genelde mağazalar dışında güvenli uygulama kurulumu çok sınırlıdır ve genelde telefonu garanti kapsamı dışına çıkartacak işlemler gerektirmektedir.
Web sitesi nedir?
İnternetten önce de yerel ağlar kurmak mümkündü. Lakin bu ağlar dışarıdan erişime açık olmadığı için bağlandıkları iç ağlar kadar bilgisayara hizmet veriyordu. İnternet büyük bir devrimdi ve bu devrimin arkasında interneti çalışır hale getirmek için gerekli pek çok aracın ve protokolün de geliştirilmesi gerekiyordu.
İlk başlarda internetin temel kullanım amacı e-posta gönderip almaktan ibaretti. HTML‘in geliştirilmesiyle birlikte artık sabit/statik web siteleri hazırlamanın da yolu açılmış oluyordu. Bu dönemde geliştirilen ve hayatımızı değiştiren iki teknoloji daha vardır: JavaScript ve CSS.
Günümüzde bir web sitesi dediğimizde HTML ile sonucun üretildiği, arayüzdeki pek çok tema özelliğinin stiller (CSS) ile kontrol edildiği ve çoğu zaman JavaScript ile olayların (event) yakalandığı bir bütün aklımıza gelmektedir. Elbette ki bu tasnifin çok daha dışında kalan web siteleri de bulunmaktadır.
Sunucu ve web sunucusu nedir?
Sunucu, genelde dışarıdan aldığı istekleri işleyip taleplere uygun şekilde sonuçlar üreten bir bilgisayardır. E-posta alıp vermek, diğer bilgisayarlarla iletişim kurmak, FTP üstünden dosya paylaşımı yapmak, çeşitli protokoller kullanarak mesajları iletmek gibi pek çok görevi birlikte yapabilecekleri gibi çeşitli hizmetler için özelleşmiş sunucular da bulunabilir.
İnternetin çıkış zamanlarında web siteleri görece basit, görsel olarak çok zayıf ve etkileşim olarak sadece bilgiyi sunan, lakin kullanıcıdan e-posta yoluyla gelecek cevaplar dışında bilgi alamayan, istatistik tutamayan statik sayfalardan ibaretti. Statik sayfalar sunucular üstünde depolanır, gerektiğinde FTP bağlantıları kullanılarak çeşitli editörler (FrontPage en meşhurlarındandır) aracılığıyla düzenlenir ve çeşitli web sunucu yazılımlarıyla kullanıcıya sunulurdu. Sayfalar arasında linkler/bağlantılar aracılığıyla dolaşmak mümkündü. Kimi sayfalar resim de içerebilirdi lakin internetin genel yavaşlığı arasında kullanılan resimler sayfaları genelde yavaşlattığı için pek fazla tercih edilmezdi.
Frontend/Backend, Önyüz/Arkayüz deyimleri nereden gelmektedir?
İlk başlarda internet siteleri yapımcıları için webmaster terimi kullanılıyordu. Bir webmaster’dan beklenenler de genelde internet sitelerin önyüzlerini yönetmeleriydi. İlk web siteleri çok az içerik barındırıyordu. İçeriklerin tek tek yeniden eklenmesi, çeşitli bağlantıların oluşturulması gerekiyordu.
1994 yılında Rasmus Lerdorf kişisel web sitesini ayakta tutabilmek için C dilini kullanarak çeşitli CGI programları yazmıştı. Sonrasında bu programları web formlarını kullanacak şekilde genişletmiş ve en sonunda veritabanı entegrasyonunu da sağlamış ve 1995 yılında PHP duyurusunu yayınlamıştı. PHP’nin ilk sürümü böylece ücretsiz ve açık kaynak kodlu (GPL) lisansı ile yayınlanıyordu.
Artık web sitelerinin kullanıcı tarafından görülen kısmına Frontend/Önyüz, sunucu tarafında çalışan kısmına ise Backend/Arkayüz demenin vakti gelmişti.
Son Not: Bütün bu yazının amacı programlama, web programlama, işletim sistemi nedir gibi sorulara ve cep telefonları uygulamaları hakkında kullanıcıya temel bir giriş bilgisi sağlamaktır. Umarım kafanız çok karışmamıştır.
Açılış görseli: melnyk58