IL: 失われたプロトコル
- 1. IL:
oraccha
Plan9 http://d.hatena.ne.jp/oraccha/
2010 5 8 VM
- 2. Ken Thompson
Q UNIX
A creat(2) ”e”
Ask a google engineer. Ken Thompson,
http://www.google.com/moderator/#15/
e=7f3&t=7f3.44&f=7f3.5046
- 6. rx(1):
• Usage: rx machine command arg...
plug
% rx plug echo 1 2 3 | sed s/1/x/
x23
% echo 1 2 3 | rx plug sed s/1/x/
cpu(1)
- 7. rx(1) over IL
• rx close
0 write EOF
TCP 0 write
% echo 1 2 3 | rx il!plug!17009 sed s/1/x/
x23
% echo 1 2 3 | rx il!plug!17009 sed s/1/x/ |
sed s/2/y/
xy3
- 8. TCP
• TCP
• shutdown(2)
• rsh EOF
• Plan 9 ... orz
- 10. IL
•
• /n/sources/extra/il.c
• http://lufia.org/plan9/doc/inst/il.html
• ndb/cs.c
cpu% diff cs.c.orig cs.c
164a165
>
{ "il",
iplookup,
iptrans,
},
1
- 11. • TCP
•
• IL SCTP DCCP
• L4
•
SCTP: Stream Control Transport Protocol
DCCP: Data Congestion Control Protocol
- 12. Ken Thompson
Q Plan 9
A OS
Ask a google engineer. Ken Thompson,
http://www.google.com/moderator/#15/
e=7f3&t=7f3.44&f=7f3.5046
- 14. IL/IP
0 31
Header
Version length TOS Length
Identifier 0 DF MF Fragment offset
TTL Protocol Header checksum
Source IP address
Destination IP address
IL checksum Packet length
Packet type Special Source port
Destination port Sequence id
Sequence id (cont.) Acked sequence
Acked sequence (cont.) -
- 16. write(2) read(2)
ip/devip.c ipwrite ipread
wq rq
ip/il.c ilkick iliput
ip/ip.c ipoput4 ipiput4
ip/ethermedium.c etherbwrite etherread4
etherbwrite
pc/devether.c etheroq
in
oq
etheriq
pc/etherxxxx.c transmit interrupt