Unix Nedir? Unix İşletim Sistemi ve Unix Komutları

Unix bir işletim sistemidir. Çoklu görev ve çoklu kullanıcı işlevselliğini destekler. Unix, masaüstü, dizüstü bilgisayar ve sunucular gibi tüm bilgi işlem sistemlerinde en yaygın şekilde kullanılır. Unix’te, kolay gezinme ve destek ortamını destekleyen, pencerelere benzer bir grafik kullanıcı arayüzü vardır. GUI ile, Unix tabanlı bir sistem kullanmak oldukça kolaydır.

UNIX’in birkaç farklı sürümü vardır, ancak bu sürümlerin birçok benzerliği vardır. UNIX sistemlerinin en popüler çeşitleri Sun Solaris, Linux/GNU ve MacOS X’tir.

Herhangi bir UNIX işletim sistemi üç bölümden oluşur ve bunlar aşağıdaki gibidir: 

  • Çekirdek
  • Kabuk (Shell)
  • Programlar

Unix’in Tarihi

1960 yılında üç birim; Massachusetts Teknoloji Enstitüsü, Bell Laboratuvarları ve General Electric, GE-645 sunucusu için yeni bir sistem oluşturdu. Ancak, bu üç tarafın birleşimi uygun değildi ve birçok araştırmacının ayrılmasına yol açtı ve bu plan durduruldu. Neyse ki, bilim adamları Ken Thompson ve Dennis Ritchie, bu başarısız araştırmada birkaç küçük ilerleme kaydetti ve önceki projeye dayanan daha küçük bir çalışma sürdürmeye devam etti. Bu araştırmalar sonucu bugün bildiğimiz Unix sistemi ortaya çıktı.

Birçok değişiklikten geçen Unix, düzinelerce güvenlik açığı bulunan tek görevli bir Unix işletim sistemi çekirdeğinden yavaş yavaş evrimleşerek 1990’larda birçok cihaz için bir numaralı tercih haline geldi.

Günümüzde sunucu ve cihazlar, işlemleri kontrol etmede hala Unix’i birincil sistem olarak kullanmaya devam ediyor.

Unix Mimarisi

Unix işletim sistemi 4 katmanlı bir mimariye sahiptir. Donanım, çekirdek, kabuk ve uygulama programlarından oluşur.

  • Donanım, Unix mimarisinin en içteki katmanıdır.
  • Çekirdek, işletim sisteminin kalbidir. Çekirdek, donanımı kontrol eder ve bellek yönetimi, görev zamanlama, dosya yönetimi vb. gibi görevleri yerine getirir. Çekirdek, sistemin donanımıyla doğrudan etkileşime girer.
  • Kabuk, çekirdek ve uygulama programları arasında arayüz görevi görür. Kullanıcılar kabuk komutlarını kullanarak kabuk ile etkileşime girebilir. Shell, komutlarınızı veya isteklerinizi işler ve istediğiniz belirli görevleri yürütmek için gerekli programı çağırır. 250’den fazla kabuk komutu vardır.
  • Uygulama programları, kullanıcıların görevleri kolayca yapabilmeleri için sistemde bulunan yazılımlardan oluşur.

Unix’in Avantajları Nelerdir?

Seçiminiz için belirleyici faktörler olabilecek bu işletim sisteminin belirli avantajlarını aşağıda bulabilirsiniz:

1. Korumalı bellekle tam çoklu görev sunma

Unix, birçok farklı kullanıcının kontrolü altında çoklu görevleri gerçekleştirebilir. Başka bir deyişle, bu işletim sistemi, komut satırı yorumlayıcısında karmaşık çakışmalara neden olmadan paralel olarak çalışan süreçleri koordine edebilir. Bu nedenle, aynı sorgu ile çok sayıda kullanıcı veya görev olduğunda hata veya yanlış çalışma olasılığı azalır.

2. Sanal belleği çok verimli kullanma

Sanal bellek, çalışan tüm Unix sistemlerinin fiziksel bellek üzerindeki yükünü azaltmaya ve programların performansını artırmaya yardımcı olması gereken bir özelliktir.

Unix benzeri birçok işletim sisteminin görsel bellek düzenleri ve uygulamaları zayıf olsa da, Unix bu konuda harika bir iş çıkarır. Bu nedenle, aynı anda ağır işlemler veya birden fazla işlem çalıştırırken makinenin çökmesi konusunda endişelenmemize gerek yoktur.

3. Erişim kontrolleri ve güvenlik sağlama

Unix, verilerinizin güvenliğini sağlamak için birçok temel ve gelişmiş güvenlik özelliğine sahiptir. Parolalara ek olarak sistem, diğer kullanıcıların yönettiğiniz içeriği sorgulayamamaları için verileri de izole edebilir.

4. Yardımcı program ve komutları bir araya getirmeye izin verme

Unix’te, birçok özelliği ve birçok farklı kontrolü belirli bir sırayla bir dizi halinde dizerek kullanabilirsiniz. Bu yetenek genellikle genel kullanıcılar için pek yardımcı olmaz, ancak sistem yöneticileri için mükemmeldir.

Unix’in Dezavantajları Nelerdir?

Seçiminiz için belirleyici faktör olabilecek bu işletim sisteminin belirli dezavantajlarını aşağıda bulabilirsiniz:

1. Kötü bir grafik kullanıcı arayüzüne sahiptir

Desteklenecek bir grafik arabirimi (GUI) olmasına rağmen, Unix hala temelde daha komuta yönelik bir işletim sistemidir. Dolayısıyla sistemin grafik kullanıcı arayüzünün kötü bir tasarıma sahip olması ve kullanımının oldukça zor olması şaşırtıcı değildir.

2. Özellikleri anlamak çok kolay değildir

Bu işletim sistemini kullanmak için Unix kullanıcı giriş komutlarının nasıl çalıştığını bilmeniz gerekir. Unix ile iletişim yöntemi çok karmaşık olmasa da, bu, herkesin ona hızlı bir şekilde erişeceği anlamına gelmez.

Unix Dosya Sistemi

Unix işletim sistemindeki tüm veriler dosyalar halinde, daha sonra dizinler halinde düzenlenir. Bunlar, ağaç benzeri bir yapı olan dosya sisteminde daha da düzenlenmiştir.

Unix’te, dosya sisteminin tabanında kök (“/” sembolü ile temsil edilir) ve diğer dizinler kökten yayılan ters bir ağaç gibi hiyerarşik bir dosya sistemi yapısı kullanılır.

Eğer bir Linux sisteminiz varsa, komutları terminal içerisinde çalıştırabilirsiniz. Windows/Mac sisteminiz varsa, Unix komutlarını yürütmek için GitBash veya Cygwin gibi yazılımları indirebilirsiniz.

Temel Unix Komutları

Dosya ve dizinleri yönetmek için kullanılan bazı temel Unix komutlarını aşağıda bulabilirsiniz:

Printing Text (Metin Yazdırma)

Bu komut konsolda metin görüntülemek için kullanılır.

echo “Hello”

Creating Files (Dosya Oluşturma)

Bir Unix sisteminde, sıradan dosyalar oluşturmak için vi düzenleyicisini kullanabilirsiniz.

vi myfile

  • Bu komut, “myfile” adında yeni bir dosya açacaktır.
  • Düzenleme moduna geçmek için “i” tuşuna basın.
  • Şimdi dosya içeriğini yazın.
  • Düzenleme modundan çıkmak için “esc” tuşuna basın.
  • Dosyadan tamamen çıkmak için Shift+Z’ye iki kez birlikte basın.

Tüm bunları yaptıktan sonra, mevcut dizinde verilen dosya adıyla oluşturulmuş bir dosyanız olacak.

Display Contents of a File (Bir Dosyanın İçeriğini Görüntüleme)

Bir dosyanın içeriğini görüntülemek için cat komutunu ve ardından dosya adını kullanabilirsiniz.

cat myfile

Dosyanın içeriğini satır numaraları ile görüntülemek istiyorsanız cat komutu ile birlikte -b seçeneğini kullanabilirsiniz.

cat -b myfile

Counting Words in a File (Dosyadaki Kelimeleri Sayma)

Bir dosyadaki kelime sayısını saymak istiyorsanız, wc komutunu ve ardından dosya adını kullanabilirsiniz.

wc myfile

Çıktıda 4 sütun görüntülediğini görebilirsiniz.

  • İlk satır, dosyadaki toplam satır sayısını temsil eder.
  • İkinci sütun, dosyadaki sözcük sayısını temsil eder.
  • Üçüncü sütun, dosyadaki karakter sayısını temsil eder.
  • Dördüncü sütun dosya adını temsil eder.

Copying Files (Dosya Kopyalama)

Bir dosyanın bir kopyasını oluşturmak istiyorsanız, orijinal dosya adını ve yeni dosya adını takip eden cp komutunu kullanabilirsiniz.

cp myfile myfile2

Renaming Files (Dosyaları Yeniden Adlandırma)

Mevcut bir dosyayı yeniden adlandırmak istiyorsanız, mv komutunu ve ardından eski adı ve ardından yeni adı kullanabilirsiniz.

mv myfile2 mynewfile 

Deleting Files (Dosyaları Silme)

Bir dosyayı silmek için rm komutunu ve ardından dosya adını kullanabilirsiniz.

rm mynewfile

Aynı anda birden fazla dosyayı silmek istiyorsanız, dosya adlarını boşlukla ayırarak belirtebilirsiniz.

rm myfile mynewfile

Home Directory (Anadizin)

Giriş dizini, ilk giriş yaptığınızda kendinizi içinde bulduğunuz dizindir. Aşağıdaki komutu kullanarak istediğiniz zaman ana dizininize gidebilirsiniz.

cd ~

Başka bir kullanıcının ana dizinine gitmek istiyorsanız, kullanıcı adını ~ sembolünden sonra ekleyebilirsiniz.

cd ~username

Bir önceki dizine gitmek istiyorsanız aşağıdaki komutu kullanın.

cd –

Present Working Directory (Mevcut Çalışma Dizini)

Dosya sistemi hiyerarşisinde nerede olduğunuzu istediğiniz zaman belirlemek için pwd komutunu kullanabilirsiniz.

pwd

Listing Files in a Directory (Bir Dizindeki Dosyaları Listeleme)

Bir dizindeki dosyaları listelemek için ls komutunu kullanabilirsiniz.

ls directory_name

Mevcut dizindeki dosyaları listelemek istiyorsanız, basitçe ls yazabilirsiniz.

ls

Changing Directories (Dizinleri Değiştirme)

Bir dizinden diğerine geçmek istiyorsanız cd komutunu kullanabilirsiniz.

cd demo

Creating Directories (Dizin Oluşturma)

mkdir komutunu kullanarak yeni bir dizin oluşturabilirsiniz.

mkdir myfolder

Removing Directories (Dizinleri Kaldırma)

Bir dizini kaldırmak veya silmek için rmdir komutunu kullanabilirsiniz.

rmdir myfolder

Renaming Directories (Dizinleri Yeniden Adlandırma)

Dizinleri yeniden adlandırmak için, tıpkı dosyalarla kullandığınız gibi mv komutunu kullanabilirsiniz.

mv old_name new_name

Dosya Türleri

Unix sistemlerindeki dosyalar 3 ana tipte sınıflandırılabilir:

Sıradan dosyalar – Veri, metin veya program içeren dosyalar.

Dizinler – Bunlar dosya sistemindeki klasörlerdir.

Özel dosyalar – Bunlar, yazıcı, teyp sürücüsü vb. gibi giriş/çıkış işlemleri için bilgisayara bağlı gerçek fiziksel aygıtlardır.

Dosya İzinleri

Unix’te her dosyayla ilişkili belirli kısıtlamalar veya izinler vardır. 

Peki Unix’te neden buna ihtiyacınız var? 

Diğer işletim sistemlerinden farklı olarak Unix çok kullanıcılı bir işletim sistemidir. Bir kullanıcının eylemleri bilgisayarı çökertmemeli veya başka bir kullanıcıya ait dosyalara müdahale etmemelidir. Bu nedenle, Unix OS için dosya izni gereklidir.

Unix’te farklı izin türleri vardır. Dosya ve dizinler için izinleri aşağıdaki tabloda bulabilirsiniz:

İzinler Dosyalar Dizinler
Okuma Bu izin, bir dosyanın içeriğini okuma yeteneği verir. Dizin içindeki dosya adlarına bakmayı sağlar.
Yazma Bu izin, bir dosyanın içeriğini değiştirmeye veya kaldırmaya izin verir. Dizine dosya ekleme veya silme yeteneği verir.
Uygulama Bu izin, dosyayı bir program olarak çalıştırma yeteneği verir. Dizinde arama yapılmasını sağlar.

Dosya sistemindeki her dosya, dosyaya kimlerin erişebileceğini belirlemek için kullanılan bir dizi tanımlayıcıyla ilişkilendirilir.

  • Kullanıcı Kimliği (UID) – Dosyanın sahibi olan kullanıcıyı belirtir.
  • Grup Kimliği (GID) – Dosyanın ait olduğu kullanıcı grubunu belirtir.
  • Kullanıcı izni – Kullanıcıya verilen erişim düzeyini belirtir (dosyanın UID’siyle eşleşir).
  • Grup izni – Grubun bir üyesinin dosya üzerinde hangi eylemi gerçekleştirebileceğini belirtir.
  • Diğer izinler – Diğer tüm kullanıcıların dosya üzerinde hangi eylemi gerçekleştirebileceğini belirtir.

BT Geliştirmede Unix’in Rolü

Birden çok alt işletim sistemi için bir platform

Mac OS X gibi bilgisayarlar için Unix sistemlerinden Android, iOS, Chrome OS ve hatta PlayStation 4’teki Orbis OS gibi mobil cihazlar için işletim sistemlerine kadar hepsi Unix benzeridir.

Ayrıca Unix, daha az popüler olan diğer birçok işletim sisteminin temelidir.

Dizin sistemindeki gelişmeler

Unix’in dosya dizini modeli, olağanüstü performans ve son derece kontrol edilebilirlik ile zamansız tasarımı özetler. Bu Unix sistemi aynı zamanda depolama cihazlarının tahsisine de öncülük eder.

Programlamayı basitleştirme

Unix, programlamayı basitleştiren yaygın modülerleştirme hareketinde etkilidir. Ayrıca Unix’in komut satırı yorumlayıcı üzerindeki etkisini ve bu işletim sisteminin TCP/IP protokolünün popülerliği üzerindeki etkisi de göz ardı edilemez.

Özetle diyebiliriz ki, Unix gerçekten çok farklı avantajları ve teknolojinin gelişmesine önemli katkıları olan harika bir işletim sistemidir. Hala birçok dezavantajı olsa da, Unix ile tanışınca çok şey öğrenebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Önceki Yazı

MySQL Nedir, Nerelerde Kullanılır? SQL ile Arasındaki Farklar Nelerdir?

Sonraki Yazı

Container as a Service Nedir? Neden Container as a Service?

İlgili Diğer Yazılar