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.









Popüler İçerikler