Bilgisayar

bilgipedi.com.tr sitesinden
setting the input parameters
A Colossus Mark 2 computer being operated by Dorothy Du Boisson (left) and Elsie Booker (right), 1943
Man replacing one vacuum tube out of hundreds in early computer
Rows of large, dark computer cabinets in warehouse-like room
Purple video game console with attached controller
Smartphone with rainbow-like display held in a hand
Farklı dönemlerden bilgisayarlar ve bilgi işlem cihazları.
Üst sıra: Otomatik mekanik hesap makinesi (1820) (Difference Engine), Birinci nesil bilgisayar (Colossus bilgisayar)
Orta sıra: Erken vakum tüplü bilgisayar (ENIAC), Süper bilgisayar (IBM Summit)
alt sıra: Video oyun konsolu (Nintendo GameCube), Akıllı telefon (LYF Water 2)

Bilgisayar, aritmetik veya mantıksal işlem dizilerini (hesaplama) otomatik olarak gerçekleştirmek üzere programlanabilen dijital bir elektronik makinedir. Modern bilgisayarlar, program olarak bilinen genel işlem kümelerini gerçekleştirebilir. Bu programlar bilgisayarların çok çeşitli görevleri yerine getirmesini sağlar. Bir bilgisayar sistemi, donanım, işletim sistemi (ana yazılım) ve "tam" çalışma için gereken ve kullanılan çevresel ekipmanı içeren "eksiksiz" bir bilgisayardır. Bu terim, bilgisayar ağı veya bilgisayar kümesi gibi birbirine bağlı ve birlikte çalışan bir grup bilgisayarı da ifade edebilir.

Çok çeşitli endüstriyel ve tüketici ürünleri bilgisayarları kontrol sistemleri olarak kullanır. Mikrodalga fırınlar ve uzaktan kumandalar gibi basit özel amaçlı cihazlar, endüstriyel robotlar ve bilgisayar destekli tasarım gibi fabrika cihazlarının yanı sıra kişisel bilgisayarlar ve akıllı telefonlar gibi mobil cihazlar gibi genel amaçlı cihazlar da buna dahildir. Bilgisayarlar, milyarlarca başka bilgisayarı ve kullanıcıyı birbirine bağlayan İnternet'e güç vermektedir.

İlk bilgisayarlar yalnızca hesaplamalar için kullanılmak üzere tasarlanmıştı. Abaküs gibi basit manuel aletler eski çağlardan beri insanlara hesaplama yapmada yardımcı olmuştur. Sanayi Devrimi'nin başlarında, dokuma tezgahları için desenleri yönlendirmek gibi uzun ve sıkıcı işleri otomatikleştirmek için bazı mekanik cihazlar üretildi. Daha sofistike elektrikli makineler 20. yüzyılın başlarında özel analog hesaplamalar yaptı. İlk dijital elektronik hesaplama makineleri İkinci Dünya Savaşı sırasında geliştirilmiştir. 1940'ların sonlarında ilk yarı iletken transistörleri, 1950'lerin sonlarında silikon tabanlı MOSFET (MOS transistör) ve monolitik entegre devre (IC) çip teknolojileri izledi ve 1970'lerde mikroişlemci ve mikrobilgisayar devrimine yol açtı. Bilgisayarların hızı, gücü ve çok yönlülüğü o zamandan beri dramatik bir şekilde artmakta, transistör sayıları (Moore yasasının öngördüğü gibi) hızlı bir şekilde artmakta ve 20. yüzyılın sonları ile 21. yüzyılın başlarında Dijital Devrime yol açmaktadır.

Geleneksel olarak, modern bir bilgisayar en az bir işlem elemanından, tipik olarak mikroişlemci biçiminde bir merkezi işlem biriminden (CPU) ve tipik olarak yarı iletken bellek yongaları olmak üzere bir tür bilgisayar belleğinden oluşur. İşlem elemanı aritmetik ve mantıksal işlemler gerçekleştirir ve bir sıralama ve kontrol birimi depolanan bilgilere yanıt olarak işlemlerin sırasını değiştirebilir. Çevresel aygıtlar arasında giriş aygıtları (klavye, fare, joystick, vb.), çıkış aygıtları (monitör ekranları, yazıcılar, vb.) ve her iki işlevi de yerine getiren giriş/çıkış aygıtları (örneğin, 2000'li yılların dokunmatik ekranı) bulunmaktadır. Çevresel aygıtlar bilginin harici bir kaynaktan alınmasını ve işlemlerin sonuçlarının kaydedilmesini ve alınmasını sağlar.

İlk elektrikli bilgisayar ENIAC'tır.

Bilgisayarlar, tarih boyunca, çok farklı biçimlerde karşımıza çıkmışlardır. 20. yüzyılın ortalarındaki ilk bilgisayarlar büyük bir oda büyüklüğünde olup, günümüz bilgisayarlarından yüzlerce kat daha fazla güç tüketiyorlardı. 21. yüzyılın başına varıldığında ise bilgisayarlar bir kol saatine sığacak ve küçük bir pil ile çalışacak duruma geldiler. Bu kadar küçük imal edilebilmelerinin temel nedeni 1969 yılında yarı iletkenler ile çok küçük alanlara sığdırılabilen devreler yapılabilmesidir. Intel'in ilk işlemci unvanına sahip olan 4004'ten sonra bilgisayar teknolojisi hız kazanmıştır. Toplumumuz kişisel bilgisayarı ve onun taşınabilir eşdeğeri, dizüstü bilgisayarını, bilgi çağının simgeleri olarak tanıdılar ve bilgisayar kavramıyla özdeşleştirdiler. Günümüzde çok yaygın kullanılmaktadırlar. Bilgisayarın temel çalışma prensibi ikili sayı sistemi yani sadece 0 ve 1'den oluşan kodlamalardır.

Jacquard'ın doku tezgâhı ilk kurulabilir aygıtlardandır.
zentriert Deneysel Model Analitik Makine

zentriert Zuse Z3, 1941


zentriert ENIAC, 1946


zentriertDEC PDP-7, 1965


zentriertApple II, 1977


zentriertIBM-PC, 1981


zentriertNotebook (Laptop) MacBook, 2006


zentriertIBM Blue Gene, 2007


zentriertSummit, 2018

Etimoloji

A human computer.
Mikroskop ve hesap makinesi ile bir insan bilgisayarı, 1952

Oxford İngilizce Sözlüğü'ne göre, bilgisayarın bilinen ilk kullanımı 1613 yılında İngiliz yazar Richard Brathwait tarafından yazılan The Yong Mans Gleanings adlı kitapta yer almıştır: "Zamanların en gerçek bilgisayarını ve nefes alan en iyi Aritmetikçiyi okudum ve günlerinizi kısa bir sayıya indirgedi." Terimin bu kullanımı bir insan bilgisayara, hesaplamaları veya hesaplamaları gerçekleştiren bir kişiye atıfta bulunuyordu. Kelime 20. yüzyılın ortalarına kadar aynı anlamda kullanılmaya devam etmiştir. Bu dönemin ikinci yarısında kadınlar genellikle bilgisayar olarak işe alınıyordu çünkü erkek meslektaşlarından daha az ücret alabiliyorlardı. 1943 yılına gelindiğinde insan bilgisayarların çoğu kadındı.

Çevrimiçi Etimoloji Sözlüğü, bilgisayar kelimesinin ilk kez 1640'larda 'hesaplayan kişi' anlamında kullanıldığını belirtmektedir; bu kelime "compute (v.) kelimesinden türemiş bir isimdir". Çevrimiçi Etimoloji Sözlüğü, terimin "'hesaplama makinesi' (herhangi bir türde)" anlamında kullanımının 1897'ye ait olduğunu belirtmektedir. Çevrimiçi Etimoloji Sözlüğü, terimin "programlanabilir dijital elektronik bilgisayar" anlamındaki "modern kullanımının" "bu isim altında 1945'ten; [teorik anlamda] Turing makinesi olarak 1937'den" kalma olduğunu belirtir.

Tarihçe

Geçmişte 'bilgisayar' olarak bilinen birçok aygıt günümüz ölçütlerine göre bu tanımı hak etmemektedirler. Başlangıçta bilgisayar sözcüğü hesaplama sürecini kolaylaştıran nesnelere verilen bir ad konumundaydı. Bu ilk dönemin bilgisayar örnekleri arasında sayı boncuğu (abaküs) ve Antikitera Makinesi (M.Ö 150- M.Ö100) sayılabilir. Yüzyıllar sonra, Orta Çağ sonundaki yeni bilimsel keşifler ışığında, Avrupalı mühendisler tarafından geliştirilen bir dizi makinesel hesaplama aygıtlarının ilki ise, Wilhelm Schickard'a (1623) aittir.

Ancak, yazılımlanabilir (veya kurulabilir) olmamaları nedeniyle bu aygıtların hiçbiri günümüz bilgisayar tanımına uymamaktadır. 1801 yılında Joseph Marie Jacquard'ın dokuma tezgâhındaki işlemi otomatikleştirmek adına ürettiği delikli kartlar ise bilgisayarların gelişme sürecindeki, kısıtlı da olsa, ilk yazılımlanabilme (kurulabilme) izlerinden sayılır. Kullanıcının sağladığı bu kartlar sayesinde, dokuma tezgâhı kart üzerindeki delikler ile tarif edilen çizime işleyişini uyarlayabiliyordu.

Вir delikli kart

1837 yılında Charles Babbage, adını Analytical Engine (çözümlemeli veya analitik makine) koyduğu, ilk tam yazılımlanabilir makinesel bilgisayarı kavramsallaştırıp tasarladı. Ancak parasal nedenler ve üzerindeki çalışmalarının sonlanamaması nedeniyle bu makineyi geliştiremedi.

Delikli kartların ilk büyük ölçekli kullanımı ise Herman Hollerith tarafından, 1890 yılında muhasebe işlemlerinde kullanılmak üzere tasarlanan hesap makinesidir. Hollerith'in o dönemde bağlı olduğu işletme ise sonraki yıllarda küresel bilgisayar devine dönüşecek IBM'dir. 19. yüzyılın sonlarına varıldığında, gelecek yıllarda bilişim donanım ve kuramlarının gelişimine büyük katkıda bulunacak uygulayımlar (teknolojiler) ortaya çıkmaya başlamıştılar: delikli kartlar, Boole cebiri, boşluk tüpleri ve teletip aygıtları.

20. yüzyılın ilk yarısında ise, birçok bilimsel gereksinim, gittikçe karmaşıklaşan örneksel (analog) bilgisayarlar ile giderildiler. Ancak günümüz bilgisayarlarının yanılmazlık düzeyinden hâlâ uzaktılar.

20. yüzyıl öncesi

Tarih öncesi Afrika'dan kalma bir kemik alet olan Ishango kemiği.

Hesaplamaya yardımcı olmak için binlerce yıldır, çoğunlukla parmaklarla bire bir yazışmayı kullanan aygıtlar kullanılmıştır. En eski sayma aleti muhtemelen bir tür çetele çubuğuydu. Daha sonraları Bereketli Hilal boyunca kayıt tutmaya yardımcı olan aletler arasında, içi boş pişmemiş kil kaplarda mühürlenmiş, muhtemelen çiftlik hayvanları ya da tahıllar gibi öğelerin sayımını temsil eden kalküller (kil küreler, koniler, vb.) yer almıştır. Sayma çubuklarının kullanımı buna bir örnektir.

Çin suanpan'ı (算盘). Bu abaküs üzerinde temsil edilen sayı 6,302,715,408'dir.

Abaküs başlangıçta aritmetik işler için kullanılmıştır. Roma abaküsü, MÖ 2400 gibi erken bir tarihte Babil'de kullanılan cihazlardan geliştirilmiştir. O zamandan beri birçok başka hesaplama tahtası veya tablosu icat edilmiştir. Ortaçağ Avrupa'sındaki bir sayım evinde, bir masanın üzerine damalı bir bez yerleştirilir ve para miktarlarını hesaplamaya yardımcı olması için belirli kurallara göre üzerinde işaretler gezdirilirdi.

Antik Yunan'da M.Ö. 150-100 yılları arasına tarihlenen Antikythera mekanizması, erken bir analog hesaplama cihazıdır.

Derek J. de Solla Price'a göre Antikythera mekanizmasının bilinen en eski mekanik analog bilgisayar olduğuna inanılmaktadır. Astronomik konumları hesaplamak için tasarlanmıştır. Kithira ve Girit arasındaki Yunan adası Antikythera açıklarındaki Antikythera batığında 1901 yılında keşfedilmiş ve yaklaşık olarak M.Ö. 100 yılına tarihlendirilmiştir. Antikythera mekanizmasıyla karşılaştırılabilir karmaşıklıktaki aygıtlar on dördüncü yüzyıla kadar yeniden ortaya çıkmayacaktı.

Astronomi ve denizcilikte kullanılmak üzere birçok mekanik hesaplama ve ölçüm aracı yapılmıştır. Planisfer, 11. yüzyılın başlarında Ebû Rayhân el-Bîrûnî tarafından icat edilen bir yıldız haritasıydı. Usturlap Helenistik dünyada MÖ 1. ya da 2. yüzyılda icat edilmiştir ve genellikle Hipparchus'a atfedilir. Planisfer ve dioptra'nın bir kombinasyonu olan usturlap, küresel astronomide birçok farklı problemi çözebilen analog bir bilgisayardı. Mekanik bir takvim bilgisayarı ve dişli çarklar içeren bir usturlap, 1235 yılında İran'ın İsfahanlı Ebubekir tarafından icat edilmiştir. Ebû Rayhân el-Bîrûnî ilk mekanik dişli ay-güneş takvimi usturlabını, dişli çarklı ve sabit kablolu erken bir bilgi işleme makinesini MS 1000 civarında icat etmiştir.

Orantı, trigonometri, çarpma ve bölme işlemlerinin yanı sıra kareler ve küp kökleri gibi çeşitli fonksiyonların çözümünde kullanılan bir hesaplama aleti olan sektör, 16. yüzyılın sonlarında geliştirilmiş ve topçuluk, ölçme ve navigasyon alanlarında uygulama alanı bulmuştur.

Planimetre, kapalı bir şeklin alanını mekanik bir bağlantıyla üzerinden geçerek hesaplayan manuel bir araçtı.

Sürgülü cetvel.

Sürgülü cetvel, logaritma kavramının yayınlanmasından kısa bir süre sonra İngiliz din adamı William Oughtred tarafından 1620-1630 yılları arasında icat edilmiştir. Çarpma ve bölme işlemlerini yapmak için elle çalıştırılan analog bir bilgisayardır. Sürgülü cetvel gelişimi ilerledikçe, eklenen ölçekler resiprokaller, kareler ve karekökler, küpler ve küp köklerin yanı sıra logaritma ve üstel, dairesel ve hiperbolik trigonometri ve diğer fonksiyonlar gibi transandantal fonksiyonlar sağlamıştır. Hafif uçaklarda zaman ve mesafe hesaplamaları için kullanılan E6B dairesel sürgülü cetvel gibi rutin hesaplamaların hızlı bir şekilde gerçekleştirilmesi için özel ölçekli sürgülü cetveller hala kullanılmaktadır.

1770'lerde İsviçreli bir saat ustası olan Pierre Jaquet-Droz, tüy kalem tutarak yazabilen mekanik bir bebek (otomat) yaptı. İç çarklarının sayısı ve sırası değiştirilerek farklı harfler ve dolayısıyla farklı mesajlar üretilebiliyordu. Aslında, talimatları okumak için mekanik olarak "programlanabiliyordu". Bebek, diğer iki karmaşık makineyle birlikte İsviçre'nin Neuchâtel kentindeki Musée d'Art et d'Histoire'da bulunmaktadır ve halen çalışmaktadır.

1831-1835 yıllarında matematikçi ve mühendis Giovanni Plana, kasnaklar ve silindirlerden oluşan bir sistem aracılığıyla MS 0'dan (yani MÖ 1'den) MS 4000'e kadar her yıl için artık yılları ve değişen gün uzunluğunu takip ederek sürekli takvimi tahmin edebilen bir Sürekli Takvim makinesi tasarladı. İskoç bilim adamı Sir William Thomson tarafından 1872'de icat edilen gelgit tahmin makinesi sığ sularda seyrüsefer için büyük fayda sağlamıştır. Belirli bir yerde belirli bir dönem için öngörülen gelgit seviyelerini otomatik olarak hesaplamak için makara ve tellerden oluşan bir sistem kullanmıştır.

Diferansiyel denklemleri entegrasyon yoluyla çözmek için tasarlanmış mekanik bir analog bilgisayar olan diferansiyel analizör, entegrasyonu gerçekleştirmek için tekerlek ve disk mekanizmalarını kullanıyordu. 1876'da Sir William Thomson bu tür hesap makinelerinin olası yapımını tartışmıştı, ancak bilye ve disk entegratörlerinin sınırlı çıkış torku onu engellemişti. Bir diferansiyel analizörde, bir integratörün çıkışı bir sonraki integratörün girişini ya da bir grafik çıkışını yönlendiriyordu. Tork amplifikatörü, bu makinelerin çalışmasını sağlayan ilerlemeydi. 1920'lerden başlayarak Vannevar Bush ve diğerleri mekanik diferansiyel analizörler geliştirdiler.

İlk bilgisayar

Babbage'ın Fark motorunun bir bölümü.

İngiliz makine mühendisi ve polimat Charles Babbage, programlanabilir bilgisayar kavramını ortaya atmıştır. "Bilgisayarın babası" olarak kabul edilen Babbage, 19. yüzyılın başlarında ilk mekanik bilgisayarı kavramsallaştırmış ve icat etmiştir. Seyir hesaplamalarına yardımcı olmak için tasarladığı devrim niteliğindeki fark motoru üzerinde çalıştıktan sonra, 1833 yılında çok daha genel bir tasarımın, bir Analitik Motorun mümkün olduğunu fark etti. Programların ve verilerin girişi, o dönemde Jakar dokuma tezgahı gibi mekanik dokuma tezgahlarını yönlendirmek için kullanılan bir yöntem olan delikli kartlar aracılığıyla makineye sağlanacaktı. Çıktı için makinede bir yazıcı, bir eğri çizici ve bir zil bulunacaktı. Makine ayrıca daha sonra okunmak üzere kartların üzerine sayıları delebilecekti. Motor, bir aritmetik mantık birimi, koşullu dallanma ve döngüler şeklinde kontrol akışı ve entegre bellek içeriyordu ve bu da onu modern terimlerle Turing-tam olarak tanımlanabilecek genel amaçlı bir bilgisayar için ilk tasarım haline getiriyordu.

Makine zamanının yaklaşık bir asır ötesindeydi. Makinenin tüm parçaları elle yapılmak zorundaydı - binlerce parçadan oluşan bir cihaz için bu büyük bir sorundu. Sonunda, İngiliz Hükümeti'nin finansmanı durdurma kararıyla proje sona erdirildi. Babbage'ın analitik motoru tamamlayamaması, esas olarak siyasi ve mali zorlukların yanı sıra giderek daha sofistike bir bilgisayar geliştirme ve herkesten daha hızlı ilerleme arzusuna bağlanabilir. Yine de oğlu Henry Babbage, 1888'de analitik motorun hesaplama biriminin (değirmen) basitleştirilmiş bir versiyonunu tamamladı. Bunun tabloların hesaplanmasında kullanımını 1906'da başarılı bir şekilde gösterdi.

Analog bilgisayarlar

Sir William Thomson'ın üçüncü gelgit tahmin makinesi tasarımı, 1879-81

Yirminci yüzyılın ilk yarısında, birçok bilimsel hesaplama ihtiyacı, hesaplama için bir temel olarak problemin doğrudan mekanik veya elektriksel modelini kullanan, giderek daha sofistike hale gelen analog bilgisayarlar tarafından karşılandı. Ancak bunlar programlanabilir değildi ve genellikle modern dijital bilgisayarların çok yönlülüğünden ve doğruluğundan yoksundu. İlk modern analog bilgisayar, 1872 yılında Sir William Thomson (daha sonra Lord Kelvin olacaktı) tarafından icat edilen bir gelgit tahmin makinesiydi. Diferansiyel denklemleri tekerlek ve disk mekanizmalarını kullanarak entegrasyon yoluyla çözmek için tasarlanmış mekanik bir analog bilgisayar olan diferansiyel analizör, 1876 yılında daha ünlü Sir William Thomson'ın ağabeyi James Thomson tarafından kavramsallaştırılmıştır.

Mekanik analog hesaplama sanatı, 1927'den itibaren MIT'de H. L. Hazen ve Vannevar Bush tarafından inşa edilen diferansiyel analizör ile zirveye ulaştı. Bu, James Thomson'ın mekanik entegratörleri ve H. W. Nieman tarafından icat edilen tork amplifikatörleri üzerine inşa edilmiştir. Bu cihazlardan bir düzinesi, eskimeleri belirgin hale gelmeden önce üretildi. 1950'lere gelindiğinde, dijital elektronik bilgisayarların başarısı çoğu analog hesaplama makinesinin sonunu getirmişti, ancak analog bilgisayarlar 1950'ler boyunca eğitim (slayt cetveli) ve uçak (kontrol sistemleri) gibi bazı özel uygulamalarda kullanılmaya devam etti.

Dijital bilgisayarlar

Elektromekanik

1938 yılına gelindiğinde Birleşik Devletler Donanması bir denizaltıda kullanılabilecek kadar küçük bir elektromekanik analog bilgisayar geliştirmişti. Bu, hareketli bir hedefe torpido ateşleme problemini çözmek için trigonometri kullanan Torpido Veri Bilgisayarıydı. İkinci Dünya Savaşı sırasında diğer ülkelerde de benzer cihazlar geliştirildi.

Konrad Zuse'nin ilk tam otomatik, dijital (elektromekanik) bilgisayarı olan Z3'ün replikası.

İlk dijital bilgisayarlar elektromekanikti; elektrik anahtarları hesaplama yapmak için mekanik röleleri çalıştırıyordu. Bu cihazlar düşük bir çalışma hızına sahipti ve sonunda yerini, başlangıçta vakum tüpleri kullanan çok daha hızlı tamamen elektrikli bilgisayarlara bıraktı. Alman mühendis Konrad Zuse tarafından 1939 yılında üretilen Z2, elektromekanik röleli bilgisayarların en eski örneklerinden biriydi.

Zuse, 1941'de daha önceki makinesini dünyanın ilk çalışan elektromekanik programlanabilir, tam otomatik dijital bilgisayarı olan Z3 ile takip etti. Z3, yaklaşık 5-10 Hz'lik bir saat frekansında çalışan 22 bitlik bir kelime uzunluğu uygulayan 2000 röle ile inşa edildi. Program kodu delikli film üzerinde verilirken, veriler 64 kelimelik bellekte saklanabiliyor veya klavyeden sağlanabiliyordu. Bazı açılardan modern makinelere oldukça benziyordu ve kayan noktalı sayılar gibi çok sayıda gelişmeye öncülük ediyordu. Uygulanması daha zor olan ondalık sistem (Charles Babbage'ın daha önceki tasarımında kullanılan) yerine ikili sistemin kullanılması, o dönemde mevcut olan teknolojiler göz önüne alındığında Zuse'nin makinelerinin yapımının daha kolay ve potansiyel olarak daha güvenilir olduğu anlamına geliyordu. Z3'ün kendisi evrensel bir bilgisayar değildi ama Turing'i tamamlayacak şekilde genişletilebilirdi.

Zuse'nin bir sonraki bilgisayarı Z4, dünyanın ilk ticari bilgisayarı oldu; İkinci Dünya Savaşı nedeniyle yaşanan ilk gecikmenin ardından 1950 yılında tamamlandı ve ETH Zürih'e teslim edildi. Bilgisayar, Zuse'nin kendi şirketi olan ve 1941 yılında sadece bilgisayar geliştirmek amacıyla kurulan ilk şirket olan Zuse KG [de] tarafından üretildi.

Vakum tüpleri ve dijital elektronik devreler

Tamamen elektronik devre elemanları kısa sürede mekanik ve elektromekanik eşdeğerlerinin yerini aldı, aynı zamanda dijital hesaplama da analogun yerini aldı. 1930'larda Londra'daki Postane Araştırma İstasyonu'nda çalışan mühendis Tommy Flowers, telefon santrallerinde elektroniğin olası kullanımını araştırmaya başladı. 1934'te inşa ettiği deneysel ekipman beş yıl sonra faaliyete geçti ve telefon santral ağının bir bölümünü binlerce vakum tüpü kullanarak elektronik bir veri işleme sistemine dönüştürdü. ABD'de Iowa Eyalet Üniversitesi'nden John Vincent Atanasoff ve Clifford E. Berry, 1942 yılında ilk "otomatik elektronik dijital bilgisayar" olan Atanasoff-Berry Computer'ı (ABC) geliştirdi ve test etti. Bu tasarım da tamamen elektronikti ve bellek için mekanik olarak dönen bir tambura sabitlenmiş kapasitörlerle birlikte yaklaşık 300 vakum tüpü kullanıyordu.

Two women are seen by the Colossus computer.
İlk elektronik dijital programlanabilir hesaplama cihazı olan Colossus, İkinci Dünya Savaşı sırasında Alman şifrelerini kırmak için kullanıldı. Burada 1943 yılında Bletchley Park'ta kullanılırken görülüyor.

Dünya Savaşı sırasında, Bletchley Park'taki İngiliz şifre kırıcılar şifreli Alman askeri iletişimini kırma konusunda bir dizi başarı elde etti. Alman şifreleme makinesi Enigma'ya ilk olarak, genellikle kadınlar tarafından çalıştırılan elektro-mekanik bombalar yardımıyla saldırıldı. Max Newman ve meslektaşları, üst düzey ordu haberleşmesi için kullanılan daha sofistike Alman Lorenz SZ 40/42 makinesini kırmak için Flowers'ı Colossus'u inşa etmekle görevlendirdi. Flowers Şubat 1943'ün başından itibaren on bir ayını ilk Colossus'u tasarlamak ve inşa etmekle geçirdi. Aralık 1943'te yapılan işlevsel bir testin ardından Colossus Bletchley Park'a gönderildi. 18 Ocak 1944'te teslim edilen Colossus 5 Şubat'ta ilk mesajını gönderdi.

Colossus dünyanın ilk elektronik dijital programlanabilir bilgisayarıydı. Çok sayıda valf (vakum tüpü) kullanıyordu. Kağıt-bant girişi vardı ve verileri üzerinde çeşitli boolean mantıksal işlemler gerçekleştirecek şekilde yapılandırılabiliyordu, ancak Turing-tam değildi. Dokuz adet Mk II Colossi üretildi (Mk I, Mk II'ye dönüştürülerek toplamda on makine haline getirildi). Colossus Mark I 1.500 termiyonik valf (tüp) içeriyordu, ancak 2.400 valfli Mark II, Mark I'den hem beş kat daha hızlı hem de kullanımı daha basitti ve kod çözme sürecini büyük ölçüde hızlandırdı.

ENIAC ilk elektronik, Turing-komple cihazıydı ve Birleşik Devletler Ordusu için balistik yörünge hesaplamaları yapıyordu.

ENIAC (Electronic Numerical Integrator and Computer) ABD'de üretilen ilk elektronik programlanabilir bilgisayardı. ENIAC, Colossus'a benzemekle birlikte çok daha hızlı, esnek ve Turing-tamamlayıcıydı. Colossus gibi, ENIAC'taki bir "program", daha sonra gelen depolanmış programlı elektronik makinelerden çok farklı olarak, yama kablolarının ve anahtarlarının durumlarıyla tanımlanıyordu. Bir program yazıldıktan sonra, fişlerin ve anahtarların elle sıfırlanmasıyla mekanik olarak makineye yerleştirilmesi gerekiyordu. ENIAC'ın programcıları, genellikle toplu olarak "ENIAC kızları" olarak bilinen altı kadındı.

Bu makine elektroniğin yüksek hızını pek çok karmaşık problem için programlanabilme yeteneğiyle birleştiriyordu. Saniyede 5000 kez toplama ya da çıkarma yapabiliyordu, yani diğer tüm makinelerden bin kat daha hızlıydı. Ayrıca çarpma, bölme ve karekök alma modülleri de vardı. Yüksek hızlı bellek 20 kelimeyle (yaklaşık 80 bayt) sınırlıydı. Pennsylvania Üniversitesi'nde John Mauchly ve J. Presper Eckert yönetiminde inşa edilen ENIAC'ın geliştirilmesi ve yapımı 1943'ten 1945 sonunda tam olarak faaliyete geçmesine kadar sürdü. Makine 30 ton ağırlığında, 200 kilowatt elektrik gücü kullanan ve 18.000'den fazla vakum tüpü, 1.500 röle ve yüz binlerce direnç, kapasitör ve indüktör içeren devasa bir makineydi.

Modern bilgisayarlar

Modern bilgisayar kavramı

Modern bilgisayarın ilkesi, Alan Turing tarafından 1936 tarihli ufuk açıcı makalesi On Computable Numbers'da ortaya atılmıştır. Turing, "Evrensel Hesaplama Makinesi" adını verdiği ve günümüzde evrensel Turing makinesi olarak bilinen basit bir cihaz önermiştir. Böyle bir makinenin, teypte saklanan talimatları (program) çalıştırarak hesaplanabilen her şeyi hesaplayabildiğini ve makinenin programlanabilir olduğunu kanıtladı. Turing'in tasarımının temel kavramı, hesaplama için tüm talimatların bellekte saklandığı depolanmış programdır. Von Neumann, modern bilgisayarın merkezi kavramının bu makaleye bağlı olduğunu kabul etmiştir. Turing makineleri bugün de hesaplama teorisinde merkezi bir çalışma konusudur. Sonlu bellek depolarının getirdiği sınırlamalar dışında, modern bilgisayarların Turing-tam olduğu, yani evrensel bir Turing makinesine eşdeğer algoritma yürütme kabiliyetine sahip oldukları söylenir.

Saklanan programlar

Three tall racks containing electronic circuit boards
İlk elektronik saklı program bilgisayarı olan Manchester Baby'nin bir bölümü

İlk bilgisayar makinelerinin sabit programları vardı. İşlevinin değiştirilmesi makinenin yeniden kablolanmasını ve yeniden yapılandırılmasını gerektiriyordu. Saklı program bilgisayarının önerilmesiyle bu durum değişti. Bir saklı program bilgisayarı, tasarımı gereği bir komut seti içerir ve hesaplamayı detaylandıran bir dizi talimatı (bir program) hafızada saklayabilir. Saklı program bilgisayarının teorik temeli Alan Turing tarafından 1936 tarihli makalesinde atılmıştır. Turing, 1945 yılında Ulusal Fizik Laboratuvarı'na katıldı ve elektronik bir saklı program dijital bilgisayarı geliştirme çalışmalarına başladı. Turing'in 1945 tarihli "Önerilen Elektronik Hesap Makinesi" başlıklı raporu, böyle bir cihaz için ilk şartnameydi. Pennsylvania Üniversitesi'nden John von Neumann da 1945 yılında EDVAC üzerine hazırladığı Raporun İlk Taslağını yayınladı.

Manchester Bebeği dünyanın ilk depolanmış program bilgisayarıydı. İngiltere'deki Manchester Üniversitesi'nde Frederic C. Williams, Tom Kilburn ve Geoff Tootill tarafından inşa edilmiş ve ilk programını 21 Haziran 1948'de çalıştırmıştır. İlk rastgele erişimli dijital depolama cihazı olan Williams tüpü için bir test ortamı olarak tasarlanmıştır. Bilgisayar, zamanının standartlarına göre "küçük ve ilkel" olarak kabul edilse de, modern bir elektronik bilgisayar için gerekli tüm unsurları içeren ilk çalışan makineydi. Bebek, tasarımının uygulanabilirliğini kanıtlar kanıtlamaz, onu daha kullanışlı bir bilgisayar olan Manchester Mark 1'e dönüştürmek için üniversitede bir proje başlatıldı. Grace Hopper programlama dili için bir derleyici geliştiren ilk kişi oldu.

Mark 1 kısa sürede dünyanın ilk ticari genel amaçlı bilgisayarı olan Ferranti Mark 1'in prototipi haline geldi. Ferranti tarafından üretilen bu bilgisayar Şubat 1951'de Manchester Üniversitesi'ne teslim edildi. Daha sonra üretilen bu makinelerden en az yedisi 1953 ve 1957 yılları arasında, biri Amsterdam'daki Shell laboratuarlarına olmak üzere teslim edildi. Ekim 1947'de İngiliz catering şirketi J. Lyons & Company'nin yöneticileri bilgisayarların ticari gelişimini teşvik etmede aktif bir rol üstlenmeye karar verdi. LEO I bilgisayarı Nisan 1951'de faaliyete geçti ve dünyanın ilk düzenli rutin ofis bilgisayarı işini yürüttü.

Transistörler

Bipolar bağlantı transistörü (BJT)

Alan etkili transistör kavramı 1925 yılında Julius Edgar Lilienfeld tarafından ortaya atılmıştır. John Bardeen ve Walter Brattain, Bell Laboratuarlarında William Shockley'in altında çalışırken, 1947'de ilk çalışan transistörü, nokta temaslı transistörü yaptılar ve bunu 1948'de Shockley'in bipolar junction transistörü izledi. 1955'ten itibaren transistörler bilgisayar tasarımlarında vakum tüplerinin yerini alarak "ikinci nesil" bilgisayarların ortaya çıkmasını sağladı. Vakum tüpleriyle karşılaştırıldığında transistörlerin birçok avantajı vardır: daha küçüktürler ve vakum tüplerinden daha az güç gerektirirler, bu nedenle daha az ısı yayarlar. Bağlantı transistörleri vakum tüplerinden çok daha güvenilirdi ve daha uzun, süresiz hizmet ömrüne sahipti. Transistörlü bilgisayarlar nispeten kompakt bir alanda on binlerce ikili mantık devresi içerebiliyordu. Bununla birlikte, ilk bağlantı transistörleri, seri üretim bazında üretilmesi zor olan nispeten hantal cihazlardı ve bu da onları bir dizi özel uygulama ile sınırlıyordu.

Manchester Üniversitesi'nde Tom Kilburn liderliğindeki bir ekip, valfler yerine yeni geliştirilen transistörleri kullanarak bir makine tasarladı ve inşa etti. İlk transistörlü bilgisayarları ve dünyadaki ilk bilgisayarları 1953'te çalışır durumdaydı ve ikinci bir versiyonu da Nisan 1955'te tamamlandı. Bununla birlikte, makine 125 kHz saat dalga formlarını üretmek için ve manyetik tambur belleğini okumak ve yazmak için devrede valfler kullanıyordu, bu nedenle tamamen transistörlü ilk bilgisayar değildi. Bu ayrıcalık, Harwell'deki Atom Enerjisi Araştırma Kuruluşu'nun elektronik bölümü tarafından inşa edilen 1955 tarihli Harwell CADET'e aittir.

MOSFET (MOS transistör), geçit (G), gövde (B), kaynak (S) ve boşaltma (D) terminallerini gösterir. Geçit, gövdeden yalıtkan bir tabaka (pembe) ile ayrılmıştır.

MOS transistör olarak da bilinen metal-oksit-silikon alan etkili transistör (MOSFET), 1959 yılında Bell Laboratuvarlarında Mohamed M. Atalla ve Dawon Kahng tarafından icat edilmiştir. Çok çeşitli kullanımlar için minyatürleştirilebilen ve seri üretilebilen ilk gerçek kompakt transistördü. Yüksek ölçeklenebilirliği, çok daha düşük güç tüketimi ve bipolar junction transistörlere göre daha yüksek yoğunluğu ile MOSFET, yüksek yoğunluklu entegre devreler oluşturmayı mümkün kıldı. Veri işlemeye ek olarak, MOS transistörlerin bellek hücresi depolama elemanları olarak pratik kullanımını da sağlayarak, bilgisayarlarda daha önceki manyetik çekirdekli belleğin yerini alan MOS yarı iletken belleğin geliştirilmesine yol açtı. MOSFET mikrobilgisayar devrimine yol açmış ve bilgisayar devriminin arkasındaki itici güç olmuştur. MOSFET bilgisayarlarda en yaygın kullanılan transistördür ve dijital elektroniğin temel yapı taşıdır.

Entegre devreler

Bilgi işlem gücündeki bir sonraki büyük ilerleme entegre devrenin (IC) ortaya çıkışıyla geldi. Entegre devre fikri ilk olarak Savunma Bakanlığı'na bağlı Kraliyet Radar Kurumu'nda çalışan bir radar bilimcisi olan Geoffrey W.A. Dummer tarafından ortaya atılmıştır. Dummer, 7 Mayıs 1952 tarihinde Washington, D.C.'de düzenlenen Kaliteli Elektronik Bileşenlerde İlerleme Sempozyumu'nda entegre devrenin kamuya açık ilk tanımını sunmuştur.

İlk çalışan IC'ler Texas Instruments'ta Jack Kilby ve Fairchild Semiconductor'da Robert Noyce tarafından icat edildi. Kilby entegre devre ile ilgili ilk fikirlerini Temmuz 1958'de kaydetmiş ve 12 Eylül 1958'de ilk çalışan entegre örneğini başarıyla göstermiştir. Kilby, 6 Şubat 1959 tarihli patent başvurusunda yeni cihazını "elektronik devrenin tüm bileşenlerinin tamamen entegre edildiği ... bir yarı iletken malzeme gövdesi" olarak tanımladı. Ancak Kilby'nin icadı monolitik bir entegre devre (IC) çipinden ziyade hibrit bir entegre devredir (hibrit IC). Kilby'nin IC'sinin harici kablo bağlantıları vardı ve bu da seri üretimini zorlaştırıyordu.

Noyce da Kilby'den yarım yıl sonra kendi entegre devre fikrini ortaya attı. Noyce'un icadı ilk gerçek monolitik IC çipiydi. Onun çipi Kilby'ninkinin çözemediği pek çok pratik sorunu çözdü. Fairchild Semiconductor'da üretilen bu çip silikondan, Kilby'nin çipi ise germanyumdan yapılmıştı. Noyce'un monolitik IC'si, 1959'un başlarında meslektaşı Jean Hoerni tarafından geliştirilen düzlemsel süreç kullanılarak üretildi. Düzlemsel süreç ise Mohamed M. Atalla'nın 1950'lerin sonunda silikon dioksit ile yarı iletken yüzey pasivasyonu üzerine yaptığı çalışmalara dayanıyordu.

Modern monolitik IC'ler ağırlıklı olarak MOSFET'lerden (MOS transistörler) inşa edilen MOS (metal-oksit-yarı iletken) entegre devrelerdir. Üretilen en eski deneysel MOS IC, 1962 yılında Fred Heiman ve Steven Hofstein tarafından RCA'da üretilen 16 transistörlü bir çipti. General Microelectronics daha sonra 1964 yılında Robert Norman tarafından geliştirilen ilk ticari MOS IC'yi tanıttı. Robert Kerwin, Donald Klein ve John Sarace tarafından 1967 yılında Bell Laboratuvarlarında kendinden hizalı geçitli (silikon geçitli) MOS transistörün geliştirilmesinin ardından, kendinden hizalı geçitlere sahip ilk silikon geçitli MOS IC, 1968 yılında Fairchild Semiconductor'da Federico Faggin tarafından geliştirilmiştir. MOSFET o zamandan beri modern IC'lerdeki en kritik cihaz bileşeni haline gelmiştir.

MOS entegre devresinin geliştirilmesi mikroişlemcinin icadına yol açmış ve bilgisayarların ticari ve kişisel kullanımında bir patlamanın habercisi olmuştur. İlk mikroişlemcinin tam olarak hangi cihaz olduğu konusu, kısmen "mikroişlemci" teriminin tam tanımı üzerinde anlaşma olmaması nedeniyle tartışmalı olsa da, ilk tek çipli mikroişlemcinin Intel'de Ted Hoff, Masatoshi Shima ve Stanley Mazor ile birlikte Federico Faggin tarafından silikon kapılı MOS IC teknolojisi ile tasarlanan ve gerçekleştirilen Intel 4004 olduğu büyük ölçüde tartışmasızdır. 1970'lerin başında MOS IC teknolojisi, tek bir çip üzerinde 10.000'den fazla transistörün entegre edilmesini sağladı.

Çip Üzerinde Sistemler (SoC'ler) bozuk para büyüklüğünde bir mikroçip (ya da çip) üzerinde komple bilgisayarlardır. Entegre RAM ve flash belleğe sahip olabilirler ya da olmayabilirler. Entegre değilse, RAM genellikle SoC'nin hemen üstüne (Paket üzerinde paket olarak bilinir) veya altına (devre kartının karşı tarafına) yerleştirilir ve flash bellek genellikle SoC'nin hemen yanına yerleştirilir, tüm bunlar veri sinyallerinin uzun mesafeler kat etmesi gerekmediğinden veri aktarım hızlarını artırmak için yapılır. 1945'teki ENIAC'tan bu yana bilgisayarlar muazzam bir gelişme göstermiştir; modern SoC'ler (Snapdragon 865 gibi) bozuk para büyüklüğünde olmakla birlikte ENIAC'tan yüz binlerce kat daha güçlüdür, milyarlarca transistörü entegre eder ve yalnızca birkaç watt güç tüketir.

Mobil bilgisayarlar

İlk mobil bilgisayarlar ağırdı ve şebeke gücüyle çalışıyordu. 50 lb (23 kg) ağırlığındaki IBM 5100 ilk örneklerden biriydi. Osborne 1 ve Compaq Portable gibi daha sonraki taşınabilir bilgisayarlar oldukça hafifti ancak yine de fişe takılmaları gerekiyordu. Grid Compass gibi ilk dizüstü bilgisayarlar bataryaları sayesinde bu gereksinimi ortadan kaldırdı ve bilgi işlem kaynaklarının sürekli olarak minyatürleştirilmesi ve taşınabilir batarya ömründeki ilerlemeler sayesinde taşınabilir bilgisayarların popülaritesi 2000'li yıllarda arttı. Aynı gelişmeler 2000'li yılların başında üreticilerin bilgi işlem kaynaklarını hücresel cep telefonlarına entegre etmelerine olanak sağlamıştır.

Bu akıllı telefonlar ve tabletler çeşitli işletim sistemleriyle çalışmaktadır ve son zamanlarda piyasadaki baskın bilgi işlem cihazı haline gelmiştir. Bunlar, bozuk para büyüklüğünde bir mikroçip üzerinde eksiksiz bilgisayarlar olan Çip Üzerinde Sistemler (SoC'ler) tarafından desteklenmektedir.

Eski tip klasikler ve Mikro-bilgisayarlar

Mikroelektronik, farklı sistemlerin işleyiş yapısına öykünebilecek sistemlerin hızla ve hesaplı bir biçimde gerçekleştirilmesine olanak vermektedir. Söz konusu sistemlerin yapılarının farklı olmasına karşılık, mikro-programlama, diğer sistemlerdeki fonksiyonların her birinin benzetim yolu ile tıpkı aynı yapılmasını gerçekleştirir. (Bu işleme öykünüm denir.) İlk aşamada ise, ortam arabirimleri gerçekleştirilmiş, böylece uyarlanabilir çevre birimleri ortaya çıkmıştır. İkinci aşamada ise, "uyarlanabilir öykünüm merkez birimleri" yapılmıştır.

Mini-bilgisayarlar (mikro-bilgisayarlardan farklı olarak) 1970'li yılların ilk zamanlarında piyasaya sürülmüştür. Ayrıca mini-bilgisayarların programları, klasik bilgisayarlar ile uyumlu olarak yazıldığı için, karmaşıktır da denebilir. Mikro-bilgisayarlar ise 1970'ler döneminin sonlarında çıkışlarını göstermişlerdir.

Örneğin, Basic dili ile çalışmakta olan mikro-bilgisayarlar, birtakım oyunlar ile oynamayı mümkün kıldığı gibi, bilişim alanına başlangıç adımlarını atmaya yardımcı da olabilirler. Bu tipler, denetimi bulunmayan dinamik merkez hafıza'yı kullanmakta olduğundan, yönetim ile ilgili giriş-çıkışlara uygun olmamaktadırlar.

Her meslek dalına göre olan mikro-bilgisayarlar, genişçe bir BASIC dili (daha çok da yönetim alanında) ile çalışmaktadır. İş dışı bir mikro-bilgisayar, 25-100 arası konut ve işleme sayısına ihtiyaç duyarken, iş amaçlı sistemlerde ise 200'ü bulabilir.

Bilgisayarın uygulama çevreleri

Bilgisayarların uygulama çevreleri oldukça geniştir ve ilerleyişi bilişime sıkıca bağlıdır. Ayrıca, örneğin bilimsel ve teknik problemlerin çözümü, stok işlemleri, muhasebe vs. Telekomünikasyon araçları ile bilişim sistemleri arasında bağ kuran tekniklerin varlığı ile, bilgisayarların uygulama alanları çok genişlemiştir ve uyduların kullanımı ile birbirinden uzaktaki bilgisayarlar arasında yoğunluklu bilgi transferini çok kolaylaştırmıştır.

Türleri

Bilgisayarlar, aşağıdakiler de dahil olmak üzere bir dizi farklı şekilde sınıflandırılabilir:

Mimariye göre

  • Analog bilgisayar
  • Dijital bilgisayar
  • Hibrit bilgisayar
  • Harvard mimarlık
  • Von Neumann mimarisi
  • Karmaşık komut setli bilgisayar
  • Azaltılmış komut setli bilgisayar

Boyut, biçim faktörü ve amaca göre

  • Süper Bilgisayar
  • Ana bilgisayar
  • Minibilgisayar (artık kullanılmayan terim)
  • Sunucu
    • Rafa monte sunucu
    • Blade sunucu
    • Kule sunucusu
  • Kişisel bilgisayar
    • İş İstasyonu
    • Mikrobilgisayar (artık kullanılmayan terim)
      • Ev bilgisayarı
    • Masaüstü bilgisayar
      • Kule masaüstü
      • İnce masaüstü
        • Multimedya bilgisayarı (doğrusal olmayan düzenleme sistemi bilgisayarları, video düzenleme bilgisayarları ve benzerleri)
        • Oyun bilgisayarı
      • Hepsi bir arada bilgisayar
      • Nettop (Küçük form faktörlü PC'ler, Mini PC'ler)
      • Ev sineması bilgisayarı
      • Klavye bilgisayar
      • Taşınabilir bilgisayar
      • İnce istemci
      • İnternet cihazı
    • Dizüstü Bilgisayar
      • Masaüstü yedek bilgisayar
      • Oyun dizüstü bilgisayarı
      • Sağlam dizüstü bilgisayar
      • 2'si 1 arada bilgisayar
      • Ultrabook
      • Chromebook
      • Alt Defter
      • Netbook
  • Mobil bilgisayarlar:
    • Tablet bilgisayar
    • Akıllı Telefon
    • Ultra mobil bilgisayar
    • Cep Bilgisayarı
    • Avuç İçi Bilgisayar
    • El Bilgisayarı
  • Giyilebilir bilgisayar
    • Akıllı Saat
    • Akıllı Gözlükler
  • Tek kartlı bilgisayar
  • Bilgisayar takın
  • Çubuk PC
  • Programlanabilir mantık denetleyicisi
  • Modül üzerinde bilgisayar
  • Modül üzerindeki sistem
  • Paket içinde sistem
  • Çip üzerinde sistem (Radyo devresi gibi devrelerden yoksunsa Uygulama İşlemcisi veya AP olarak da bilinir)
  • Mikrodenetleyici

Donanım

"İnce" bir bilgisayarın standart bileşenlerini gösteren video

Donanım terimi, bir bilgisayarın somut fiziksel nesneler olan tüm parçalarını kapsar. Devreler, bilgisayar çipleri, grafik kartları, ses kartları, bellek (RAM), anakart, ekranlar, güç kaynakları, kablolar, klavyeler, yazıcılar ve "fare" giriş aygıtlarının tümü donanımdır.

Bilgisayar donanımının tarihçesi

Birinci nesil
(mekanik/elektromekanik)
Hesap Makineleri Pascal'ın hesap makinesi, Aritmometre, Fark motoru, Quevedo'nun analitik makineleri
Programlanabilir cihazlar Jakarlı dokuma tezgahı, Analitik motor, IBM ASCC/Harvard Mark I, Harvard Mark II, IBM SSEC, Z1, Z2, Z3
İkinci nesil
(vakum tüpleri)
Hesap Makineleri Atanasoff-Berry Bilgisayar, IBM 604, UNIVAC 60, UNIVAC 120
Programlanabilir cihazlar Colossus, ENIAC, Manchester Baby, EDSAC, Manchester Mark 1, Ferranti Pegasus, Ferranti Mercury, CSIRAC, EDVAC, UNIVAC I, IBM 701, IBM 702, IBM 650, Z22
Üçüncü nesil
(ayrık transistörler ve SSI, MSI, LSI entegre devreler)
Ana Bilgisayarlar IBM 7090, IBM 7080, IBM System/360, BUNCH
Minibilgisayar HP 2116A, IBM System/32, IBM System/36, LINC, PDP-8, PDP-11
Masaüstü Bilgisayar HP 9100
Dördüncü nesil
(VLSI entegre devreler)
Minibilgisayar VAX, IBM AS/400
4-bit mikrobilgisayar Intel 4004, Intel 4040
8-bit mikrobilgisayar Intel 8008, Intel 8080, Motorola 6800, Motorola 6809, MOS Technology 6502, Zilog Z80
16 bit mikrobilgisayar Intel 8088, Zilog Z8000, WDC 65816/65802
32 bit mikrobilgisayar Intel 80386, Pentium, Motorola 68000, ARM
64 bit mikrobilgisayar Alpha, MIPS, PA-RISC, PowerPC, SPARC, x86-64, ARMv8-A
Gömülü bilgisayar Intel 8048, Intel 8051
Kişisel bilgisayar Masaüstü bilgisayar, Ev bilgisayarı, Dizüstü bilgisayar, Kişisel dijital asistan (PDA), Taşınabilir bilgisayar, Tablet PC, Giyilebilir bilgisayar
Teorik/deneysel Kuantum bilgisayar
Kimyasal bilgisayar
DNA hesaplama
Optik bilgisayar
Spintronik tabanlı bilgisayar
Wetware/Organik bilgisayar

Diğer donanım konuları

Çevresel aygıt (giriş/çıkış) Giriş Fare, klavye, joystick, görüntü tarayıcı, web kamerası, grafik tablet, mikrofon
Çıktı Monitör, yazıcı, hoparlör
Her ikisi de Disket sürücüsü, sabit disk sürücüsü, optik disk sürücüsü, teleprinter
Bilgisayar otobüsleri Kısa menzil RS-232, SCSI, PCI, USB
Uzun menzil (bilgisayar ağı) Ethernet, ATM, FDDI

Genel amaçlı bir bilgisayarın dört ana bileşeni vardır: aritmetik mantık birimi (ALU), kontrol birimi, bellek ve giriş ve çıkış aygıtları (topluca I/O olarak adlandırılır). Bu parçalar, genellikle kablo gruplarından oluşan veri yolları ile birbirine bağlanır. Bu parçaların her birinin içinde, elektronik bir anahtar vasıtasıyla kapatılıp açılabilen binlerce ila trilyonlarca küçük elektrik devresi bulunur. Her devre bir bit (ikili basamak) bilgiyi temsil eder, böylece devre açıkken "1", kapalıyken "0" (pozitif mantık gösteriminde) değerini temsil eder. Devreler mantık kapıları şeklinde düzenlenmiştir, böylece devrelerden biri veya daha fazlası diğer devrelerden biri veya daha fazlasının durumunu kontrol edebilir.

Giriş cihazları

İşlenmemiş veriler giriş aygıtları yardımıyla bilgisayara gönderildiğinde, veriler işlenir ve çıkış aygıtlarına gönderilir. Giriş aygıtları elle çalıştırılabilir veya otomatik olabilir. İşleme eylemi esas olarak CPU tarafından düzenlenir. Giriş aygıtlarına bazı örnekler şunlardır:

  • Bilgisayar klavyesi
  • Dijital kamera
  • Dijital video
  • Grafik tablet
  • Görüntü tarayıcı
  • Joystick
  • Mikrofon
  • Fare
  • Yer paylaşımlı klavye
  • Gerçek zamanlı saat
  • Trackball
  • Dokunmatik ekran
  • Hafif kalem

Çıkış cihazları

Bilgisayarın çıktı verdiği araçlar çıktı aygıtları olarak bilinir. Bazı çıktı aygıtı örnekleri şunlardır:

  • Bilgisayar monitörü
  • Yazıcı
  • PC hoparlörü
  • Projektör
  • Ses kartı
  • Ekran kartı

Kontrol ünitesi

Belirli bir MIPS mimarisi komutunun kontrol sistemi tarafından nasıl çözüleceğini gösteren diyagram

Kontrol birimi (genellikle kontrol sistemi veya merkezi kontrolör olarak adlandırılır) bilgisayarın çeşitli bileşenlerini yönetir; program talimatlarını okur ve yorumlar (kod çözer), bunları bilgisayarın diğer bölümlerini etkinleştiren kontrol sinyallerine dönüştürür. Gelişmiş bilgisayarlardaki kontrol sistemleri, performansı artırmak için bazı talimatların yürütülme sırasını değiştirebilir.

Tüm CPU'larda ortak olan önemli bir bileşen, bir sonraki talimatın bellekte hangi konumdan okunacağını takip eden özel bir bellek hücresi (bir kayıt) olan program sayacıdır.

Kontrol sisteminin işlevi aşağıdaki gibidir - bu basitleştirilmiş bir açıklamadır ve bu adımlardan bazıları CPU türüne bağlı olarak eşzamanlı veya farklı bir sırada gerçekleştirilebilir:

  1. Program sayacı tarafından gösterilen hücreden bir sonraki komutun kodunu okuyun.
  2. Komutun sayısal kodunu diğer sistemlerin her biri için bir dizi komuta veya sinyale dönüştürün.
  3. Program sayacını bir sonraki komutu gösterecek şekilde artırın.
  4. Komutun gerektirdiği verileri bellekteki hücrelerden (ya da belki bir giriş cihazından) okur. Bu gerekli verilerin konumu tipik olarak komut kodu içinde saklanır.
  5. Gerekli verileri bir ALU'ya veya yazmaca sağlayın.
  6. Komutun tamamlanması için bir ALU veya özel donanım gerekiyorsa, donanıma istenen işlemi gerçekleştirmesi talimatını verin.
  7. ALU'dan gelen sonucu bir bellek konumuna veya bir yazmaca ya da belki bir çıkış aygıtına geri yazın.
  8. Adım (1)'e geri dönün.

Program sayacı (kavramsal olarak) sadece başka bir bellek hücresi kümesi olduğundan, ALU'da yapılan hesaplamalarla değiştirilebilir. Program sayacına 100 eklenmesi, bir sonraki komutun programın 100 konum ilerisindeki bir yerden okunmasına neden olur. Program sayacını değiştiren talimatlar genellikle "atlama" olarak bilinir ve döngülere (bilgisayar tarafından tekrarlanan talimatlar) ve genellikle koşullu talimat yürütülmesine (her ikisi de kontrol akışının örnekleri) izin verir.

Kontrol ünitesinin bir talimatı işlemek için geçtiği işlemler dizisi kendi içinde kısa bir bilgisayar programı gibidir ve aslında, bazı daha karmaşık CPU tasarımlarında, tüm bu olayların gerçekleşmesine neden olan bir mikro kod programını çalıştıran mikro sıralayıcı adı verilen daha küçük bir bilgisayar daha vardır.

Merkezi işlem birimi (CPU)

Kontrol birimi, ALU ve kayıtlar toplu olarak merkezi işlem birimi (CPU) olarak bilinir. İlk CPU'lar birçok ayrı bileşenden oluşmaktaydı. 1970'lerden bu yana, CPU'lar tipik olarak mikroişlemci adı verilen tek bir MOS entegre devre yongası üzerine inşa edilmiştir.

Aritmetik mantık birimi (ALU)

ALU iki sınıf işlem gerçekleştirebilir: aritmetik ve mantık. Belirli bir ALU'nun desteklediği aritmetik işlemler toplama ve çıkarma ile sınırlı olabilir veya çarpma, bölme, sinüs, kosinüs vb. gibi trigonometri işlevlerini ve karekökleri içerebilir. Bazıları yalnızca tam sayılar (tamsayılar) üzerinde çalışabilirken, diğerleri sınırlı hassasiyetle de olsa gerçek sayıları temsil etmek için kayan nokta kullanır. Ancak, sadece en basit işlemleri yapabilen herhangi bir bilgisayar, daha karmaşık işlemleri gerçekleştirebileceği basit adımlara ayırmak için programlanabilir. Bu nedenle, herhangi bir bilgisayar herhangi bir aritmetik işlemi gerçekleştirecek şekilde programlanabilir - ancak ALU'su işlemi doğrudan desteklemiyorsa bunu yapmak daha fazla zaman alacaktır. Bir ALU ayrıca sayıları karşılaştırabilir ve birinin diğerine eşit, büyük veya küçük olmasına bağlı olarak Boolean doğruluk değerleri (doğru veya yanlış) döndürebilir ("64, 65'ten büyük mü?"). Mantık işlemleri Boole mantığını içerir: AND, OR, XOR ve NOT. Bunlar karmaşık koşullu ifadeler oluşturmak ve Boole mantığını işlemek için yararlı olabilir.

Superscalar bilgisayarlar birden fazla ALU içerebilir, bu da aynı anda birkaç talimatı işlemelerine olanak tanır. SIMD ve MIMD özelliklerine sahip grafik işlemciler ve bilgisayarlar genellikle vektörler ve matrisler üzerinde aritmetik işlem yapabilen ALU'lar içerir.

Bellek

Manyetik çekirdekli bellek (manyetik çekirdekler kullanan), 1960'larda yerini yarı iletken belleğe (MOS bellek hücreleri kullanan) bırakana kadar tercih edilen bilgisayar belleğiydi.

Bir bilgisayarın belleği, içine sayıların yerleştirilebildiği veya okunabildiği hücrelerin bir listesi olarak görülebilir. Her hücrenin numaralandırılmış bir "adresi" vardır ve tek bir sayı saklayabilir. Bilgisayara "123 sayısını 1357 numaralı hücreye koy" veya "1357 hücresindeki sayıyı 2468 hücresindeki sayıya ekle ve cevabı 1595 hücresine koy" talimatı verilebilir. Bellekte saklanan bilgi hemen hemen her şeyi temsil edebilir. Harfler, sayılar, hatta bilgisayar talimatları bile aynı kolaylıkla belleğe yerleştirilebilir. CPU farklı bilgi türleri arasında ayrım yapmadığından, belleğin bir dizi sayıdan başka bir şey olarak görmediği şeylere anlam kazandırmak yazılımın sorumluluğundadır.

Hemen hemen tüm modern bilgisayarlarda, her bir bellek hücresi ikili sayıları sekiz bitlik gruplar halinde (bayt olarak adlandırılır) saklayacak şekilde ayarlanmıştır. Her bayt 256 farklı sayıyı (28 = 256) temsil edebilir; 0'dan 255'e ya da -128'den +127'ye kadar. Daha büyük sayıları saklamak için birkaç ardışık bayt kullanılabilir (tipik olarak iki, dört veya sekiz). Negatif sayılar gerektiğinde, bunlar genellikle ikiye tümleyen gösteriminde saklanır. Diğer düzenlemeler de mümkündür, ancak genellikle özel uygulamalar veya tarihsel bağlamlar dışında görülmezler. Bir bilgisayar, sayısal olarak temsil edilebildiği takdirde her türlü bilgiyi hafızasında saklayabilir. Modern bilgisayarlar milyarlarca hatta trilyonlarca bayt belleğe sahiptir.

CPU, ana bellek alanından çok daha hızlı bir şekilde okunabilen ve yazılabilen register adı verilen özel bir bellek hücresi seti içerir. CPU'nun türüne bağlı olarak tipik olarak iki ile yüz arasında register vardır. Kayıtlar, her veri gerektiğinde ana belleğe erişmek zorunda kalmamak için en sık ihtiyaç duyulan veri öğeleri için kullanılır. Veriler üzerinde sürekli çalışıldığından, ana belleğe (ALU ve kontrol birimlerine kıyasla genellikle yavaş olan) erişim ihtiyacını azaltmak bilgisayarın hızını büyük ölçüde artırır.

Bilgisayar ana belleğinin iki temel çeşidi vardır:

  • rastgele erişimli bellek ya da RAM
  • salt okunur bellek veya ROM

RAM, CPU'nun komut verdiği her an okunabilir ve yazılabilir, ancak ROM asla değişmeyen veriler ve yazılımla önceden yüklenmiştir, bu nedenle CPU yalnızca ondan okuyabilir. ROM genellikle bilgisayarın ilk başlatma talimatlarını saklamak için kullanılır. Genel olarak, bilgisayarın gücü kapatıldığında RAM'in içeriği silinir, ancak ROM verilerini süresiz olarak korur. Bir bilgisayarda ROM, bilgisayar her açıldığında veya sıfırlandığında bilgisayarın işletim sisteminin sabit disk sürücüsünden RAM'e yüklenmesini düzenleyen BIOS adı verilen özel bir program içerir. Genellikle disk sürücüleri olmayan gömülü bilgisayarlarda, gerekli tüm yazılımlar ROM'da saklanabilir. ROM'da saklanan yazılıma genellikle bellenim adı verilir, çünkü kavramsal olarak yazılımdan çok donanıma benzer. Flash bellek, kapatıldığında verilerini koruduğu ve aynı zamanda yeniden yazılabilir olduğu için ROM ve RAM arasındaki ayrımı bulanıklaştırır. Ancak tipik olarak geleneksel ROM ve RAM'den çok daha yavaştır, bu nedenle kullanımı yüksek hızın gereksiz olduğu uygulamalarla sınırlıdır.

Daha sofistike bilgisayarlarda, yazmaçlardan daha yavaş ancak ana bellekten daha hızlı olan bir veya daha fazla RAM ön belleği olabilir. Genellikle bu tür bir önbelleğe sahip bilgisayarlar, sıkça ihtiyaç duyulan verileri otomatik olarak, genellikle programcının herhangi bir müdahalesine gerek kalmadan önbelleğe taşımak üzere tasarlanmıştır.

Mikroişlemci von Neumann mimarisinin temel öğelerindendir.
Kişisel bilgisayar: (1) Monitör, (2) Ana kart (3) İşlemci (CPU) (4) Bellek (RAM) (5) Genişletme Kartları (PCI-X, AGP, v. b.) (6) Güç Kaynağı (7) Optik Disk Sürücü (DVD, CD, v. b.) (8) Sabit Disk (9) Klavye (10) Fare

Son bir bellek alt türü ise önbellektir (cache memory). İşlemci içerisinde yer alır ve yazmaçlardan büyük sığaya sahip olmanın yanı sıra ana bellekten de hızlıdır.

Sabit diskler bilgisayarların en çok tanınan Giriş/Çıkış birimlerindendirler.

Giriş/Çıkış bir bilgisayarın dış dünyadan veri alışverişinde bulunmak için kullandığı araçtır. Yaygın olarak kullanılan giriş birimleri arasında klavye ve fare, çıkış için ise monitör, hoparlör ve yazıcı sayılabilir. Sabit ve optik diskler ise her iki görevi de üstlenirler.

Giriş/çıkış (I/O)

Sabit disk sürücüleri, bilgisayarlarla birlikte kullanılan yaygın depolama aygıtlarıdır.

G/Ç, bir bilgisayarın dış dünya ile bilgi alışverişinde bulunduğu araçlardır. Bilgisayara girdi veya çıktı sağlayan aygıtlara çevre birimleri denir. Tipik bir kişisel bilgisayarda, çevre birimleri klavye ve fare gibi giriş aygıtlarını ve ekran ve yazıcı gibi çıkış aygıtlarını içerir. Sabit disk sürücüleri, disket sürücüleri ve optik disk sürücüleri hem giriş hem de çıkış aygıtı olarak hizmet verir. Bilgisayar ağı, I/O'nun başka bir şeklidir. G/Ç aygıtları genellikle kendi CPU'ları ve bellekleriyle kendi başlarına karmaşık bilgisayarlardır. Bir grafik işlem birimi, 3D grafikleri görüntülemek için gerekli hesaplamaları yapan elli veya daha fazla küçük bilgisayar içerebilir. Modern masaüstü bilgisayarlar, ana CPU'ya I/O gerçekleştirmede yardımcı olan birçok küçük bilgisayar içerir. 2016 tarihli bir düz ekran kendi bilgisayar devresini içerir.

Çoklu görev

Bir bilgisayar, ana belleğinde depolanan devasa bir programı çalıĢtırıyor gibi görünse de, bazı sistemlerde aynı anda birden fazla program çalıĢtırıyor görüntüsü vermek gerekir. Bu, çoklu görevle, yani bilgisayarın sırayla her bir programı çalıştırmak arasında hızla geçiş yapmasını sağlayarak elde edilir. Bunu yapmanın bir yolu, bilgisayarın periyodik olarak bulunduğu yerde talimatları yürütmeyi durdurmasına ve bunun yerine başka bir şey yapmasına neden olabilen kesme adı verilen özel bir sinyaldir. Bilgisayar, kesmeden önce nerede çalıştığını hatırlayarak daha sonra bu göreve geri dönebilir. Eğer birkaç program "aynı anda" çalışıyorsa, kesme üreteci saniyede birkaç yüz kesmeye neden olabilir ve her seferinde bir program değişikliğine neden olur. Modern bilgisayarlar tipik olarak talimatları insan algısından birkaç kat daha hızlı yürüttüğünden, herhangi bir anda yalnızca bir tanesi yürütülüyor olsa bile aynı anda birçok program çalışıyormuş gibi görünebilir. Bu çoklu görev yöntemi bazen "zaman paylaşımı" olarak adlandırılır çünkü her programa sırayla bir zaman "dilimi" tahsis edilir.

Ucuz bilgisayarlar çağından önce, çoklu görevin başlıca kullanım alanı birçok kişinin aynı bilgisayarı paylaşmasına izin vermekti. Görünüşe göre çoklu görev, birden fazla program arasında geçiş yapan bir bilgisayarın, çalıştırdığı program sayısıyla doğru orantılı olarak daha yavaş çalışmasına neden olacaktır, ancak çoğu program zamanlarının çoğunu yavaş giriş/çıkış aygıtlarının görevlerini tamamlamasını bekleyerek geçirir. Eğer bir program kullanıcının fareye tıklamasını ya da klavyedeki bir tuşa basmasını bekliyorsa, beklediği olay gerçekleşene kadar bir "zaman dilimi" almayacaktır. Bu, diğer programların çalışması için zaman kazandırır, böylece birçok program kabul edilemez hız kaybı olmadan aynı anda çalıştırılabilir.

Çoklu işlem

Cray, çoklu işlemeyi yoğun olarak kullanan birçok süper bilgisayar tasarlamıştır.

Bazı bilgisayarlar, bir zamanlar yalnızca süper bilgisayarlar, ana bilgisayarlar ve sunucular gibi büyük ve güçlü makinelerde kullanılan bir teknik olan çoklu işlem yapılandırmasında işlerini birkaç CPU'ya dağıtmak üzere tasarlanmıştır. Çok işlemcili ve çok çekirdekli (tek bir entegre devre üzerinde birden fazla CPU) kişisel ve dizüstü bilgisayarlar artık yaygın olarak bulunmakta ve sonuç olarak alt uç pazarlarda giderek daha fazla kullanılmaktadır.

Özellikle süper bilgisayarlar genellikle temel depolanmış program mimarisinden ve genel amaçlı bilgisayarlardan önemli ölçüde farklılık gösteren son derece benzersiz mimarilere sahiptir. Genellikle binlerce CPU'ya, özelleştirilmiş yüksek hızlı ara bağlantılara ve özel bilgi işlem donanımına sahiptirler. Bu tür tasarımlar, mevcut kaynakların çoğunu aynı anda başarılı bir şekilde kullanmak için gereken büyük ölçekli program organizasyonu nedeniyle yalnızca özel görevler için yararlı olma eğilimindedir. Süper bilgisayarlar genellikle büyük ölçekli simülasyon, grafik işleme ve kriptografi uygulamalarının yanı sıra "utanç verici derecede paralel" olarak adlandırılan diğer görevlerde de kullanılır.

Yazılım

Yazılım, bilgisayarın programlar, veriler, protokoller vb. gibi maddi bir biçime sahip olmayan parçalarını ifade eder. Yazılım, bir bilgisayar sisteminin, sistemin oluşturulduğu fiziksel donanımın aksine, kodlanmış bilgi veya bilgisayar talimatlarından oluşan kısmıdır. Bilgisayar yazılımı, bilgisayar programlarını, kütüphaneleri ve çevrimiçi dokümantasyon veya dijital medya gibi ilgili çalıştırılamayan verileri içerir. Genellikle sistem yazılımı ve uygulama yazılımı olarak ikiye ayrılır Bilgisayar donanımı ve yazılımı birbirini gerektirir ve hiçbiri tek başına gerçekçi bir şekilde kullanılamaz. Yazılım, IBM PC uyumlu bir bilgisayardaki BIOS ROM gibi kolayca değiştirilemeyen bir donanımda saklandığında, bazen "bellenim" olarak adlandırılır.

İşletim sistemi /Sistem Yazılımı Unix ve BSD UNIX System V, IBM AIX, HP-UX, Solaris (SunOS), IRIX, BSD işletim sistemleri listesi
Linux Linux dağıtımları listesi, Linux dağıtımlarının karşılaştırılması
Microsoft Windows Windows 95, Windows 98, Windows NT, Windows 2000, Windows ME, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10, Windows 11
DOS 86-DOS (QDOS), IBM PC DOS, MS-DOS, DR-DOS, FreeDOS
Macintosh işletim sistemleri Klasik Mac OS, macOS (daha önce OS X ve Mac OS X)
Gömülü ve gerçek zamanlı Gömülü işletim sistemleri listesi
Deneysel Amoeba, Oberon-AOS, Bluebottle, A2, Bell Labs'dan Plan 9
Kütüphane Multimedya DirectX, OpenGL, OpenAL, Vulkan (API)
Programlama kütüphanesi C standart kütüphanesi, Standart Şablon Kütüphanesi
Veri Protokol TCP/IP, Kermit, FTP, HTTP, SMTP
Dosya biçimi HTML, XML, JPEG, MPEG, PNG
Kullanıcı arayüzü Grafik kullanıcı arayüzü (WIMP) Microsoft Windows, GNOME, KDE, QNX Photon, CDE, GEM, Aqua
Metin tabanlı kullanıcı arayüzü Komut satırı arayüzü, Metin kullanıcı arayüzü
Uygulama Yazılımları Ofis paketi Kelime işlem, Masaüstü yayıncılık, Sunum programı, Veritabanı yönetim sistemi, Çizelgeleme ve Zaman yönetimi, Elektronik tablo, Muhasebe yazılımı
İnternet Erişimi Tarayıcı, E-posta istemcisi, Web sunucusu, Posta aktarım aracısı, Anlık mesajlaşma
Tasarım ve üretim Bilgisayar destekli tasarım, Bilgisayar destekli üretim, Tesis yönetimi, Robotik üretim, Tedarik zinciri yönetimi
Grafikler Raster grafik editörü, Vektör grafik editörü, 3D modelleyici, Animasyon editörü, 3D bilgisayar grafikleri, Video düzenleme, Görüntü işleme
Ses Dijital ses düzenleyici, Ses çalma, Miksleme, Ses sentezi, Bilgisayar müziği
Yazılım Mühendisliği Derleyici, Assembler, Yorumlayıcı, Hata ayıklayıcı, Metin editörü, Entegre geliştirme ortamı, Yazılım performans analizi, Revizyon kontrolü, Yazılım yapılandırma yönetimi
Eğitim Edutainment, Eğitici oyun, Ciddi oyun, Uçuş simülatörü
Oyunlar Strateji, Arcade, Bulmaca, Simülasyon, Birinci şahıs nişancı, Platform, Devasa çok oyunculu, Etkileşimli kurgu
Çeşitli Yapay zeka, Antivirüs yazılımı, Kötü amaçlı yazılım tarayıcı, Yükleyici/Paket yönetim sistemleri, Dosya yöneticisi

Yazılım kavramı bilgisayardaki özdek (maddi) olmayan tüm bileşenleri tanımlar: yazılımlar, iletişim kuralları ve veriler hepsi yazılımdır.

Diller

Binlerce farklı programlama dili vardır - bazıları genel amaçlıdır, diğerleri ise yalnızca son derece özel uygulamalar için kullanışlıdır.

Programlama dilleri
Programlama dilleri listeleri Programlama dillerinin zaman çizelgesi, Kategorilere göre programlama dilleri listesi, Programlama dillerinin kuşak listesi, Programlama dilleri listesi, İngilizce tabanlı olmayan programlama dilleri
Yaygın olarak kullanılan assembly dilleri ARM, MIPS, x86
Yaygın olarak kullanılan yüksek seviyeli programlama dilleri Ada, BASIC, C, C++, C#, COBOL, Fortran, PL/I, REXX, Java, Lisp, Pascal, Object Pascal
Yaygın olarak kullanılan komut dosyası dilleri Bourne betiği, JavaScript, Python, Ruby, PHP, Perl

Programlar

Modern bilgisayarları diğer tüm makinelerden ayıran en önemli özellik programlanabilmeleridir. Yani bilgisayara bir tür talimat (program) verilebilir ve o da bunları işler. Von Neumann mimarisine dayalı modern bilgisayarlar genellikle zorunlu bir programlama dili biçiminde makine koduna sahiptir. Pratik anlamda, bir bilgisayar programı sadece birkaç talimattan oluşabileceği gibi, örneğin kelime işlemci ve web tarayıcı programlarında olduğu gibi milyonlarca talimata da yayılabilir. Tipik bir modern bilgisayar saniyede milyarlarca talimat yürütebilir (gigaflops) ve uzun yıllar boyunca nadiren hata yapar. Birkaç milyon talimattan oluşan büyük bilgisayar programlarının yazılması programcılardan oluşan ekiplerin yıllarını alabilir ve görevin karmaşıklığı nedeniyle neredeyse kesinlikle hata içerir.

Saklanan program mimarisi

Dünyanın ilk elektronik saklı program bilgisayarı olan Manchester Baby'nin Manchester, İngiltere'deki Bilim ve Sanayi Müzesi'nde bulunan replikası

Bu bölüm en yaygın RAM makinesi tabanlı bilgisayarlar için geçerlidir.

Çoğu durumda, bilgisayar talimatları basittir: bir sayıyı diğerine eklemek, bazı verileri bir konumdan diğerine taşımak, harici bir cihaza mesaj göndermek, vb. Bu talimatlar bilgisayarın belleğinden okunur ve genellikle verildikleri sırayla gerçekleştirilir (yürütülür). Ancak, genellikle bilgisayara programda ileriye veya geriye doğru başka bir yere atlamasını ve oradan yürütmeye devam etmesini söyleyen özel talimatlar vardır. Bunlara "atlama" talimatları (ya da dallanma) denir. Ayrıca, atlama talimatları koşullu olarak gerçekleştirilebilir, böylece önceki bazı hesaplamaların sonucuna veya bazı harici olaylara bağlı olarak farklı talimat dizileri kullanılabilir. Birçok bilgisayar, atladığı konumu "hatırlayan" bir atlama türü ve bu atlama talimatını takip eden talimata geri dönmek için başka bir talimat sağlayarak alt rutinleri doğrudan destekler.

Programın yürütülmesi bir kitap okumaya benzetilebilir. Bir insan normalde her kelimeyi ve satırı sırayla okurken, zaman zaman metinde daha önceki bir yere geri dönebilir veya ilgisini çekmeyen bölümleri atlayabilir. Benzer şekilde, bir bilgisayar da bazen geriye dönebilir ve programın bir bölümündeki talimatları bazı dahili koşullar sağlanana kadar tekrar tekrar okuyabilir. Buna program içindeki kontrol akışı denir ve bilgisayarın insan müdahalesi olmadan görevleri tekrar tekrar yerine getirmesini sağlayan şeydir.

Karşılaştırmak gerekirse, cep hesap makinesi kullanan bir kişi iki sayıyı toplamak gibi temel bir aritmetik işlemi sadece birkaç tuşa basarak gerçekleştirebilir. Ancak 1'den 1.000'e kadar olan tüm sayıları toplamak için binlerce düğmeye basmak ve çok fazla zaman harcamak gerekir ve hata yapma olasılığı neredeyse kesindir. Öte yandan, bir bilgisayar bunu sadece birkaç basit talimatla yapacak şekilde programlanabilir. Aşağıdaki örnek MIPS assembly dilinde yazılmıştır:

  begin:
  addi $8, $0, 0 # toplamı 0 olarak başlat
  addi $9, $0, 1 # eklenecek ilk sayıyı ayarla = 1
  döngü:
  slti $10, $9, 1000 # sayının 1000'den küçük olup olmadığını kontrol et
  beq $10, $0, finish # tek sayı n'den büyükse çık
  add $8, $8, $9 # toplamı güncelle
  addi $9, $9, 1 # sonraki sayıyı al
  j döngüsü # toplama işlemini tekrarlayın
  Bitir:
  add $2, $8, $0 # put sum in output register <span title="Kaynak: İngilizce Vikipedi, Bölüm &quot;Stored program architecture&quot;" class="plainlinks">[https://en.wikipedia.org/wiki/Computer#Stored_program_architecture <span style="color:#dddddd">ⓘ</span>]</span>

Bu programı çalıştırması söylendiğinde, bilgisayar başka bir insan müdahalesi olmadan tekrarlayan toplama görevini yerine getirecektir. Neredeyse hiçbir zaman hata yapmayacaktır ve modern bir bilgisayar bu görevi saniyenin çok altında bir sürede tamamlayabilir.

Makine kodu

Çoğu bilgisayarda, her bir komut makine kodu olarak saklanır ve her bir komuta benzersiz bir numara (işlem kodu veya kısaca opcode) verilir. İki sayıyı toplama komutu bir işlem koduna sahip olur; bunları çarpma komutu farklı bir işlem koduna sahip olur ve bu böyle devam eder. En basit bilgisayarlar bir avuç farklı komuttan herhangi birini yerine getirebilir; daha karmaşık bilgisayarlar, her biri benzersiz bir sayısal koda sahip yüzlerce komut arasından seçim yapabilir. Bilgisayarın belleği sayıları saklayabildiğinden, komut kodlarını da saklayabilir. Bu durum, tüm programların (ki bunlar sadece bu talimatların listeleridir) sayı listeleri olarak temsil edilebileceği ve bilgisayar içinde sayısal verilerle aynı şekilde manipüle edilebileceği gibi önemli bir gerçeğe yol açar. Programların bilgisayarın belleğinde üzerinde çalıĢtıkları verilerle birlikte saklanmasına iliĢkin temel kavram von Neumann ya da saklı program mimarisinin özünü oluĢturmaktadır. Bazı durumlarda, bir bilgisayar programının bir kısmını veya tamamını üzerinde çalıştığı verilerden ayrı tutulan bellekte saklayabilir. Buna Harvard Mark I bilgisayarından sonra Harvard mimarisi adı verilmiştir. Modern von Neumann bilgisayarları, CPU önbellekleri gibi tasarımlarında Harvard mimarisinin bazı özelliklerini sergiler.

Bilgisayar programlarını uzun sayı listeleri (makine dili) olarak yazmak mümkün olsa da ve bu teknik birçok ilk bilgisayarda kullanılmış olsa da, özellikle karmaşık programlar için pratikte bunu yapmak son derece sıkıcı ve potansiyel olarak hataya açıktır. Bunun yerine, her temel komuta işlevini gösteren ve hatırlanması kolay kısa bir isim verilebilir - ADD, SUB, MULT veya JUMP gibi bir anımsatıcı. Bu anımsatıcılar topluca bilgisayarın assembly dili olarak bilinir. Assembly dilinde yazılmış programları bilgisayarın anlayabileceği bir dile (makine dili) dönüştürmek genellikle assembler adı verilen bir bilgisayar programı tarafından yapılır.

Bir Fortran programından bir satır içeren 1970'lerden kalma bir delikli kart. Kartta şöyle yazıyor: "Z(1) = Y + W(1)" ve tanımlama amacıyla "PROJ039" olarak etiketlenmiştir.

Programlama dili

Programlama dilleri, bilgisayarların çalıştırması için programları belirtmenin çeşitli yollarını sağlar. Doğal dillerin aksine, programlama dilleri hiçbir belirsizliğe izin vermeyecek ve kısa ve öz olacak şekilde tasarlanmıştır. Tamamen yazılı dillerdir ve genellikle yüksek sesle okunmaları zordur. Genellikle çalıştırılmadan önce bir derleyici ya da assembler tarafından makine koduna çevrilirler ya da bir yorumlayıcı tarafından doğrudan çalışma zamanında çevrilirler. Bazen programlar bu iki tekniğin karma bir yöntemiyle yürütülür.

Düşük seviyeli diller

Makine dilleri ve bunları temsil eden assembly dilleri (toplu olarak düşük seviyeli programlama dilleri olarak adlandırılır) genellikle bir bilgisayarın merkezi işlem biriminin (CPU) belirli mimarisine özgüdür. Örneğin, ARM mimarili bir CPU (bir akıllı telefonda veya elde taşınan bir video oyununda bulunabileceği gibi) bir PC'de bulunabilecek bir x86 CPU'nun makine dilini anlayamaz. Tarihsel olarak, Zilog Z80'e ek olarak özellikle MOS Technology 6502 ve 6510 dahil olmak üzere önemli sayıda başka CPU mimarisi oluşturulmuş ve kapsamlı kullanım görmüştür.

Yüksek seviyeli diller

Makine diline göre oldukça kolay olmasına rağmen, assembly dilinde uzun programlar yazmak genellikle zordur ve aynı zamanda hataya açıktır. Bu nedenle, çoğu pratik program, programcının ihtiyaçlarını daha rahat ifade edebilen (ve böylece programcı hatasını azaltmaya yardımcı olan) daha soyut yüksek seviyeli programlama dillerinde yazılır. Yüksek seviyeli diller genellikle derleyici adı verilen başka bir bilgisayar programı kullanılarak makine diline (veya bazen assembly diline ve ardından makine diline) "derlenir". Yüksek seviyeli diller, assembly diline göre hedef bilgisayarın işleyişiyle daha az ilgilidir ve nihai program tarafından çözülecek problem(ler)in dili ve yapısıyla daha çok ilgilidir. Bu nedenle, aynı yüksek seviyeli dil programını birçok farklı bilgisayar türünün makine diline çevirmek için farklı derleyiciler kullanmak genellikle mümkündür. Bu, video oyunları gibi yazılımların kişisel bilgisayarlar ve çeşitli video oyun konsolları gibi farklı bilgisayar mimarileri için kullanılabilir hale getirilmesinin bir parçasıdır.

Program tasarımı

Küçük programların program tasarımı nispeten basittir ve problemin analizini, girdilerin toplanmasını, dillerdeki programlama yapılarının kullanılmasını, yerleşik prosedürlerin ve algoritmaların tasarlanmasını veya kullanılmasını, çıktı cihazları için veri sağlanmasını ve uygun olduğu şekilde probleme çözüm bulunmasını içerir. Problemler büyüdükçe ve karmaşıklaştıkça, alt programlar, modüller, resmi dokümantasyon ve nesne odaklı programlama gibi yeni paradigmalar gibi özelliklerle karşılaşılır. Binlerce satır kod ve daha fazlasını içeren büyük programlar, resmi yazılım metodolojileri gerektirir. Büyük yazılım sistemleri geliştirme görevi önemli bir entelektüel zorluk teşkil etmektedir. Öngörülebilir bir program ve bütçe dahilinde kabul edilebilir derecede yüksek güvenilirliğe sahip bir yazılım üretmek tarihsel olarak zor olmuştur; yazılım mühendisliğinin akademik ve profesyonel disiplini özellikle bu zorluğa odaklanmaktadır.

Hatalar

Gerçek ilk bilgisayar böceği, Harvard Mark II bilgisayarının bir rölesine sıkışmış olarak bulunan bir güve

Bilgisayar programlarındaki hatalar "bug" olarak adlandırılır. Bunlar iyi huylu olabilir ve programın kullanışlılığını etkilemeyebilir ya da sadece hafif etkileri olabilir. Ancak bazı durumlarda, programın veya tüm sistemin "kilitlenmesine", fare tıklamaları veya tuş vuruşları gibi girdilere yanıt vermemesine, tamamen başarısız olmasına veya çökmesine neden olabilirler. Aksi takdirde iyi huylu hatalar, bazen bir hatadan yararlanmak ve bilgisayarın düzgün çalışmasını bozmak için tasarlanmış bir kod olan exploit yazan vicdansız bir kullanıcı tarafından kötü niyetle kullanılabilir. Hatalar genellikle bilgisayarın hatası değildir. Bilgisayarlar yalnızca kendilerine verilen talimatları yerine getirdiğinden, hatalar neredeyse her zaman programcı hatasının veya programın tasarımında yapılan bir dikkatsizliğin sonucudur. Amerikalı bilgisayar bilimcisi ve ilk derleyicinin geliştiricisi Amiral Grace Hopper, Eylül 1947'de Harvard Mark II bilgisayarındaki bir röleye kısa devre yaptıran ölü bir güve bulunduktan sonra bilgisayarda "hata" terimini ilk kullanan kişi olarak anılır.

Ağ İletişimi ve İnternet

İnternet üzerindeki rotaların bir kısmının görselleştirilmesi

Bilgisayarlar 1950'lerden beri birden fazla konum arasındaki bilgileri koordine etmek için kullanılmaktadır. ABD ordusunun SAGE sistemi bu tür bir sistemin ilk büyük ölçekli örneğiydi ve Sabre gibi bir dizi özel amaçlı ticari sisteme öncülük etti. 1970'lerde Amerika Birleşik Devletleri'ndeki araştırma kurumlarındaki bilgisayar mühendisleri telekomünikasyon teknolojisini kullanarak bilgisayarlarını birbirine bağlamaya başladı. Bu çaba ARPA (şimdiki adıyla DARPA) tarafından finanse edildi ve ortaya çıkan bilgisayar ağına ARPANET adı verildi. Arpanet'i mümkün kılan teknolojiler yayıldı ve gelişti.

Zamanla bu ağ akademik ve askeri kurumların ötesine geçerek İnternet olarak anılmaya başlandı. Ağın ortaya çıkışı bilgisayarın doğasının ve sınırlarının yeniden tanımlanmasını gerektirdi. Bilgisayar işletim sistemleri ve uygulamaları, ağ üzerindeki diğer bilgisayarların çevresel aygıtlar, depolanmış bilgiler ve benzerleri gibi kaynaklarını, tek bir bilgisayarın kaynaklarının uzantıları olarak tanımlama ve bunlara erişme becerisini içerecek şekilde değiştirildi. BaĢlangıçta bu olanaklar öncelikle yüksek teknoloji ortamlarında çalıĢan kiĢiler tarafından kullanılabilirken, 1990 "larda e-posta ve World Wide Web gibi uygulamaların yaygınlaĢması, Ethernet ve ADSL gibi ucuz ve hızlı ağ teknolojilerinin geliĢtirilmesiyle birleĢince bilgisayar ağları neredeyse her yerde bulunur hale gelmiĢtir. Aslında, ağa bağlı bilgisayarların sayısı olağanüstü bir şekilde artmaktadır. Kişisel bilgisayarların çok büyük bir kısmı iletişim kurmak ve bilgi almak için düzenli olarak internete bağlanmaktadır. Genellikle cep telefonu ağlarını kullanan "kablosuz" ağ oluşturma, ağ oluşturmanın mobil bilgisayar ortamlarında bile giderek yaygınlaştığı anlamına gelmektedir.

Geleneksel olmayan bilgisayarlar

Bir bilgisayarın elektronik olması gerekmez, hatta bir işlemciye, RAM'e ve hatta bir sabit diske sahip olması da gerekmez. "Bilgisayar" kelimesinin popüler kullanımı kişisel elektronik bilgisayar ile eşanlamlı olsa da, bilgisayarın modern tanımı tam anlamıyla şöyledir: "Hesaplama yapan bir cihaz, özellikle yüksek hızlı matematiksel veya mantıksal işlemler gerçekleştiren veya bilgileri bir araya getiren, depolayan, ilişkilendiren veya başka bir şekilde işleyen programlanabilir [genellikle] elektronik bir makine." Bilgiyi işleyen herhangi bir cihaz, özellikle de bu işlem amaca yönelikse, bilgisayar olarak nitelendirilebilir.

Gelecek

Optik bilgisayarlar, DNA bilgisayarları, nöral bilgisayarlar ve kuantum bilgisayarları gibi gelecek vaat eden birçok yeni teknoloji türünden bilgisayarlar yapmak için aktif araştırmalar yapılmaktadır. Çoğu bilgisayar evrenseldir ve hesaplanabilir herhangi bir işlevi hesaplayabilir ve yalnızca bellek kapasitesi ve çalışma hızı ile sınırlıdır. Bununla birlikte, farklı bilgisayar tasarımları belirli problemler için çok farklı performans sağlayabilir; örneğin kuantum bilgisayarlar bazı modern şifreleme algoritmalarını (kuantum çarpanlarına ayırma yoluyla) çok hızlı bir şekilde kırabilir.

Bilgisayar mimarisi paradigmaları

Birçok bilgisayar mimarisi türü vardır:

  • Kuantum bilgisayar vs. kimyasal bilgisayar
  • Skaler işlemci vs Vektör işlemci
  • Tekdüze Olmayan Bellek Erişimli (NUMA) bilgisayarlar
  • Kayıt makinesi vs. Yığın makinesi
  • Harvard mimarisine karşı von Neumann mimarisi
  • Hücresel mimari

Tüm bu soyut makineler arasında kuantum bilgisayar, bilgi işlemde devrim yaratma konusunda en fazla umut vaat edendir. Mantık kapıları, yukarıdaki dijital veya analog paradigmaların çoğuna uygulanabilen ortak bir soyutlamadır. Program adı verilen talimat listelerini saklama ve yürütme yeteneği, bilgisayarları son derece çok yönlü hale getirerek onları hesap makinelerinden ayırır. Church-Turing tezi bu çok yönlülüğün matematiksel bir ifadesidir: minimum yeteneğe sahip (Turing-complete olan) herhangi bir bilgisayar, prensip olarak, başka herhangi bir bilgisayarın gerçekleştirebileceği aynı görevleri gerçekleştirebilir. Dolayısıyla, her tür bilgisayar (netbook, süper bilgisayar, hücresel otomat, vb.) yeterli zaman ve depolama kapasitesi verildiğinde aynı hesaplama görevlerini yerine getirebilir.

Yapay zeka

Bir bilgisayar, verimlilik, alternatif çözümler, olası kısayollar veya koddaki olası hataları dikkate almaksızın sorunları tam olarak programlandığı şekilde çözecektir. Öğrenen ve adapte olan bilgisayar programları, gelişmekte olan yapay zeka ve makine öğrenimi alanının bir parçasıdır. Yapay zeka tabanlı ürünler genel olarak iki ana kategoriye ayrılır: kural tabanlı sistemler ve örüntü tanıma sistemleri. Kural tabanlı sistemler insan uzmanlar tarafından kullanılan kuralları temsil etmeye çalışır ve geliştirilmesi pahalı olma eğilimindedir. Örüntü tabanlı sistemler, sonuçlar üretmek için bir sorun hakkındaki verileri kullanır. Örüntü tabanlı sistemlere örnek olarak ses tanıma, yazı tipi tanıma, çeviri ve yeni gelişmekte olan çevrimiçi pazarlama alanı verilebilir.

Meslekler ve organizasyonlar

Bilgisayar kullanımı toplum genelinde yaygınlaştıkça, bilgisayarları içeren kariyerlerin sayısı da artmaktadır.

Bilgisayarla ilgili meslekler
Donanımla ilgili Elektrik mühendisliği, Elektronik mühendisliği, Bilgisayar mühendisliği, Telekomünikasyon mühendisliği, Optik mühendisliği, Nano mühendislik
Yazılımla ilgili Bilgisayar bilimi, Bilgisayar mühendisliği, Masaüstü yayıncılık, İnsan-bilgisayar etkileşimi, Bilgi teknolojisi, Bilgi sistemleri, Hesaplamalı bilim, Yazılım mühendisliği, Video oyun endüstrisi, Web tasarımı

Bilgisayarların birlikte iyi çalışması ve bilgi alışverişinde bulunabilmesi ihtiyacı, hem resmi hem de gayri resmi nitelikte birçok standart organizasyonuna, kulübüne ve topluluğuna ihtiyaç duyulmasına yol açmıştır.

Organizasyonlar
Standart grupları ANSI, IEC, IEEE, IETF, ISO, W3C
Profesyonel topluluklar ACM, AIS, IET, IFIP, BCS
Özgür/açık kaynak yazılım grupları Özgür Yazılım Vakfı, Mozilla Vakfı, Apache Yazılım Vakfı

Kişisel bilgisayarların kilometre taşları


1950-1970 Büyük kurumlarda anaçatı bilgisayarlar kullanılıyordu.
1971 Mikroçipin geliştirilmesiyle bilgisayarlar çok küçük hâle geldi. Kişisel kullanıma yönelik ilk bilgisayar satıldı. Kendi monitörü yoktu, televizyon ekranını kullanıyordu.
1975 Bir ekranı ve klavyesi takılı olan ilk bilgisayar satıldı. Bilgisayara "Uzay Yolu" adlı televizyon dizisindeki bir gezegenden esinlenilerek Altair adı verilmişti.
1977 Tamamı birleştirilmiş, ekranı ve klavyesi bulunan, kullanıma hazır halde ilk bilgisayar üretildi.
1981 Bir ABD şirketi olan IBM, ilk kişisel bilgisayarı üretir. Kısa süre sonra diğer şirketler, IBM gibi kendi bilgisayarlarını tasarlar.
1983 Apple, faresi olan bir bilgisayar olan Macintosh'u üretir. Bilgisayar çizgeleri (grafik) kullanılmaya başlanır.
1985 Microsoft şirketi Windows 1.0'ı piyasaya sürer.
1992 Linus Torvalds, Linux 1.0'ı duyurur.
1997 Avuçiçi bilgisayarlar piyasaya yeni yeni çıkar.