Bilgisayarların gelişmesiyle makina dilinin kullanımının zorluğu yuzunden direktmen makina kodlarına denk gelen kodlar iceren bir dil yapılmıştır. Bu dilin ismi Assembly dir.

Orneğin makina kodu ile belleğin 500 uncu 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 icin 100 tane "0" veya "1" sayısını yanyana belli bir sıralama ile yazmamız gerekiyor olsun. Ayrılan yere sayı yazmak icin ve o sayının karesini almak icinde 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. Orneğin Assembly dili. Assembly dilinde yer ayırmak icin MOV diye bir komut oluşturulmuş. Değer yazmak icin ADD diye bir komut ve carpma işlemi icinde IMUL diye bir komut. Siz Assembly de MOV yada başka komut yazdığınız zaman derleyici onu gorup 100 tane 01 koduna ceviriyor.

Assembly kodu.

MOV AX, [1F4] ; // 500. bloku AX değişkeni olarak ayır.
ADD AX, [5] ; // AX in icine 5 yaz.
IMUL AX ; // AX in karesini al

Burada aynı tarayıcı motorları gibi calışan bir sistem olması lazım. Assembly kodlarını algılayıp onu makina koduna cevirecek ve işlemciye gonderecek. 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. Bircok ilki bu işletim sistemi ile yaptılar. İlk defa birden cok kullanıcının oturum acmasına izin veren ve ilk defa aynı anda birden cok işlem yapmaya izin veren bir işletim sistemiydi bu.

Bu işletim sistemini yazabilmek icin once 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 calışma mantığı da Assembly deki gibi ancak bu sefer yepyeni bir sozdizimi(syntax) geldi.

Programcı B dilini yazdıktan sonra B derleyicisi once B dilini Assembly ye ceviriyordu. Sonra Assembly kodu Makina diline cevriliyordu. İki aşamalı cevrim oluşturuldu. Bir ornek verelim

int AX = 5; // AX isminde bir değişkeni oluştur ve icine 5 i yazdır.
int AX = AX*AX; // AX in karesini al;
Bu kodları B derleyicisi once Assembly diline ceviriyor, 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 koklu değişikler yapıldı ve bircok ozellik eklendi. Bu yeni haline C ismi verildi. Aynı sene UNIX C ile bir kere daha yazıldı.

1980 e kadar UNIX universitelerde ve akademik ortamlarda ucretsiz olarak kullanılan bilimsel bir calışmanın urunu olan bir sistemken, bilgisayarların akademi dışında da ticari olarak kullanımı yaygınlaşınca UNIX'i ucretli, kapalı kaynaklı ve ticari amaclı olarak geliştirme kararı aldılar. Bu karar daha sonraları cok tepki cekecek ve GNU projesinin doğmasına sebep olacak.

Unix Bilgisayar bilimlerinin 11 tane temel alt dalından biri olan işletim sistemleri konusunun cok gelişmesine, akademik olarak cok fazla makaleler yazılmasına on ayak olmuştur. Sadece işletim sistemlerine değil başka bircok konuya katkı yapmıştır. Dennis Ritchieye yapılmış bugun 15.000 civarında atıf vardır. Orneğin işletim sistemini geliştirebilmek icin yapılan yeni diller apayrı bir ekol oluşturmuştur. Bugunku bircok programlama dilinin yazım şekli C ye benzemektedir. Bu dillere "C vari" veya "C turevi" diller denir.