Pytania dotyczące szczegółów, w jaki sposób program używa wywołań systemowych do interakcji z API jądra, jakie wywołania są dostępne, jak działają itp.
Chciałbym wiedzieć, jaka jest różnica między wywołaniem bibliotecznym a wywołaniem systemowym w systemie Linux. Wszelkie wskazówki dla dobrego zrozumienia pojęć obu będą bardzo mile widziane.
Chciałbym szczegółowo zrozumieć różnicę między fork () a vfork (). Nie byłem w stanie całkowicie przetrawić strony podręcznika. Chciałbym również wyjaśnić jeden z moich kolegów komentujących: „ W obecnym systemie Linux nie ma vfork (), nawet jeśli go nazwiesz, wywoła wewnętrznie fork () ”.
Czy istnieje odpowiednik działania -Ti -Uopcji trussnarzędzia Solaris w systemie Linux. Służą one do określenia funkcji systemowej ( -T) lub funkcji bibliotecznej ( -U), która wywołana przez śledzoną aplikację spowoduje jej zatrzymanie. Lub, inaczej mówiąc, chciałbym, aby każdy proces uruchamiany przez śledzoną aplikację został zatrzymany (tak jakby został zabity przez …
Ze strony podręcznika użytkownika vfork(): vfork () różni się od fork () tym, że rodzic jest zawieszony, dopóki dziecko nie wykona wywołania execve (2) lub _exit (2). Dziecko dzieli całą pamięć ze swoim rodzicem, w tym stos, dopóki funkcja execve () nie zostanie wydana przez dziecko. Dziecko nie może powrócić …
O ile mi wiadomo, do manipulowania plikami istnieje tylko sys_write syscall w Linuksie, który zastępuje zawartość pliku (lub rozszerza go, jeśli na końcu). Dlaczego nie ma wywołań systemowych do wstawiania lub usuwania treści w plikach w systemie Linux? Ponieważ wszystkie obecne systemy plików nie wymagają przechowywania pliku w ciągłym bloku …
Zamknięte. To pytanie jest nie na temat . Obecnie nie przyjmuje odpowiedzi. Chcesz poprawić to pytanie? Zaktualizuj pytanie, aby było na temat wymiany stosów Unix i Linux. Zamknięte 7 lat temu . Chcę dodać szczególne nowe wywołanie systemowe w jądrze Linuksa 3.2.x, ale jako moduł jądra do załadowania (ponieważ nie …
Przeszedłem już odpowiedź na to pytanie, ale nie do końca rozumiem różnicę między wywołaniami systemowymi a funkcjami biblioteki. Koncepcyjnie, jaka jest różnica między nimi?
Korzystając z polecenia stracez flagą -T, chciałbym wiedzieć, jaka jednostka czasu jest używana do wyświetlania czasu spędzonego na wywołaniach systemowych? Zakładam, że powinno to potrwać kilka sekund, ale nie jestem do końca pewien i wydaje się, że został pominięty w instrukcji.
Kiedy czytałem kod źródłowy Linuksa, a dokładniej kod wywołań systemowych, natknąłem się na sys_rebootimplementację: http://lxr.free-electrons.com/source/kernel/reboot.c#L199 . 199 SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd, 200 void __user *, arg) 201 { 202 ... ... 286 } Pośrodku znajduje się ten konkretny fragment kodu: 209 210 /* For safety, we …
Oto coś, przez co zastanawiałem się przez chwilę: [15:40:50][/tmp]$ mkdir a [15:40:52][/tmp]$ strace rmdir a execve("/usr/bin/rmdir", ["rmdir", "a"], [/* 78 vars */]) = 0 brk(0) = 0x11bb000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7ff3772c3000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3 fstat(3, …
Uczę się o poleceniach fork () i exec (). Wygląda na to, że fork () i exec () są zwykle wywoływane razem. (fork () tworzy nowy proces potomny, a exec () zastępuje bieżący obraz procesu nowym). Jednak w jakich scenariuszach można wywoływać każdą funkcję osobno? Czy są takie scenariusze?
Czy istnieje sposób na uzyskanie liczby lub listy wywołań systemowych obsługiwanych przez aktualnie działające jądro Linuksa? Chcę więc znaleźć sposób na „odczytanie” tabeli syscall działającego jądra.
Gdy ltrace jest używany do śledzenia wywołań systemowych, widziałem, że fork () używa sys_clone () zamiast sys_fork (). Ale nie mogłem znaleźć źródła linuksa, w którym jest zdefiniowane. Mój program to #include<stdio.h> main() { int pid,i=0,j=0; pid=fork(); if(pid==0) printf("\nI am child\n"); else printf("\nI am parent\n"); } I wyjście ltrace jest …
Mam aplikację, która czyta plik. Nazwijmy to nazwa procesu i plik ~ / .configuracja . Po uruchomieniu nazwa procesu zawsze odczytuje konfigurację ~ / .configuracja i nie może być skonfigurowana inaczej. Istnieją również inne aplikacje, które polegają na „~ / .configuration”, przed i po, ale nie podczas działania nazwy procesu …
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 …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.