BİL461-ÖDEV2
ÖDEV-2
1)
IBM Power 7 işlemcili RHEL6 sunucusu üzerinde
çalışan Xeyes uygulaması, sanallaştırmanın getirdiği özellikler sayesinde sanal
makine üzerine kurulan RHEL6 sunucusu üzerinde de çalışabilir. Sanallaştırma
sayesinde bu sunucu üzerinde yapılabilecek olan işlemler sanal makine
tarafından desteklenebilir hale getirilmiştir.
2)
Notepad++ programını
Centos üzerinde çalıştırabilmek için:
·
Epel repository’si kurulur :
·
Epel repository’si içinde bulunan wine paketini
yüklemek için “yum install wine” komutu
kullanılır ve wine paketinin kurulumu yapılır :
·
Kurulumu yapıldıktan sonra winecfg komutu ile
konfigüre edilir :
·
Konfigürasyon işlemi tamamlandıktan sonra
notepad++ programı Centos üzerine indirilir. İndirilen program “sağ tık, Open
With Other Application” seçeneğinden ”Wine Windows Program Loader” seçilerek açılır :
·
Wine ile açılan notepad++ kurulumu tamamlanır ve
çalıştığı görülür :
Burada Wine Windows’ta çalışabilecek bir programı Linux
üzerinde çalışabilecek hale getirmiştir. Wine, Windows’un uyarlanan
kitaplıkları sayesinde belirli programları Linux üzerinde çalıştırabilir. Notepad++
da bu şekilde Linux üzerinde çalıştırılabilmiştir.
3) Uygulama strace ile çalıştırıldığında gözlenen
API çağrıları şu şekildedir:
·
execve
·
brk
·
mmap
·
access
·
open
·
fstat
·
close
·
read
·
mprotect
·
arch_prctl
·
munmap
·
write
·
exit_group
Execve:
int execve(const char *filename, char *const argv[], char
*const envp[]);
Filename ile gösterilen programı çalıştırır. Burada
HelloWorld isimli binary dosyasını çalıştırmıştır. Çalıştırılma sırasında bir
hata olmadığı için execve bir şey dönmemiştir, eğer hata olsaydı -1 dönerdi.
Brk:
Brk, işlemin
bulunduğu data segment’in sonunu gösterir ve böylece program için bellekte yer
belirtmiş olur.
Mmap:
Çağrımı yapılan işlem için sanal adres alanında yeni bir
mapping oluşturulmasını sağlar.
Access:
İşlem çağrısının dosyanın path’ine erişip erişemediğini
kontrol eder.
Open:
Dosyanın yapılacağı işe göre (okuma, yazma vb.) negatif
olmayan bir tam sayı döner.
Fstat:
Dosya hakkında bilgi döner.
Close:
Dosya tanımlayıcısını kapatır, böylece descriptor hiçbir
dosyayı göstermiyor olur ve tekrar kullanılabilir.
Read:
Buffer’da file descriptor’dan itibaren olan byte’ların
sayılmak için okunmasını sağlar.
Mprotect:
Bellek alanındaki erişim için olan korumayı değiştirir.
Arch_prctl:
Mimariye özgü işlemleri veya thread durumunu ayarlar.
Munmap:
Belirli adres alanları içerisindeki mappingleri siler ve bu
şekilde geçersiz hale gelen bellek adreslerinin sonraki referanslar için
kullanılabilmesini sağlar.
Write:
Bufferdan file descriptor’a kadar olan byteları yazar.
Exit_group:
İşlem çağrımının thread grubundaki bütün threadlerin
durdurulmasını ve programın sonlanmasını sağlar.





