Advertisement
albert828

SCRl7 sprawko

Nov 25th, 2018
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.65 KB | None | 0 0
  1. 3. a) Poleceniem truss z programu wypisującego tekst na wyjście standardowe można odczytać dokładną lokalizację uruchamianego pliku, bądź przy użyciu flagi -t wyznaczyć wszystkie operacje, np otwierania plików, wypisywania tekstu (open, close, read, write). Śledzić można także sygnały w programie flagą -s numer_sygnału lub -s nazwa_sygnału. Poprzedzenie wykrzyknikiem numeru/nazwy wyklucza sygnał ze śledzenia.
  2. b) Pliki, które powłoka bash próbuje odczytać przy starcie (wyśledzone przy użyciu polecenia: truss -t open bash)
  3. open("/var/ld/ld.config", O_RDONLY) = 3
  4. open("/lib/libc.so.1", O_RDONLY) = 3
  5. open64("/dev/tty", O_RDWR|O_NONBLOCK) = 3
  6. open("/platform/SUNW,Sun-Fire-880/lib/libc_psr.so.1", O_RDONLY) = 3
  7. open("/usr/lib/locale/pl_PL.UTF-8/pl_PL.UTF-8.so.3", O_RDONLY) = 3
  8. open("/usr/lib/locale/common/methods_unicode.so.3", O_RDONLY) = 3
  9. open("/opt/csw/lib/sparcv9/libintl.so.8", O_RDONLY) = 3
  10. open("/opt/csw/lib/sparcv8/libintl.so.8", O_RDONLY) = 3
  11. open("/opt/csw/lib/sparcv9/libiconv.so.2", O_RDONLY) = 3
  12. open("/opt/csw/lib/sparcv8/libiconv.so.2", O_RDONLY) = 3
  13. open("/lib/libnsl.so.1", O_RDONLY) = 3
  14. open64("/var/run/name_service_door", O_RDONLY) = 3
  15. open("/etc/nsswitch.conf", O_RDONLY|O_LARGEFILE) = 3
  16. open("/lib/nss_files.so.1", O_RDONLY) = 3
  17. open("/lib/libsocket.so.1", O_RDONLY) = 3
  18. open("/etc/passwd", O_RDONLY|O_LARGEFILE) = 3
  19. open("/usr/lib/nss_ldap.so.1", O_RDONLY) = 3
  20. open("/usr/lib/libsldap.so.1", O_RDONLY) = 3
  21. open("/usr/lib/libldap.so.5", O_RDONLY) = 3
  22. open("/lib/libscf.so.1", O_RDONLY) = 3
  23. open("/lib/libdoor.so.1", O_RDONLY) = 3
  24. open("/lib/libuutil.so.1", O_RDONLY) = 3
  25. open("/lib/libgen.so.1", O_RDONLY) = 3
  26. open("/usr/lib/mps/libnspr4.so", O_RDONLY) = 3
  27. open("/lib/libpthread.so.1", O_RDONLY) = 3
  28. open("/lib/librt.so.1", O_RDONLY) = 3
  29. open("/lib/libdl.so.1", O_RDONLY) = 3
  30. open("/lib/libaio.so.1", O_RDONLY) = 3
  31. open("/lib/libmd.so.1", O_RDONLY) = 3
  32. open("/usr/lib/locale/pl_PL.UTF-8/LC_MESSAGES/SUNW_OST_SGS.mo", O_RDONLY) Err#2 ENOENT
  33. open("/usr/lib/locale/pl_PL.UTF-8/LC_MESSAGES/SUNW_OST_OSLIB.mo", O_RDONLY) Err#2 ENOENT
  34. open("/usr/lib/mps/cpu/sparcv8plus/libnspr_flt4.so", O_RDONLY) = 3
  35. open("/lib/libcurses.so.1", O_RDONLY) = 3
  36. open("/lib/libmp.so.2", O_RDONLY) = 3
  37. open("/proc/8118/psinfo", O_RDONLY) = 3
  38. open("/var/run/ldap_cache_door", O_RDONLY) = 3
  39. open("/usr/lib/locale/pl_PL.UTF-8/LC_MESSAGES/messages.mo", O_RDONLY) Err#2 ENOENT
  40. open64("/etc/bash.bashrc", O_RDONLY) Err#2 ENOENT
  41. open64("/home/wduda/.bashrc", O_RDONLY) Err#2 ENOENT
  42. open64("/home/wduda/.bash_history", O_RDONLY) = 3
  43. open64("/home/wduda/.bash_history", O_RDONLY) = 3
  44. open("/usr/share/lib/terminfo//x/xterm-256color", O_RDONLY) Err#2 ENOENT
  45. c) Ilość wystąpień funkcji printf wywoływanych przez program ls zliczam przy użyciu polecenia: truss -t write ls . ls wywołuje jedną funkcję printf na jedną linię plików.
  46. d) Przy użyciu polecenia truss -t open,close pico plik_tekstowy można wywnioskować, że plik otwierany jest dopiero pod koniec trwania procesu i zamykany bezzwłocznie po wykonaniu na nim operacji read.
  47. 4. W Linuxie przy użyciu programu strace można otrzymać porównywalne wyniki, np dla podpunktu 3d) analogiczne polecenie to : strace -e trace=open,close pico plik_tekstowy. Dla podpunktu 3c) odpowiednik polecenia w programie strace to : strace -e trace=write ls. Ponownie wynikiem jest jedno wywołanie funkcji printf na linię plików.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement