execve("./a.out", ["./a.out"], [/* 26 vars */]) = 0                                          Execute the program
brk(0)                                  = 0x1e22000                                          Read current mem alloc
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)              Lookup permissions (no extended permissions)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdd2ca51000    Mmap for process loading
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)              Lookup loader (fail)
open("/etc/ld.so.cache", O_RDONLY)      = 3                                                  Lookup loader (success)
fstat(3, {st_mode=S_IFREG|0644, st_size=198485, ...}) = 0                                    Lookup size of /etc/ld.so.cache
mmap(NULL, 198485, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fdd2ca20000                            Mmap  /etc/ld.so.cache
close(3)                                = 0                                                  Close /etc/ld.so.cache
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)              Lookup permissions (no extended permissions)
open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 3                                        Open libc
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\360\1\0\0\0\0\0"..., 832) = 832   read libc
fstat(3, {st_mode=S_IFREG|0755, st_size=1638120, ...}) = 0                                   Lookup size of libc
mmap(NULL, 3749080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7fdd2c49f000   mmap libc
mprotect(0x7fdd2c629000, 2093056, PROT_NONE) = 0                                             change page protection for part of libc (no protection)
mmap(0x7fdd2c828000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x189000) = 0x7fdd2c828000  mmap libc
mmap(0x7fdd2c82d000, 21720, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fdd2c82d000        mmap a new region
close(3)                                = 0                                                  Close libc
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdd2ca1f000    Mmap new region
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdd2ca1d000    Mmap new region
arch_prctl(ARCH_SET_FS, 0x7fdd2ca1d720) = 0                                                  Architecture specific thread state
mprotect(0x7fdd2c828000, 16384, PROT_READ) = 0                                               Set memory readonly (libc)
mprotect(0x600000, 4096, PROT_READ)     = 0                                                  Set memory readonly (program code)
mprotect(0x7fdd2ca53000, 4096, PROT_READ) = 0                                                Set memory readonly (libc)
munmap(0x7fdd2ca20000, 198485)          = 0                                                  Unmap part of libc
brk(0)                                  = 0x1e22000                                          Read current mem alloc
brk(0x1e43000)                          = 0x1e43000                                          Add more memory
open("file.txt", O_WRONLY|O_CREAT|O_TRUNC, 0666) = 3                                         fopen("file.txt", "w")
fstat(3, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0                                         Lookup size of file.txt (new file, 0)
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fdd2ca50000    mmap new memory
unlink("file.txt")                      = 0                                                  delete file.txt
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0                                                 block child signal
rt_sigaction(SIGCHLD, NULL, {SIG_DFL, [], 0}, 8) = 0                                         set action for sigchld to null
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0                                                 set process mask to empty (unblock child)
nanosleep({1, 0}, 0x7fff28eea360)       = 0                                                  sleep(1)
rt_sigaction(SIGINT, {SIG_IGN, [], SA_RESTORER, 0x7fdd2c4d2d80}, {SIG_DFL, [], 0}, 8) = 0    restore sigint
rt_sigaction(SIGQUIT, {SIG_IGN, [], SA_RESTORER, 0x7fdd2c4d2d80}, {SIG_DFL, [], 0}, 8) = 0   restore sigquit
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0                                                 block child
clone(Process 19237 attached                                                                 fork
child_stack=0, flags=CLONE_PARENT_SETTID|SIGCHLD, parent_tidptr=0x7fff28eea350) = 19237      fork (part 2)
[pid 19236] wait4(19237, Process 19236 suspended                                             switch to child process
 <unfinished ...>
[pid 19237] rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7fdd2c4d2d80}, NULL, 8) = 0
[pid 19237] rt_sigaction(SIGQUIT, {SIG_DFL, [], SA_RESTORER, 0x7fdd2c4d2d80}, NULL, 8) = 0
[pid 19237] rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
[pid 19237] execve("/bin/sh", ["sh", "-c", "uptime"], [/* 26 vars */]) = 0                   system("uptime") 
[pid 19237] brk(0)                      = 0x133a000                                          Read current memory
[pid 19237] access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)       (same as above for program startup)
[pid 19237] mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6b70cca000
[pid 19237] access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
[pid 19237] open("/etc/ld.so.cache", O_RDONLY) = 4
[pid 19237] fstat(4, {st_mode=S_IFREG|0644, st_size=198485, ...}) = 0
[pid 19237] mmap(NULL, 198485, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7f6b70c99000
[pid 19237] close(4)                    = 0
[pid 19237] access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
[pid 19237] open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 4
[pid 19237] read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\360\1\0\0\0\0\0"..., 832) = 832
[pid 19237] fstat(4, {st_mode=S_IFREG|0755, st_size=1638120, ...}) = 0
[pid 19237] mmap(NULL, 3749080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7f6b70718000
[pid 19237] mprotect(0x7f6b708a2000, 2093056, PROT_NONE) = 0
[pid 19237] mmap(0x7f6b70aa1000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x189000) = 0x7f6b70aa1000
[pid 19237] mmap(0x7f6b70aa6000, 21720, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f6b70aa6000
[pid 19237] close(4)                    = 0
[pid 19237] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6b70c98000
[pid 19237] mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6b70c96000
[pid 19237] arch_prctl(ARCH_SET_FS, 0x7f6b70c96720) = 0
[pid 19237] mprotect(0x7f6b70aa1000, 16384, PROT_READ) = 0
[pid 19237] mprotect(0x619000, 4096, PROT_READ) = 0
[pid 19237] mprotect(0x7f6b70ccc000, 4096, PROT_READ) = 0
[pid 19237] munmap(0x7f6b70c99000, 198485) = 0
[pid 19237] getpid()                    = 19237                                              getpid() 
[pid 19237] rt_sigaction(SIGCHLD, {SIG_DFL, [CHLD], SA_RESTORER|SA_RESTART, 0x7f6b7074bd80}, {SIG_DFL, [], 0}, 8) = 0  Restore signals
[pid 19237] geteuid()                   = 0                                                  get user id
[pid 19237] brk(0)                      = 0x133a000                                          read current mem alloc
[pid 19237] brk(0x135b000)              = 0x135b000                                          alloc more memory
[pid 19237] getppid()                   = 19236                                              get parent id
[pid 19237] stat("/home/alex/Poli/courseware/Piattaforme_SW_Rete/TdE/OS", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 check pwd from environment
[pid 19237] stat(".", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0                         get local path (pwd)
[pid 19237] rt_sigaction(SIGINT, NULL, {SIG_DFL, [], 0}, 8) = 0                              prepare for executing uptime
[pid 19237] rt_sigaction(SIGINT, {0x40f040, ~[RTMIN RT_1], SA_RESTORER, 0x7f6b7074bd80}, NULL, 8) = 0
[pid 19237] rt_sigaction(SIGQUIT, NULL, {SIG_DFL, [], 0}, 8) = 0
[pid 19237] rt_sigaction(SIGQUIT, {SIG_DFL, ~[RTMIN RT_1], SA_RESTORER, 0x7f6b7074bd80}, NULL, 8) = 0
[pid 19237] rt_sigaction(SIGTERM, NULL, {SIG_DFL, [], 0}, 8) = 0
[pid 19237] rt_sigaction(SIGTERM, {SIG_DFL, ~[RTMIN RT_1], SA_RESTORER, 0x7f6b7074bd80}, NULL, 8) = 0
[pid 19237] stat("/usr/local/sbin/uptime", 0x7fffcd8057a0) = -1 ENOENT (No such file or directory)  search uptime in various locations
[pid 19237] stat("/usr/local/bin/uptime", 0x7fffcd8057a0) = -1 ENOENT (No such file or directory)
[pid 19237] stat("/usr/sbin/uptime", 0x7fffcd8057a0) = -1 ENOENT (No such file or directory)
[pid 19237] stat("/usr/bin/uptime", {st_mode=S_IFREG|0755, st_size=6200, ...}) = 0           Lookup uptime
[pid 19237] clone(Process 19238 attached                                                     fork
child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x7f6b70c969f0) = 19238
[pid 19237] wait4(-1,  <unfinished ...>                                                      
[pid 19238] execve("/usr/bin/uptime", ["uptime"], [/* 26 vars */]) = 0                       exec uptime
[pid 19238] brk(0)                      = 0x81a000                                           startup new program
[pid 19238] access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
[pid 19238] mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe4268b8000
[pid 19238] access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
[pid 19238] open("/etc/ld.so.cache", O_RDONLY) = 4
[pid 19238] fstat(4, {st_mode=S_IFREG|0644, st_size=198485, ...}) = 0
[pid 19238] mmap(NULL, 198485, PROT_READ, MAP_PRIVATE, 4, 0) = 0x7fe426887000
[pid 19238] close(4)                    = 0
[pid 19238] access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
[pid 19238] open("/lib/libproc-3.2.8.so", O_RDONLY) = 4
[pid 19238] read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0 >\0\0\0\0\0\0"..., 832) = 832
[pid 19238] fstat(4, {st_mode=S_IFREG|0644, st_size=76664, ...}) = 0
[pid 19238] mmap(NULL, 2249528, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7fe426474000
[pid 19238] mprotect(0x7fe426485000, 2097152, PROT_NONE) = 0
[pid 19238] mmap(0x7fe426685000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x11000) = 0x7fe426685000
[pid 19238] mmap(0x7fe426687000, 74552, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fe426687000
[pid 19238] close(4)                    = 0
[pid 19238] access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
[pid 19238] open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY) = 4
[pid 19238] read(4, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\360\1\0\0\0\0\0"..., 832) = 832
[pid 19238] fstat(4, {st_mode=S_IFREG|0755, st_size=1638120, ...}) = 0
[pid 19238] mmap(NULL, 3749080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 4, 0) = 0x7fe4260e0000
[pid 19238] mprotect(0x7fe42626a000, 2093056, PROT_NONE) = 0
[pid 19238] mmap(0x7fe426469000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 4, 0x189000) = 0x7fe426469000
[pid 19238] mmap(0x7fe42646e000, 21720, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fe42646e000
[pid 19238] close(4)                    = 0
[pid 19238] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe426886000
[pid 19238] mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe426884000
[pid 19238] arch_prctl(ARCH_SET_FS, 0x7fe426884720) = 0
[pid 19238] mprotect(0x7fe426469000, 16384, PROT_READ) = 0
[pid 19238] mprotect(0x7fe426685000, 4096, PROT_READ) = 0
[pid 19238] mprotect(0x600000, 4096, PROT_READ) = 0
[pid 19238] mprotect(0x7fe4268ba000, 4096, PROT_READ) = 0
[pid 19238] munmap(0x7fe426887000, 198485) = 0
[pid 19238] brk(0)                      = 0x81a000
[pid 19238] brk(0x83b000)               = 0x83b000
[pid 19238] open("/proc/version", O_RDONLY) = 4                                              fopen("/proc/version", "r")
[pid 19238] fstat(4, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0                             Lookup size of /proc/version (/proc files are all virtual)
[pid 19238] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe4268b7000    malloc for read
[pid 19238] read(4, "Linux version 2.6.38-10-generic "..., 1024) = 145                       read the version
[pid 19238] close(4)                    = 0                                                  close /proc/version
[pid 19238] munmap(0x7fe4268b7000, 4096) = 0                                                 unmap
[pid 19238] open("/proc/stat", O_RDONLY|O_CLOEXEC) = 4                                       Open and read from /proc/stat
[pid 19238] read(4, "cpu  790314 21311 312091 1675178"..., 8192) = 1806
[pid 19238] close(4)                    = 0
[pid 19238] open("/etc/localtime", O_RDONLY) = 4                                             Open and read from /etc/localtime
[pid 19238] fstat(4, {st_mode=S_IFREG|0644, st_size=2652, ...}) = 0
[pid 19238] fstat(4, {st_mode=S_IFREG|0644, st_size=2652, ...}) = 0
[pid 19238] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe4268b7000 
[pid 19238] read(4, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\6\0\0\0\6\0\0\0\0"..., 4096) = 2652
[pid 19238] lseek(4, -1701, SEEK_CUR)   = 951
[pid 19238] read(4, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\10\0\0\0\0"..., 4096) = 1701
[pid 19238] close(4)                    = 0
[pid 19238] munmap(0x7fe4268b7000, 4096) = 0                                                 Close /etc/localtime
[pid 19238] open("/proc/uptime", O_RDONLY) = 4                                               Open and read from /proc/uptime
[pid 19238] lseek(4, 0, SEEK_SET)       = 0
[pid 19238] read(4, "251611.98 167517.89\n", 2047) = 20                                      Read "251611.98 167517.89\n"
[pid 19238] access("/var/run/utmpx", F_OK) = -1 ENOENT (No such file or directory)
[pid 19238] open("/var/run/utmp", O_RDONLY|O_CLOEXEC) = 5                                    Open /var/run/utmp
[pid 19238] fcntl(5, F_GETFD)           = 0x1 (flags FD_CLOEXEC)
[pid 19238] lseek(5, 0, SEEK_SET)       = 0
[pid 19238] alarm(0)                    = 0
[pid 19238] rt_sigaction(SIGALRM, {0x7fe426201bf0, [], SA_RESTORER, 0x7fe426113d80}, {SIG_DFL, [], 0}, 8) = 0
[pid 19238] alarm(10)                   = 0
[pid 19238] fcntl(5, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = 0
[pid 19238] read(5, "\2\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 384) = 384
[pid 19238] fcntl(5, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
[pid 19238] alarm(0)                    = 10                   = 10
[pid 19238] rt_sigaction(SIGALRM, {SIG_DFL, [], SA_RESTORER, 0x7fe426113d80}, NULL, 8) = 0
[pid 19238] alarm(0)                    = 0
[pid 19238] rt_sigaction(SIGALRM, {0x7fe426201bf0, [], SA_RESTORER, 0x7fe426113d80}, {SIG_DFL, [], SA_RESTORER, 0x7fe426113d80}, 8) = 0
[pid 19238] alarm(10)                   = 0
[pid 19238] fcntl(5, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = 0
[pid 19238] read(5, "", 384)            = 0
[pid 19238] fcntl(5, F_SETLKW, {type=F_UNLCK, whence=SEEK_SET, start=0, len=0}) = 0
[pid 19238] alarm(0)                    = 10
[pid 19238] rt_sigaction(SIGALRM, {SIG_DFL, [], SA_RESTORER, 0x7fe426113d80}, NULL, 8) = 0
[pid 19238] close(5)                    = 0
[pid 19238] open("/proc/loadavg", O_RDONLY) = 5                                               Open and read from /proc/loadavg
[pid 19238] lseek(5, 0, SEEK_SET)       = 0
[pid 19238] read(5, "0.00 0.01 0.05 1/450 19238\n", 2047) = 27
[pid 19238] fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 7), ...}) = 0
[pid 19238] mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7fe4268b7000
[pid 19238] write(1, " 12:40:33 up 2 days, 21:53,  5 u"..., 70) = 70                          printf(" 12:40:33 up 2 days, 21:53,  5 u...")
[pid 19238] exit_group(0)               = ?                                                   exit from uptime
Process 19238 detached 
[pid 19237] <... wait4 resumed> [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 19238     Shell process is notified the child death
[pid 19237] --- SIGCHLD (Child exited) @ 0 (0) --- 
[pid 19237] exit_group(0)               = ?                                                   exit Shell process
Process 19236 resumed 
Process 19237 detached 
<... wait4 resumed> [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 19237                 First process notified of child termination
rt_sigaction(SIGINT, {SIG_DFL, [], SA_RESTORER, 0x7fdd2c4d2d80}, NULL, 8) = 0
rt_sigaction(SIGQUIT, {SIG_DFL, [], SA_RESTORER, 0x7fdd2c4d2d80}, NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
write(3, "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"..., 1024) = 1024                                  Write on "file.txt" temporary file
close(3)                                = 0                                                   Close "file.txt" (file actually deleted)
munmap(0x7fdd2ca50000, 4096)            = 0                                                   Unmap all memory at exit
exit_group(0)                           = ?                                                   exit process
