読者です 読者をやめる 読者になる 読者になる

臥薪嘗胆

インフラエンジニアのあれこれ

TLPI memo 3

2.15 疑似端末

自分の端末はwででてきた、TTYでわかる

vagrant@precise64:~$ w
 12:53:33 up 0 min,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
vagrant  pts/0    10.0.2.2         12:53    0.00s  0.20s  0.00s w
vagrant@precise64:~$
vagrant@precise64:~$ ls -la /dev/pts/0
crw--w---- 1 vagrant tty 136, 0 Jan 19 12:53 /dev/pts/0

3.1 システムコール

カーネルの機能を利用するAPI

straceにコマンドを渡すと実行されるシステムコールがドバドバ出る

strace ls .

こんなかんじで

execve("/bin/ls", ["ls", "."], [/* 18 vars */]) = 0
brk(0)                                  = 0x10b8000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f723661d000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=18510, ...}) = 0
mmap(NULL, 18510, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f7236618000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)

標準関数(関数)とは

glibcに含まれるもの