GNU/Linux Nedir

advertisement
GNU/Linux & Unix & Güvenlik
Ali BOYACI
1306030066
Mehmen OLGUNGÜN
1306020065
Orhan YILMAZ
GNU/Linux Nedir?
Linux, serbestçe dağıtılabilen, çokgörevli, çok kullanıcılı UNIX işletim sistemi
türevidir. Linux, Internet üzerinde ilgili ve meraklı birçok kişi tarafından ortak olarak
geliştirilmekte olan ve başta IBM-PC uyumlu kişisel bilgisayarlar olmak üzere birçok
platformda çalışabilen ve herhangi bir maliyeti olmayan bir işletim sistemidir.
Linux, temel olarak Finlandiya Üniversitesinde öğrenci olan Linus Torvalds'ın ve
Internet üzerinde meraklı bir çok yazılımcının katkıları ile geliştirilmiştir. Linux gelişimi
açık bir şekilde yapılmaktadır. Bunun anlamı, işletim sisteminin her aşaması açık olarak
Internet üzerinde yayınlanmakta, dünyanın dört bir yanında kullanıcılar tarafından test
edilmekte, hataları ve eksiklikleri tesbit edilerek düzeltilmekte ve geliştirilmektedir.
Zaman zaman bu deneme aşamaları belirli bir noktada durdurulur ve güvenilir bir işletim
sistemi sunulup, geliştirme için ayrı bir seriye devam edilir. Geliştirmede yer alan bu
açıklık Linux'un en büyük avantajlarından biridir. Gelişimi evrimseldir, hatalar anında
kullanıcılar tarafından tesbit edilip rapor edilmekte ve birçok kişinin katkısıyla
düzeltilmektedir. Bazı işletim sistemi sürümleri saatler içerisinde güncellenebilmektedir.
Linux, Andy Tannenbaum tarafından geliştirilmiş olan Minix işletim sistemine
dayanmaktadır. Linus Torvalds boş zamanlarında Minix'ten daha iyi bir Minix işletim
sistemi yaratmak düşüncesiyle 1991 Ağustos sonlarında ilk çalışan Linux çekirdeğini
oluşturdu. 5 Ekim 1991 tarihinde 0.02 sürümü Linux ilk defa tanıtıldı. Linus,
comp.os.minix haber grubuna gönderdiği yazıda yeni bir işletim sistemi geliştirmekte
olduğunu ve ilgilenen herkesin yardımını beklediğini yazmıştı. İşletim sisteminin
çekirdeği için verilen numaralar kısa sürede bir standart kazandı. a.x.y seklinde belirtilen
çekirdek türevlerinde y bulunulan seviyeyi, x gelişim aşamasını göstermektedir. Tek
sayılı x'ler geliştirme aşamalarını çift sayılı x' ler ise güvenilir Linux çekirdeklerini
göstermektedirler. a ise değişik Linux sürümlerini belirtir.
Unix nedir?
Unix, çok kullanıcılı (multiuser) ve aynı anda birçok işi yapabilen (multitasking)
bir işletim sistemidir. Daha çok program geliştiren kişiler için düşünülmüş bir sistemdir.
Komut yorumlayıcı programlar (shell) aracılığı ile kullanıcı ve bilgisayar sisteminin
iletişimi sağlanır. UNIX 1969 yılında Bell Laboratuarlarında doğmuş ve 80 li yıllar ile
birlikte çok popüler bir işletim sistemi olmuştur. Özellikle akademik dünyada iş
istasyonları üzerinde çok yaygın bir kullanım alanı bulmuştur. Bunda biraz da işletim
sisteminin gelişmeye-geliştirilmeye açık olması çok önemli bir rol oynamıştır.
Kendiliğinden ve çok değişik kaynaklar ve yollardan geliştirildiği için piyasada çok
değişik UNIX vardır, mesela ULTRIX, AIX, System V, BSD, Digital UNIX, vb. Fakat
bu farklı UNIXler kullanıcılar tarafından komut yorumlayıcı programlar (Shell)
sayesinde bir zorluk çekmeden kullanılmaktadır.
GNU/Linux & unix dizin yapısı
/: En üst dizindir. Tüm dizinler bu dizinin alt dizinidir.
/bin : Çalıştırılabilir dosyalar
/dev : G/Ç aygıtları
/etc : Ayarlar
/lib : Kütüphaneler
/proc : İşlemlerlerinn bulunduğu sanal bir dizindir.
/var : Logların bulunduğu dizindir.
/usr : Kullanıcı programlarının bulunduğu dizindir.
/home : Kullanıcı belgelerinin dizinidir.
Desteklenen dosya sistemleri
minix
En eski, en güvenli olarak kabul edilen ama kısıtlı yeteneklere ve özelliklere sahip olan
dosya sistemidir. (En fazla 64 MB lık dosya sistemi, en çok 30 karakterlik dosya isimleri,
ara sıra kaybolan tarih zaman damgaları gibi...
xia
Dosya isimleri ve dosya sistemi boyutlarının sınırlarını kaldıran ama bundan başka pek
bir yenilik getirmeyen, sadece minix dosya sisteminin yenilenmiş halidir. Çok popüler
değildir ama oldukça iyi çalıştığı rapor edilmektedir.
ext3
ext3 dosya sistemi, ext2'nin bütün özelliklerine sahip bir dosya sistemidir. Aradaki temel
fark, günlükleme özelliğinin eklenmiş olmasıdır. Böylece, herhangi bir sistem çökmesi
esnasında, geri kurtarma zamanı kısaltılır ve performans artışı sağlanır. ext3, ext2'den
daha popüler olmuştur.
ext2
En yetenekli Linux dosya sistemidir. İleriye dönük kolay geliştirilebilen bir dosya sistemi
olarak tasarlanmıştır. Dolayısıyla yeni sürümü, dosya sistemi kodlarını, kurulu bir
sisteme uygulamak için yeni ayarlar yapmayı gerektirmez.
ext
Ext2'nin geliştirilmeye uygun olmayan eski sürümüdür. Pek çok insan ext2 dosya
sistemine yönelmiştir.
reiserfs
Çok sağlam bir dosya sistemidir. Veri kayıplarını en aza indirmek için günlükleme
(journalling) yöntemi kullanılır. Günlükleme; yapılmış veya yapılan işlemlerin
kayıtlarının tutulması mekanizmasıdır. Bu sayede dosya sistemi meydana gelmiş olan
hasarları son derece kolay bir biçimde onarabilir.
Bunlara ek olarak, çok sayıda yabancı dosya sistemine destek bulunmaktadır. Böylece
işletim sistemleri arasında dosyaları değişmek kolaylaştırılmıştır. Bu yabancı dosya
sistemleri, makine üzerinde doğal Linux dosya sistemleri gibi çalışabilirler. Ama Unix'in
bazı özelliklerinden faydalanamazlar, bazı kısıtlamalara tabidirler veya bazı acayiplikler
sergilerler.
msdos
MS-DOS FAT dosya sistemleri (OS/2 ve Windows NT) ile uyumlu bir dosya sistemidir.
umsdos
Msdos dosya sistemi sürücülerine, Linux altında daha uzun dosya isimleri, sahipler,
izinler, bağlar ve aygıt dosyaları erişimi sağlar. Bu sistem; normal bir MSDOS dosya
sisteminin sanki Linux dosya sistemiymiş gibi kullanılmasını sağlar ve böylece Linux
için bağımsız bir bölüm oluşturulması zorunluluğunu ortadan kaldırır.
vfat
FAT32 olarak bilinen dosya sisteminin bir uzantısıdır. Pek çok MS Windows diski
vfat'tır. FAT'tan daha büyük disk alanlarını destekler.
iso9660
CD ROM'lar için standart dosya sistemleridir. Daha uzun dosya isimlerine izin veren
Rock Ridge uzantısı otomatik olarak desteklenir.
nfs
Bir ağ dosya sistemidir. Dosya sisteminin pek çok bilgisayar tarafından paylaşılmasını
sağlar.
smbfs
MS Windows bilgisayarlarla paylaşım sağlayan bir ağ dosya sistemidir. Windows dosya
paylaşım protokolleri ile uyumludur.
hpfs
OS/2 dosya sistemi.
sysv
SystemV/386, Coherent ve Xenix dosya sistemleri.
GNU/Linux & unix neden güvenlidir?
GNU/Linux , unix işletim sistemlerinde olduğu gibi çoklu kullanıcılı
tasarlanmıştır. Sistemin en üstünde çekirdek işlerini yürüten root kullanıcısı
bulunmaktadır. Bu kullanıcı sistemin hayati fonksiyonlarının işlerini yürüten kullanıcıdır.
Bu kullanıcı hesabı sistem güncellemesi ve sisteme müdehale edildiği durumlarda
kullanılır. Temel olarak işletim sistemi üzerindeki kullanıcı sistemin hayati
fonksiyonlarına müdehale edemediğinden sistemdeki hayati öneme sahip dosyaların
silinmesi yada bozulması mümkün değildir. GNU/Linux ve unix işletim sistemi altında
her uygulamaya ayrı kullanıcı hakları tanımlanması mümkündür. Örneğin eposta
istemcinizin indirdiğiniz bir dosyaya erişim haklarını değiştirebilirsiniz. GNU/Linux ve
unix işletim sisteminde /tmp dizini geçici dosyalar için kullanılan dizindir ve bu dizinde
ki dosyaların çalışma izni yoktur. Buda bu dizinde bulunan bir dosyanın sisteminize zarar
veremeyeceği anlamına gelir.
GNU/Linux ve unix sistemlerde derlenmiş dosyalar çalıştırılabilir durumda
değildir. İndirdiğiniz bir dosyanın çalıştırılabilir olması için ona o izni vermeniz
gerekmektedir.
GNU/Linux da ve unix türevlerinin bir kısmında kod tamamen açıktır. Bu durum
kodun birçok insanın gözünün önünden geçmesine neden olduğu için açıkların ortaya
çıkması ve yamalanması hızlı olmaktadır.
Güvenli bir işletim sistemi “OpenBSD”
OpenBSD, unix tabanlı bir BSD işletim sistemidir. BSD işletim sistemi AT&T
şirketiyle yaşadıkları hukuki sorunlar nedeniyle unix adını kullanamamaktadır.
Günümüzde BSD tabanlı işletim sistemlerinin sayısı oldukça fazla olsa da FreeBSD ,
NetBSD ve OpenBSD bunların başlıcalarındandır.
MACOS Apple Şirketinin BSD çekirdeğine sahip işletim sistemidir.
FreeBSD “The Power to Serve” (Sunum Gücü). FreeBSD yüksek performans ve
son kullanıcılar için kullanım kolaylığı amacını güder. Ve ISP firmaları için favori işletim
sistemidir. PC’ler ve Compaq’ın Alpha işlemcileri üzerinde çalışır.FreeBSD açık bir
farkla diğer projelere oranla daha fazla kişi tarafından kullanılır.
NetBSD “Of course it runs NetBSD” ( Elbette NetBSD kullaniyor) NetBSD
azami seviyede taşınabilirlilik hedefler. Ek olarak sade dizayna sahip olamk önemlidir.
NetBSD palmtoplardan büyük serverlara kadar her yarde çalışır.ve NASA’nın uzay
çalışmalarında da kullanılmıştır. Intel-olmayan donanımlar için iyi seçimdir.
OpenBSD “Only two remote holes in the default install, in more than 10 years!”
OpenBSD güvenlik ve kod güzelliği hedefler.Birleşik Devletler hükümet işlemleri, borsa
ve bankalar gibi güvenliğin ön planda olduğu önemli merkezlerin seçimi olmak için, çok
sıkı kod denetimleri ve doğruluk testleri gerçekleştirir ve bunu açık kod standart ve
kavramına uygun olarak yapar.NetBSD gibi birçok platformda çalışabilir.
Konu güvenlikle ilgili olduğunda BSD dünyasında OpenBSD bir adım daha öne
çıkar.
OpenBSD projesi Theo de Raadt tarafından 1995 in sonlarında başlatılmıştır. İlk
sürüm 1995 de 1.2 daha sonra 1996 2.0 olarak yayınlanmıştır. Bu tarihten sonra her 6
ayda yeni sürümler duyurulmaya başlanmıştır. Yoğunlukla güvenlik duvarı, saldırı tespit
sistemi, VPN geçiş noktası olarak kullanılmaktadır.
API Değişiklikleri
Tampon bellek taşmalarını engellemek için string işleme fonksiyonları
geliştirilmiştir. Bu fonksiyonlar daha sonra NetBSD ve FreeBSD projelerine de
eklenmiştir.
Hafıza Koruması
OpenBSD string overflow ve integer overflow sorunlarını gidermek için çeşitli
yollar geliştirmiştir. GCC derleyicisine yığın saldırılarından korunmak için yığını kontrol
eden pointerlar oluşturmaktadır. Bu olası bir taşma sırasında hafızada bozulma olmasını
sağlayarak taşmayı engellemektedir. Yine hafıza yazılabilir yada çalıştırılabilir olarak
ayrılmıştır. 3.8 versiyonu ile birlikte malloc fonksiyonun yaptığı sistem çağrısına
geleneksel unix işletim sisteminden farklı olarak hafızadan rastgele boş alan seçerek
cevap vemeye başlamıştır. Bu hafızanın daha zor delinmesini ve manipüle edilmesini
sağlamaktadır.
OpenBSD çekirdeğine rastgele asal sayı üretimi ve kriptografi modülleri
eklenmiştir.
Download