谈谈Go的“无依赖”
Go语言与现在的主流语言相比绝对算是个异类,不说concurrent了,就说说它的"无依赖"
?
Go的"无依赖"特性主要体现在以下几点:
?
1)pkg以静态库.a的形式存在,这与C/C++ package完全不同
?
execve("./8.out", ["./8.out"], [/* 33 vars */]) = 0modify_ldt(1, {entry_number:7, base_addr:0x810ec20, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, 16) = 0rt_sigaction(SIGQUIT, {0x805be22, ~[RT_2 RT_8 RT_12 RT_13 RT_16 RT_18 RT_20 RT_21 RT_22 RT_23 RT_24 RT_25 RT_26 RT_27 RT_29 RT_30 RT_31], SA_RESTORER|SA_STACK|SA_SIGINFO, 0x805be6f}, NULL, 8) = 0rt_sigaction(SIGILL, {0x805be22, ~[RT_2 RT_8 RT_12 RT_13 RT_16 RT_18 RT_20 RT_21 RT_22 RT_23 RT_24 RT_25 RT_26 RT_27 RT_29 RT_30 RT_31], SA_RESTORER|SA_STACK|SA_SIGINFO, 0x805be6f}, NULL, 8) = 0rt_sigaction(SIGTRAP, {0x805be22, ~[RT_2 RT_8 RT_12 RT_13 RT_16 RT_18 RT_20 RT_21 RT_22 RT_23 RT_24 RT_25 RT_26 RT_27 RT_29 RT_30 RT_31], SA_RESTORER|SA_STACK|SA_SIGINFO, 0x805be6f}, NULL, 8) = 0rt_sigaction(SIGABRT, {0x805be22, ~[RT_2 RT_8 RT_12 RT_13 RT_16 RT_18 RT_20 RT_21 RT_22 RT_23 RT_24 RT_25 RT_26 RT_27 RT_29 RT_30 RT_31], SA_RESTORER|SA_STACK|SA_SIGINFO, 0x805be6f}, NULL, 8) = 0rt_sigaction(SIGBUS, {0x805be22, ~[RT_2 RT_8 RT_12 RT_13 RT_16 RT_18 RT_20 RT_21 RT_22 RT_23 RT_24 RT_25 RT_26 RT_27 RT_29 RT_30 RT_31], SA_RESTORER|SA_STACK|SA_SIGINFO, 0x805be6f}, NULL, 8) = 0rt_sigaction(SIGFPE, {0x805be22, ~[RT_2 RT_8 RT_12 RT_13 RT_16 RT_18 RT_20 RT_21 RT_22 RT_23 RT_24 RT_25 RT_26 RT_27 RT_29 RT_30 RT_31], SA_RESTORER|SA_STACK|SA_SIGINFO, 0x805be6f}, NULL, 8) = 0rt_sigaction(SIGSEGV, {0x805be22, ~[RT_2 RT_8 RT_12 RT_13 RT_16 RT_18 RT_20 RT_21 RT_22 RT_23 RT_24 RT_25 RT_26 RT_27 RT_29 RT_30 RT_31], SA_RESTORER|SA_STACK|SA_SIGINFO, 0x805be6f}, NULL, 8) = 0rt_sigaction(SIGPIPE, {0x805be6e, ~[RT_2 RT_8 RT_12 RT_13 RT_16 RT_18 RT_20 RT_21 RT_22 RT_23 RT_24 RT_25 RT_26 RT_27 RT_29 RT_30 RT_31], SA_RESTORER|SA_STACK|SA_SIGINFO, 0x805be6f}, NULL, 8) = 0rt_sigaction(SIGSTKFLT, {0x805be22, ~[RT_2 RT_8 RT_12 RT_13 RT_16 RT_18 RT_20 RT_21 RT_22 RT_23 RT_24 RT_25 RT_26 RT_27 RT_29 RT_30 RT_31], SA_RESTORER|SA_STACK|SA_SIGINFO, 0x805be6f}, NULL, 8) = 0rt_sigaction(SIGSYS, {0x805be22, ~[RT_2 RT_8 RT_12 RT_13 RT_16 RT_18 RT_20 RT_21 RT_22 RT_23 RT_24 RT_25 RT_26 RT_27 RT_29 RT_30 RT_31], SA_RESTORER|SA_STACK|SA_SIGINFO, 0x805be6f}, NULL, 8) = 0open("/proc/stat", O_RDONLY|O_CLOEXEC) = 3read(3, "cpu 31796 246 50794 19875689 10"..., 252) = 252read(3, "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "..., 252) = 252read(3, "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "..., 252) = 252read(3, "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "..., 252) = 252read(3, "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 "..., 252) = 252read(3, "nning 1\nprocs_blocked 0\nsoftirq "..., 252) = 98read(3, "", 252) = 0close(3) = 0mmap2(0x8600000, 805306368, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x8600000mmap2(NULL, 131072, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb778e000mmap2(0x18600000, 1048576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x18600000mmap2(0x185e0000, 131072, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x185e0000mmap2(NULL, 131072, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb776e000mmap2(NULL, 131072, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb774e000sigaltstack({ss_sp=0x18604000, ss_flags=0, ss_size=32768}, NULL) = 0gettimeofday({1325098088, 59908}, NULL) = 0mmap2(NULL, 1048576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb764e000gettimeofday({1325098088, 61747}, NULL) = 0gettimeofday({1325098088, 62945}, NULL) = 0gettimeofday({1325098088, 63401}, NULL) = 0