Skip to content

Instantly share code, notes, and snippets.

@mickeyouyou
Created April 20, 2021 02:04
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mickeyouyou/1aaf07f6aa39bcff3eea0cf0122dff44 to your computer and use it in GitHub Desktop.
Save mickeyouyou/1aaf07f6aa39bcff3eea0cf0122dff44 to your computer and use it in GitHub Desktop.
“用力过猛”的现代操作系统
// craete rs do nothing
fn main() {
// do nothing
}
@mickeyouyou
Copy link
Author

Then build this code with rustc donothing.rs

and run ./donothing

Obviously , nothing printed. But strace is

zongbao@lixiang:~/lixiang/os
> strace ./donothing 
execve("./donothing", ["./donothing"], 0x7ffd36da5f70 /* 64 vars */) = 0
brk(NULL)                               = 0x561dd24d8000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=222979, ...}) = 0
mmap(NULL, 222979, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f6a41bc6000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300*\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=96616, ...}) = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6a41bc4000
mmap(NULL, 2192432, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6a417bc000
mprotect(0x7f6a417d3000, 2093056, PROT_NONE) = 0
mmap(0x7f6a419d2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7f6a419d2000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\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\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=31680, ...}) = 0
mmap(NULL, 2128864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6a415b4000
mprotect(0x7f6a415bb000, 2093056, PROT_NONE) = 0
mmap(0x7f6a417ba000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f6a417ba000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0000b\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=144976, ...}) = 0
mmap(NULL, 2221184, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6a41395000
mprotect(0x7f6a413af000, 2093056, PROT_NONE) = 0
mmap(0x7f6a415ae000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x19000) = 0x7f6a415ae000
mmap(0x7f6a415b0000, 13440, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f6a415b0000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\16\0\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0644, st_size=14560, ...}) = 0
mmap(NULL, 2109712, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6a41191000
mprotect(0x7f6a41194000, 2093056, PROT_NONE) = 0
mmap(0x7f6a41393000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x7f6a41393000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\20\35\2\0\0\0\0\0"..., 832) = 832
fstat(3, {st_mode=S_IFREG|0755, st_size=2030928, ...}) = 0
mmap(NULL, 4131552, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f6a40da0000
mprotect(0x7f6a40f87000, 2097152, PROT_NONE) = 0
mmap(0x7f6a41187000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1e7000) = 0x7f6a41187000
mmap(0x7f6a4118d000, 15072, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f6a4118d000
close(3)                                = 0
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6a41bc2000
arch_prctl(ARCH_SET_FS, 0x7f6a41bc3240) = 0
mprotect(0x7f6a41187000, 16384, PROT_READ) = 0
mprotect(0x7f6a41393000, 4096, PROT_READ) = 0
mprotect(0x7f6a415ae000, 4096, PROT_READ) = 0
mprotect(0x7f6a417ba000, 4096, PROT_READ) = 0
mprotect(0x7f6a419d2000, 4096, PROT_READ) = 0
mprotect(0x561dd1480000, 12288, PROT_READ) = 0
mprotect(0x7f6a41bfd000, 4096, PROT_READ) = 0
munmap(0x7f6a41bc6000, 222979)          = 0
set_tid_address(0x7f6a41bc3510)         = 5299
set_robust_list(0x7f6a41bc3520, 24)     = 0
rt_sigaction(SIGRTMIN, {sa_handler=0x7f6a4139acb0, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x7f6a413a7980}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0x7f6a4139ad50, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x7f6a413a7980}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
poll([{fd=0, events=0}, {fd=1, events=0}, {fd=2, events=0}], 3, 0) = 0 (Timeout)
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x7f6a40ddf040}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
brk(NULL)                               = 0x561dd24d8000
brk(0x561dd24f9000)                     = 0x561dd24f9000
openat(AT_FDCWD, "/proc/self/maps", O_RDONLY|O_CLOEXEC) = 3
prlimit64(0, RLIMIT_STACK, NULL, {rlim_cur=8192*1024, rlim_max=RLIM64_INFINITY}) = 0
fstat(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(3, "561dd123f000-561dd1281000 r-xp 0"..., 1024) = 1024
read(3, " 00003000 103:03 1445170        "..., 1024) = 1024
read(3, "417ba000-7f6a417bb000 r--p 00006"..., 1024) = 1024
read(3, "ff000-7f6a41c00000 rw-p 00000000"..., 1024) = 367
close(3)                                = 0
sched_getaffinity(5299, 32, [0, 1, 2, 3, 4, 5, 6, 7]) = 8
rt_sigaction(SIGSEGV, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGSEGV, {sa_handler=0x561dd125d3f0, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_SIGINFO, sa_restorer=0x7f6a413a7980}, NULL, 8) = 0
rt_sigaction(SIGBUS, NULL, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
rt_sigaction(SIGBUS, {sa_handler=0x561dd125d3f0, sa_mask=[], sa_flags=SA_RESTORER|SA_ONSTACK|SA_SIGINFO, sa_restorer=0x7f6a413a7980}, NULL, 8) = 0
sigaltstack(NULL, {ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=0}) = 0
mmap(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f6a41bfa000
mprotect(0x7f6a41bfa000, 4096, PROT_NONE) = 0
sigaltstack({ss_sp=0x7f6a41bfb000, ss_flags=0, ss_size=8192}, NULL) = 0
sigaltstack({ss_sp=NULL, ss_flags=SS_DISABLE, ss_size=8192}, NULL) = 0
munmap(0x7f6a41bfa000, 12288)           = 0
exit_group(0)                           = ?
+++ exited with 0 +++


@mickeyouyou
Copy link
Author

zongbao@lixiang:~/lixiang/os
> size donothing
   text	   data	    bss	    dec	    hex	filename
 266383	  10256	    544	 277183	  43abf	donothing

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment