ucunbiri Mesaj tarihi: Nisan 12, 2009 Paylaş Mesaj tarihi: Nisan 12, 2009 slmlar öncelikle herkese, operating systems dersi ile ilgili bir projem var ve yeni bir system call yazmam gerekiyor, ben de öncesinde hani nedir ne değildir diye internette mvcut olan örneklerden birisini denedim: 7.1 KERNEL SPACE HEADER #ifndef __LINUX_MYROUTINE_H #define __LINUX_MYROUTINE_H #include #endif //store it in linux directory under kernel include directory 7.2 KERNEL SPACE SOURCE #include asmlinkage int sys_myroutine(int arg1,int arg2){ return arg1+arg2; } //store under fs directory of kernel sourse and change make file under fs to add myroutine.c compiled 7.3 USER SPACE HEADER #include _syscall2(int, myroutine, int, arg1, int , arg2) //store it under linux directory of user space include directory buraya kadar sorun yok düzgün bir şekilde yazıyorum ve kerneli recompile ediyorum sırasıyla; make dep,make clean,make bzImage,make modules,make modules_install ve ardından make boot la reboot da ediyorum ama basit bir programla test etmeye kalktığımda ki program da şu: 7.4 SAMPLE PROGRAM #include main(){ int sum; sum=myroutine(10,10); printf("%d",sum); } //you should get 20 printed sonuç olarak 20 değil -1 dönüyor, ki internette biraz kurcalayınca bunun entry.S ve hem kernel hem de user level unistd.h dosyalarında tanımlanmadığı için olabileceğini gördüm. iki tarafta da doğru system call numaralarıyla tanımlılar o numarada 259 yani bunla ilgili bir sorun da olamaz kernel 2.4.20-8 kullanıyorum onun da 265e kadar tanımlı. sizce bu -1 in sebebi ne olabilir, ne atlıyorum? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
ucunbiri Mesaj tarihi: Nisan 12, 2009 Konuyu açan Paylaş Mesaj tarihi: Nisan 12, 2009 yok mu yahu fikri olan :( Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Anason Mesaj tarihi: Nisan 12, 2009 Paylaş Mesaj tarihi: Nisan 12, 2009 sample programini -S komutuyla derleyin ciktisini buraya yapistirirmisin. kisisel olarak ilk tahminim yanlis sistem cagrisi numarasi yuzunden oluyor, ayrica perror() fonksiyonunuda ekle hemen altina, perror("sebep : "); gibi. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Anason Mesaj tarihi: Nisan 12, 2009 Paylaş Mesaj tarihi: Nisan 12, 2009 perror'u senin fonksiyondan hemen sonra ekle ama, printf den once yani. bide sample programini -S ile derleyince, sample.s olusucak. gereksin yerleri silebilirsin. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Anason Mesaj tarihi: Nisan 12, 2009 Paylaş Mesaj tarihi: Nisan 12, 2009 ya aslinda dusundumde, o .s uzantili dosyanda pushl $10 pushl $10 call myroutine gibi satirlar varsa hic buraya koyma. ogrenmek istedigim kac numarali sistem cagirisini kullandigiydi programin. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
ucunbiri Mesaj tarihi: Nisan 12, 2009 Konuyu açan Paylaş Mesaj tarihi: Nisan 12, 2009 Anason said: sample programini -S komutuyla derleyin ciktisini buraya yapistirirmisin. kisisel olarak ilk tahminim yanlis sistem cagrisi numarasi yuzunden oluyor, ayrica perror() fonksiyonunuda ekle hemen altina, perror("sebep : "); gibi. okuldaki bilgisayardan yollicam abi yarın Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Anason Mesaj tarihi: Nisan 12, 2009 Paylaş Mesaj tarihi: Nisan 12, 2009 birde kontrol etmek amacli, entry.S ve unistd.h daki ilgili satirlari koyarsan guzel olur. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
bonesoul Mesaj tarihi: Nisan 13, 2009 Paylaş Mesaj tarihi: Nisan 13, 2009 strace ile geriye doğru incelemelisin. http://linux.die.net/man/1/strace In the simplest case strace runs the specified command until it exits. It intercepts and records the system calls which are called by a process and the signals which are received by a process. The name of each system call, its arguments and its return value are printed on standard error or to the file specified with the -o option. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Anason Mesaj tarihi: Nisan 13, 2009 Paylaş Mesaj tarihi: Nisan 13, 2009 strace guzel bayagi tool ama burda sorun cekirdek seviyesinde oldugu icin pek bi anlami olmayabilir. yani strace'in ciktisi my_routine(10,10) = -1 gibi gozukur tahminim. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
ucunbiri Mesaj tarihi: Nisan 13, 2009 Konuyu açan Paylaş Mesaj tarihi: Nisan 13, 2009 ya hala -1 almaya devam ediyorum perror la hatayı bastırınca da function not implemented diyo kafayı yemek üereyim Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
bonesoul Mesaj tarihi: Nisan 15, 2009 Paylaş Mesaj tarihi: Nisan 15, 2009 http://www.ibm.com/developerworks/aix/library/au-unix-strace.html Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar