Unix, farklı donanım ortamları arasında yüksek esneklik ve veri adaptasyonu sağlayan, çoklu görev ve çok kullanıcı uyumlu bir işletim sistemidir. Bugün İnternet olarak bildiğimiz veri ortamının en az %80’i, Unix ya da Unix uzantısı olan (örneğin Linux) işletim sistemleri üzerinde çalışmaktadır. Hatta daha ileri gidecek olursak, bilgi işlemi network tabanlı yapıya dönüştüren bu sistem İnternet’in gelişiminin de yolunu açmıştır. Gelin bunun nasıl olduğunu Unix’in kısa tarihçesine bakarak öğrenelim:
1960’larda sonradan AT&T olarak bileceğimiz Bell Labs, General Electric ve MIT (Massachusetts Institute of Technology) birden fazla kullanıcının tek bilgisayara aynı anda erişmesini sağlayacak etkileşimli bir sistem geliştirmek için bir araya geldi. Sonuçların maliyetleri karşılamadığını düşünen Bell Labs kısa süre sonra projeden çekildi. Bell’de görevli 2 yazılım uzmanı bilim insanı (Ken Thompson and Dennis Ritchie) ise projenin neler vadettiğini görerek sistem üzerinde çalışmaya devam etti.
1973’e dek tek görevli olarak geliştirilen sistem o yıl C üzerinde yazılan ilk versiyon olan 4. sürümünü tanıttı ve bir bakıma Unix’in başarı hikayesi başlamış oldu. O tarihten itibaren akademilerin ve profesyonel ya da amatör olsun pek çok girişimcinin ilgisini çeken sistem bugün sayısız teknoloji devinin ve efsanenin doğuşuna yol açtı.
Bunların belki de en ünlüsü olan Linux, Linus Torvalds tarafından 1991 yılında Unix tabanlı olarak yaratıldı. Ücretsiz olarak indirilebilen bu işletim sistemi Unix benzeri sistemlerin popülerliğinin artmasına yol açtı. Bugün MacOS bilgisayarlar, dizüstüler ve Android cihazlar dâhil olmak üzere çok sayıda modern sunucu, iş istasyonları, mobil cihazlar ve gömülü sistemler Unix tabanlı işletim sistemleri tarafından çalıştırılmaktadır.
Unix işletim sistemi 3 ana katmandan oluşur:
1- Çekirdek (kernel)
2- Kabuk (Shell)
3- Uygulamalar ve kullanıcı komutları
Çekirdek, kullanıcı komutlarını kabuk aracılığıyla alır ve bellek ayırma ve dosya depolama gibi işlemleri gerçekleştirmek için donanıma erişir.
Kabuk, komut satırı girdisini yorumlayan ve işi yapmak için gerekli programları çağıran arayüzdür. Girdiğiniz komutlar ya da programların işlemi tamamlandığında komut satırı komut istemi düzeyine geri döner.
Unix kabuk ve çekirdek katmanlarının birlikte nasıl çalıştığına dosya kopyalama fonksiyonu ile basitçe anlatırsak;
Eğer "file1" isimli bir dosyayı kopyalamak ve yeni dosyaya "file2" ismini vermek istiyorsanız, komut satırına "cp file1 file2" yazarsınız. Komutu okuyan shell "cp" programını arayacak ve sonra kernel’e bu programı "dosya 1" üzerinde çalıştırmasını ve çıktıyı "dosya 2" olarak adlandırmasını söyleyecektir. Kopyalama işlemi bittiğinde, kabuk kullanıcıyı (yani sizi) komut istemine geri döndürür ve komut bekleme moduna geçer.
Unix, aynı anda birden fazla gerçek kişi ya da yapay zekânın bilgisayar kaynaklarını kullanmasına izin veren çok kullanıcılı bir sistemdir. Bir terminal aracılığıyla ana bilgisayarla doğrudan iletişime izin verirken katmanlı yapısıyla bunu çok güvenli şekilde yapmanızı sağlar. Diğer bir deyişle çok etkileşimlidir ve kullanıcıya bilgisayar kaynakları üzerinde doğrudan kontrol sağlar. Unix ayrıca kullanıcıların birbirleriyle veri ve program paylaşmasına da olanak tanır.
Bu sistemin donanım uyumluluğu da çok geniştir. 32-bit işlemciler, genişletilmiş bellekler, farklı türde sabit diskler gibi mevcut tüm fiziksel bileşenlerden de tam olarak yararlanabilmenizi sağlar. Üstelik makineden bağımsız bir dilde (C/C++) yazıldığından, PC'ler de dâhil olmak üzere birçok farklı dıonanım türüne taşınabilir ve özel gereksinimleri karşılamak üzere uyarlanabilir. Bu özellikler nedeniyle bildiğiniz tüm modern kurumsal BT sistemleri bir şekilde bu devrimsel işletim sisteminin türevidir.
1- Ücretsiz olması:
Büyük oranda açık kaynak ve ücretsiz olan UNIX, yeni sistemler geliştirmek ve kurumsal BT altyapıları kurmak için çok ideal bir seçimdir.
2- Birden fazla kullanıcı ve çoklu görev desteği:
Birden fazla kullanıcı ve program bu sistem üzerinde paralel olarak farklı işler yapabilir.
3- Taşınabilirlik:
Unix sunucular ve kullanıcılar boyunca yüksek oranda taşınabilir olduğu için kurumsal kullanım için idealdir.
4- Daha az bellek ihtiyacı:
Bu işletim sistemi sanal belleği çok verimli kullanma yeteneğine sahiptir. Yeni programlar ve görevler için ek bellek ihtiyacına proaktif olarak cevap verebilir.
5- Yüksek veri güvenliği:
Akademilerin, kamu kurumlarının ve büyük işletmelerin deneyimleriyle şekillenen UNIX çok güvenli bir platformdur. Verilerin kötüye kullanımını önlemek için farklı kullanıcılar için farklı izin seviyeleri sunar, kimlik doğrulama ile dosyaları ve görevleri yetkisiz kullanıma karşı korur.
6- Web barındırma için idealdir:
Elektronik ticaretin arttığı, dijital ödemelerin trilyon dolarlara ulaştığı günümüzde web barındırma, e-ticaret pazaryeri işletmeciliği ve tüm diğer web hizmetleri için güvenli ve ücretsiz seçenektir.
Unix işletim sisteminin basitçe nasıl çalıştığını görmeniz için bazı temel komutlardan bahsedelim. İlk olarak dosya oluşturma komutu:
Unix dosya yaratma:
Yeni dosya oluşturmak için vi fonksiyonunu kullanabilirsiniz.
vi coditblog
- Tebrikler, coditblog adıyla bir dosya yarattınız.
- Bu dosyayı düzenlemek için “i” tuşuna, düzenleme modundan çıkmak için “esc” tuşuna basabilirsiniz.
Unix dosyası içerik görüntüleme
Az önce yarattığımız “coditblog” doyasının içeriğini şu şekilde görüntüleyebilirsiniz:
cat coditblog
- Boş bir dosyayla karşılaştınız, çünkü az önce dosyada hiç değişiklik yapmamıştık!
Unix dosyası çoğaltma
Sistem üzerinde yeni dosya oluşturmanın yollarından biri de mevcut bir dosyayı çoğaltmaktır. Sırasıyla cp + çoğaltılacak dosya adı + tercih ettiğiniz yeni dosya adını yazın:
cp coditblog coditmakale
- coditblog isimli dosyanın bir kopyasını coditmakale olarak yaratmış oldunuz.
Dosya içinde belirli bir bilgiyi arama
Şu an okuduğunuz makaleyi coditmakale dosyasına girdiğimizi ve daha sonra belirli bir sözcüğü aradığımızı varsayalım. Kullanacağınız komut grep komutudur. Aradığımız kelime “bell” olsun:
grep bell dict
- Yazımızın “1960’larda…“ diye başlayan ikinci paragrafı karşınıza çıktı, çünkü satır başı yapılana kadar her bir komut dizisi tek parça olarak kabul edilir.
Diğer temel Unix komutları şunlardır:
cat --- kısa dosyalar oluşturmak ve görüntülemek için
chmod --- izinleri değiştir
cd --- dizini değiştir
cp --- dosyaları kopyalamak için
date --- tarihi göster
echo --- echo argümanı
ftp --- dosya indirmek veya yüklemek için uzak bir makineye bağlanma
head --- dosyanın ilk bölümünü görüntüle
ls --- hangi dosyalara sahip olduğunuzu görün
lpr --- standart yazdırma komutu
print - özel yazdırma komutu
more --- dosyaları okumak için kullanın
mkdir - dizin oluşturma komutu
mv - dosyaları taşımak ve yeniden adlandırmak için
rm - dosyayı kaldırma / dosyayı silme
rmdir - dizini kaldırma / dizini silme
pwd - hangi dizinde olduğunuzu öğrenin
rsh - host üzerindeki komutu çalıştırma
setenv - bir ortam değişkeni belirleme
sort - dosya sıralama
tail - dosyanın sonunu görüntüleme
tar - arşiv oluşturma, dosya ekleme veya çıkarma
telnet - UNIX ağındaki başka bir makinede oturum açma