Nasıl yazıldı demiş. Neyle ve nasıl deseydi onu da atardım.Bunu yazmak içinde önünde yazılımsal bir platform olması lazım, kağıda yazmıyorlar sonuçta 01'leri.
File:First Computer Bug, 1945.jpg - Wikipedia
en.wikipedia.org
Bilgisayarların temeli, milyonlarca transistör içeren işlemcilere dayanır. İşlemci ise, temelinde basit matematik yani dört işlem yapan bir birimdir.
Günümüzde işlemcilerin büyük birçoğunluğu ikili sisteme göre çalışır. İkili sistemde işlemcilerin iletişim için kullandığı alfabe 0 ve 1'lerden oluşur. Her 0 ve 1, bir Bit'i temsil eder.
İşlemcinin yaptığı dört işlemde temelinde bu Bit'leri elden geçirmektir. Her işlemcinin bir mimarisi ve her mimarinin bir komut seti vardır. Komut seti, Lego'lardan çıkan yapım kılavuzları gibi düşünebiliriz, Bit'ler de lego parçaları. Yani işlemcideki komut setleri, işlemcinin Bit'leri nasıl elden geçireceğini ve bizlerin, input olarak Bit'leri nasıl işlemciye vermemiz gerektiğini belirler. Mesela bunun için güzel bir örnek sunabilirim:
Transistörler - Logic Gate: Binary toplama ve 4 Bit'lik Aritmetik Mantık Birimi (ALU)
Geçtiğimiz haftalarda, Transistörler - Logic Gate konusyla beraber birkaç konu sürecek bir yolculuğa başlamaıştık. O konuda genel olarak transistörlere, nasıl çalıştıklarına ve kullanım alanlarına değinmiştik. Konunun sonunda da, başlıkta bahsedilen ve bizim için asıl öneme sahip olan "Logic...www.technopat.net
Ancak 0 ve 1'ler ile çalışmak çok çok zordur. Bu nedenle Bit gruplarını, 0 ve 1'ler yerine latin alfabesi ile temsil etmeleri için, Assembly denen bir dil geliştirilmiştir. Esasında işlemcinin komut seti de direkt olarak Assembly ile alakalıdır.
Assembly Low Level bir dildir, yani Bit'lere çok kolay çevrilebilir. İşlemciler tarafından herhangi bir compiler ya da benzeri derleyici/emülatör gerekmeden anlaşılabilir. Yani işlemciye girdiğin bir Assembly komutunu direkt olarak Bit karşılığıyla da girebilirsin.
Ancak Assembly'nin de zorlukları vardı. Assembly işlemciye özgüdür, taşınabilir değildir. Yani X işlemcide yazdığın Assembly kodunu y işlemcisinde çalıştırmak için düzenlemen gerekir. Bunun yanından, Low Level olmasının getirdiği kısıtlamalar nedeniyle, kompleks programlar yazmak çok zordur. Bugün programlamada alıştığımız if, else, while, for gibi operatörler yoktur mesela.
Assembly'de yetmeyince, onun da üzerinde diller geliştirilmeye başlandı. Ve böylece işletim sistemleri de doğmuş oldu. Assembly'nin üstündeki diller High Level olarak adlandırılır. Zira işlemci tarafından direkt olarak çözülemezler, compiler dediğimiz, kodu (genellikle) Assembly diline çeviren ara yardımcılara ihtiyaçları vardır. Bu konuyla da alakalı güzel bir yazı yazmıştım:
Rehber: ARM Assembly - VisUAL2 ile basit ARM Assembly örnekleri
Merhaba, Assembly ile alakalı birkaç örnek koddan oluşan bir konunun ilgi çekeceğini düşündüm. VisUAL''den dolayı da ARM Assembly ile yapmak istedim. :) Öncesinden belirtmeliyim ki bu bir örnek kod konusu, rehber değil. Assembly hakkında kısaca bilgi vereceğim ama "Assembly nedir, ne yapar, ne...www.technopat.net
İşletim sistemi dediğin şey temelde bu işlemleri kolaylaştırmaktır. Mesela Windows'ta tek tıkla bir dosyayı kopyalayabilirsin. Bunu bir programlama arayüzüyle yapmaya kalksan, uzun uzun satırlar yazman gerekir.
Teorik olarak Assembly bir işletim sistemi değildir ama ilk bilgisayarlar uzun süre Assembly kullanarak programlanmıştır. Sonrasında bu programlama işini evrensel hale getirmek ve hemen hemen her bilgisayarda aynı kurallar çerçevesinde çalışmasını sağlamak için, işletim sistemleri doğmuştur.
Peki bu kodları parçalara nasıl öğrettiler?
2X + 5 -3Y
formülünde X'e 3, Y'ye de 2 verirsen, çıktı 5 olur. İşlemci de böyle çalışır işte.Şimdi biz internetten Visual Studio, dev-c++ gibi programlar indirip, bunlar üzerinden program vs. yazıyoruz. Peki ilk program, program yazma programı olmadan nasıl yazıldı?
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.