Jak znaleźć numery wywołań systemowych?


1

Czy numery wywołań systemowych dla każdej maszyny są inne? Czy to zależy od procesora, to znaczy, czy będzie różnica dla i586 i i386?

Jeśli różnią się one dla każdej maszyny, jak możesz znaleźć numery swojej maszyny?

Jednym wspólnym miejscem jest / usr / include / asm *, ale ten folder nie istnieje.


Jeśli brakuje /usr/include/asm, może brakować jakiegoś pakietu deweloperskiego lub innego. Dla mnie (Fedora 22) jest w jednym kernel-devellub kernel-headers, a plik jest /usr/include/asm/unistd_64.h. Prawdopodobnie ten sam plik znajduje się gdzieś w drzewie źródeł jądra, jeśli spojrzysz.
Tom Hunt

Odpowiedzi:


-2

W większości systemów operacyjnych liczby są podane /usr/include/sys/syscall.h

Zwykle możesz zadzwonić syscall(number, rest of parameters).

Należy pamiętać, że niektórych „syscall” może nie być w syscalles. H, ponieważ kilka interfejsów syscall jest zaimplementowanych przez pojedyncze syscall, który korzysta z pod-numeru do wybierania podczas połączenia z grupy połączeń.

Numery syscall są ważne tylko dla konkretnej wersji określonego systemu operacyjnego.

W systemie Solaris nie ma stabilnego interfejsu syscall, ale stabilny interfejs powyżej libc. Jest to w pełni zgodne z POSIX, ponieważ POSIX celowo nie rozróżnia między syscallami a funkcjami bibliotecznymi.


Problem polega na tym, że w ogóle nie ma folderu dołączanego. Czy liczby dla każdej maszyny i586 są takie same? Czy jest jakiś zasób dla i586 wymieniający wszystkie liczby?
Joey

1
@Joey Liczba wywołań systemowych zależy od wersji jądra i opcji kompilacji. Jeśli nagłówków nie ma, zainstaluj je.
Gilles

@Gilles Jak je zainstalować?
Joey,

Opcje kompilacji to relikt z lat 80., nowoczesny system operacyjny konfiguruje się automatycznie w czasie wykonywania i automatycznie ładuje wszystkie wymagane moduły, które są dostępne w ścieżce wyszukiwania jądra.
schily,

1
@Joey Z menedżerem pakietów twojej dystrybucji. Na przykład w Ubuntu jądra są dostarczane przez pakiety, linux-image-XXXa nagłówki potrzebne do kompilacji dodatkowych modułów znajdują się linux-headers-XXX.
Gilles,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.