この記事は以下の書籍を参考にしています。
『Software Design [別冊] Linux ブートキャンプ』(p101)

ソケット は具体的には ソケットファイル です。

ソケットファイルを確認

lsof -P -n -i:8000

COMMAND    PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 1382 root    4u  IPv4  30221      0t0  TCP *:8000 (LISTEN)
docker-pr 1388 root    4u  IPv6  30230      0t0  TCP *:8000 (LISTEN)

LISTEN している PID を調べます。

↑で調べた PID の FD は /proc/1382/fd ディレクトリに格納されています。

ls -al /proc/1382/fd

total 0
dr-x------ 2 root root  0 Jul 16 16:48 ./
dr-xr-xr-x 9 root root  0 Jul 16 16:48 ../
......
l-wx------ 1 root root 64 Jul 16 16:48 2 -> /dev/null
lrwx------ 1 root root 64 Jul 16 16:48 4 -> 'socket:[30221]'
lrwx------ 1 root root 64 Jul 16 16:48 6 -> 'anon_inode:[eventpoll]'
......

上記の 4 -> 'socket:[30221]' が示す inode 番号(30221)を /proc/net/tcp(または /proc/1382/net/tcp )の内容と照合すると、そのソケットが使用しているローカルアドレス・ポートおよび接続状態を確認できます。
つまりソケットの実体そのものがこのファイルというわけではなく、/proc/net/tcp はカーネルが管理するソケット一覧を inode 番号で参照できる形で公開しているものです。

ref.

システムコール

代表的なシステムコールは以下のとおりです。

  • socket
  • bind
  • listen
  • connect
  • accept
  • read
  • write

システムコールは以下を参照してください。
SYSCALLS