Bilgisayarların gelişmesiyle makina dilinin kullanımının zorluğu yüzünden direktmen makina kodlarına denk gelen kodlar içeren bir dil yapılmıştır. Bu dilin ismi Assembly dir.
Örneğin makina kodu ile belleğin 500 üncü bloğunu bir değişkene atamak istiyoruz. Sonra bu değişkene bir sayı değeri verip, o değerin karesini almak isteyelim. Bellekte yer ayırmak için 100 tane "0" veya "1" sayısını yanyana belli bir sıralama ile yazmamız gerekiyor olsun. Ayrılan yere sayı yazmak için ve o sayının karesini almak içinde aynı sayıda komut yazmamız gerektiğini varsayalım. Toplamda 300 tane 0 veya 1 yazmamız gerekiyor.
Bunun yerine bir dil oluşturup o dildeki kavramları makina koduna eşlersek işimiz daha kolay olur. Örneğin Assembly dili. Assembly dilinde yer ayırmak için MOV diye bir komut oluşturulmuş. Değer yazmak için ADD diye bir komut ve çarpma işlemi içinde IMUL diye bir komut. Siz Assembly de MOV yada başka komut yazdığınız zaman derleyici onu görüp 100 tane 01 koduna çeviriyor.
Assembly kodu.
MOV AX, [1F4] ; // 500. bloku AX değişkeni olarak ayır.
ADD AX, [5] ; // AX in içine 5 yaz.
IMUL AX ; // AX in karesini al
Burada aynı tarayıcı motorları gibi çalışan bir sistem olması lazım. Assembly kodlarını algılayıp onu makina koduna çevirecek ve işlemciye gönderecek. Bu işi yapan sistem derleyici.
1969 yılında AT&T ve BELL laboratuvarlarında Ken Thompson ve Dennis Ritchie gibi Bilgisayar bilimlerinin kurucuları sayılan bilim insanları UNIX isimli bir işletim sistemi projesi başlattılar. Birçok ilki bu işletim sistemi ile yaptılar. İlk defa birden çok kullanıcının oturum açmasına izin veren ve ilk defa aynı anda birden çok işlem yapmaya izin veren bir işletim sistemiydi bu.
Bu işletim sistemini yazabilmek için önce Assembly dilini kullanmaya karar verdiler sonra bu dilin esnekliğinin az olmasından dolayı Assemblydeki aynı mantıkla B isminde bir dil oluşturdular. B'nin çalışma mantığı da Assembly deki gibi ancak bu sefer yepyeni bir sözdizimi(syntax) geldi.
Programcı B dilini yazdıktan sonra B derleyicisi önce B dilini Assembly ye çeviriyordu. Sonra Assembly kodu Makina diline çevriliyordu. İki aşamalı çevrim oluşturuldu. Bir örnek verelim
int AX = 5; // AX isminde bir değişkeni oluştur ve içine 5 i yazdır.
int AX = AX*AX; // AX in karesini al;
Bu kodları B derleyicisi önce Assembly diline çeviriyor, sonrada makina koduna derliyordu.
B dili artık yeteri kadar esneklik veriyordu ve UNIX B ile yazılmaya başlandı ve 1971 de bitti. 1973 te B dilinde köklü değişikler yapıldı ve birçok özellik eklendi. Bu yeni haline C ismi verildi. Aynı sene UNIX C ile bir kere daha yazıldı.
1980 e kadar UNIX üniversitelerde ve akademik ortamlarda ücretsiz olarak kullanılan bilimsel bir çalışmanın ürünü olan bir sistemken, bilgisayarların akademi dışında da ticari olarak kullanımı yaygınlaşınca UNIX'i ücretli, kapalı kaynaklı ve ticari amaçlı olarak geliştirme kararı aldılar. Bu karar daha sonraları çok tepki çekecek ve GNU projesinin doğmasına sebep olacak.
Unix Bilgisayar bilimlerinin 11 tane temel alt dalından biri olan işletim sistemleri konusunun çok gelişmesine, akademik olarak çok fazla makaleler yazılmasına ön ayak olmuştur. Sadece işletim sistemlerine değil başka birçok konuya katkı yapmıştır. Dennis Ritchieye yapılmış bugün 15.000 civarında atıf vardır. Örneğin işletim sistemini geliştirebilmek için yapılan yeni diller apayrı bir ekol oluşturmuştur. Bugünkü birçok programlama dilinin yazım şekli C ye benzemektedir. Bu dillere "C vari" veya "C türevi" diller denir.
Örneğin makina kodu ile belleğin 500 üncü bloğunu bir değişkene atamak istiyoruz. Sonra bu değişkene bir sayı değeri verip, o değerin karesini almak isteyelim. Bellekte yer ayırmak için 100 tane "0" veya "1" sayısını yanyana belli bir sıralama ile yazmamız gerekiyor olsun. Ayrılan yere sayı yazmak için ve o sayının karesini almak içinde aynı sayıda komut yazmamız gerektiğini varsayalım. Toplamda 300 tane 0 veya 1 yazmamız gerekiyor.
Bunun yerine bir dil oluşturup o dildeki kavramları makina koduna eşlersek işimiz daha kolay olur. Örneğin Assembly dili. Assembly dilinde yer ayırmak için MOV diye bir komut oluşturulmuş. Değer yazmak için ADD diye bir komut ve çarpma işlemi içinde IMUL diye bir komut. Siz Assembly de MOV yada başka komut yazdığınız zaman derleyici onu görüp 100 tane 01 koduna çeviriyor.
Assembly kodu.
MOV AX, [1F4] ; // 500. bloku AX değişkeni olarak ayır.
ADD AX, [5] ; // AX in içine 5 yaz.
IMUL AX ; // AX in karesini al
Burada aynı tarayıcı motorları gibi çalışan bir sistem olması lazım. Assembly kodlarını algılayıp onu makina koduna çevirecek ve işlemciye gönderecek. Bu işi yapan sistem derleyici.
1969 yılında AT&T ve BELL laboratuvarlarında Ken Thompson ve Dennis Ritchie gibi Bilgisayar bilimlerinin kurucuları sayılan bilim insanları UNIX isimli bir işletim sistemi projesi başlattılar. Birçok ilki bu işletim sistemi ile yaptılar. İlk defa birden çok kullanıcının oturum açmasına izin veren ve ilk defa aynı anda birden çok işlem yapmaya izin veren bir işletim sistemiydi bu.
Bu işletim sistemini yazabilmek için önce Assembly dilini kullanmaya karar verdiler sonra bu dilin esnekliğinin az olmasından dolayı Assemblydeki aynı mantıkla B isminde bir dil oluşturdular. B'nin çalışma mantığı da Assembly deki gibi ancak bu sefer yepyeni bir sözdizimi(syntax) geldi.
Programcı B dilini yazdıktan sonra B derleyicisi önce B dilini Assembly ye çeviriyordu. Sonra Assembly kodu Makina diline çevriliyordu. İki aşamalı çevrim oluşturuldu. Bir örnek verelim
int AX = 5; // AX isminde bir değişkeni oluştur ve içine 5 i yazdır.
int AX = AX*AX; // AX in karesini al;
Bu kodları B derleyicisi önce Assembly diline çeviriyor, sonrada makina koduna derliyordu.
B dili artık yeteri kadar esneklik veriyordu ve UNIX B ile yazılmaya başlandı ve 1971 de bitti. 1973 te B dilinde köklü değişikler yapıldı ve birçok özellik eklendi. Bu yeni haline C ismi verildi. Aynı sene UNIX C ile bir kere daha yazıldı.
1980 e kadar UNIX üniversitelerde ve akademik ortamlarda ücretsiz olarak kullanılan bilimsel bir çalışmanın ürünü olan bir sistemken, bilgisayarların akademi dışında da ticari olarak kullanımı yaygınlaşınca UNIX'i ücretli, kapalı kaynaklı ve ticari amaçlı olarak geliştirme kararı aldılar. Bu karar daha sonraları çok tepki çekecek ve GNU projesinin doğmasına sebep olacak.
Unix Bilgisayar bilimlerinin 11 tane temel alt dalından biri olan işletim sistemleri konusunun çok gelişmesine, akademik olarak çok fazla makaleler yazılmasına ön ayak olmuştur. Sadece işletim sistemlerine değil başka birçok konuya katkı yapmıştır. Dennis Ritchieye yapılmış bugün 15.000 civarında atıf vardır. Örneğin işletim sistemini geliştirebilmek için yapılan yeni diller apayrı bir ekol oluşturmuştur. Bugünkü birçok programlama dilinin yazım şekli C ye benzemektedir. Bu dillere "C vari" veya "C türevi" diller denir.
UNIX
Reviewed by Okan Yıldız
on
Temmuz 14, 2018
Rating:
Hiç yorum yok:
Yorumunuz alınmıştır. Teşekkürler.