Tietokonetta dominoivan Binäärisidonnan sähkövuon kulku prosessille kill :
Onpas kernel ohjelmointi monimutkaista. Katso loppuosa! :)
janius@janius-laptop:~$ ps bash
PID TTY TIME CMD
2025 pts/0 00:00:00 bash
2045 pts/1 00:00:00 bash
2063 pts/0 00:00:00 ps
janius@janius-laptop:~$ sudo strace kill 2045 > syscalls
execve("/bin/kill", ["kill", "2045"], [/* 16 vars */]) = 0
brk(0) = 0x999b000
uname({sys="Linux", node="janius-laptop", ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb772b000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=89290, ...}) = 0
mmap2(NULL, 89290, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7715000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libproc-3.2.8.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`(\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=59140, ...}) = 0
mmap2(NULL, 136568, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3c1000
mmap2(0x3cf000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd) = 0x3cf000
mmap2(0x3d1000, 71032, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3d1000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000m\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1405508, ...}) = 0
mmap2(NULL, 1411496, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x110000
mmap2(0x263000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x153) = 0x263000
mmap2(0x266000, 10664, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x266000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7714000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7713000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7714b20, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0x263000, 8192, PROT_READ) = 0
mprotect(0x3cf000, 4096, PROT_READ) = 0
mprotect(0x804b000, 4096, PROT_READ) = 0
mprotect(0xf28000, 4096, PROT_READ) = 0
munmap(0xb7715000, 89290) = 0
brk(0) = 0x999b000
brk(0x99bc000) = 0x99bc000
open("/proc/version", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb772a000
read(3, "Linux version 2.6.32-39-generic "..., 1024) = 137
close(3) = 0
munmap(0xb772a000, 4096) = 0
open("/proc/stat", O_RDONLY|O_CLOEXEC) = 3
read(3, "cpu 20603 870 6516 87513 8790 2"..., 8192) = 1156
close(3) = 0
getpid() = 2066
kill(2045, SIGTERM) = 0
exit_group(0) = ?
janius@janius-laptop:~$
Onpas kernel ohjelmointi monimutkaista. Katso loppuosa! :)
janius@janius-laptop:~$ ps bash
PID TTY TIME CMD
2025 pts/0 00:00:00 bash
2045 pts/1 00:00:00 bash
2063 pts/0 00:00:00 ps
janius@janius-laptop:~$ sudo strace kill 2045 > syscalls
execve("/bin/kill", ["kill", "2045"], [/* 16 vars */]) = 0
brk(0) = 0x999b000
uname({sys="Linux", node="janius-laptop", ...}) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb772b000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=89290, ...}) = 0
mmap2(NULL, 89290, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7715000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/libproc-3.2.8.so", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0`(\0\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=59140, ...}) = 0
mmap2(NULL, 136568, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x3c1000
mmap2(0x3cf000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xd) = 0x3cf000
mmap2(0x3d1000, 71032, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x3d1000
close(3) = 0
access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0000m\1\0004\0\0\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0755, st_size=1405508, ...}) = 0
mmap2(NULL, 1411496, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x110000
mmap2(0x263000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x153) = 0x263000
mmap2(0x266000, 10664, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x266000
close(3) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7714000
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7713000
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7714b20, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
mprotect(0x263000, 8192, PROT_READ) = 0
mprotect(0x3cf000, 4096, PROT_READ) = 0
mprotect(0x804b000, 4096, PROT_READ) = 0
mprotect(0xf28000, 4096, PROT_READ) = 0
munmap(0xb7715000, 89290) = 0
brk(0) = 0x999b000
brk(0x99bc000) = 0x99bc000
open("/proc/version", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb772a000
read(3, "Linux version 2.6.32-39-generic "..., 1024) = 137
close(3) = 0
munmap(0xb772a000, 4096) = 0
open("/proc/stat", O_RDONLY|O_CLOEXEC) = 3
read(3, "cpu 20603 870 6516 87513 8790 2"..., 8192) = 1156
close(3) = 0
getpid() = 2066
kill(2045, SIGTERM) = 0
exit_group(0) = ?
janius@janius-laptop:~$
Vastaukset 1
Vanhimmat
Nyt on pojalla pönttö aivan sekaisin. Pelkkä raittiusputki ei taida enää auttaa.