いいから殺せ。後はこっちでなんとかするから

昨日、TwitterでUNIXについて語り合っていたら、色々と面白いフィードバックを頂けたので紹介したいと思います。

これは衝撃でした。 サングラスで金メッシュ入りのヒゲ男性が電車の中で「いいから殺せ。大丈夫。後はこっちでなんとかするから」と言っていたらビビりますよね。 (余談ですが「ヒットマン事件簿」を思い出しました)

この発言が発生するトリガーとなったのが以下の発言でした。

みなさまノリノリで、リアルゴルゴ発言以外にも、こんな発言が登場しました。

IT業界って怖いですね〜（棒読み）

何でそうなった？

そもそもの発端は、私が現在執筆中のLinuxネットワークプログラミング書に書いているコラムのための質問でした。 Wiresharkやtcpdumpを利用したパケットキャプチャによる通信プログラムのデバッグを解説する際にプロミスキャスモードとは何かという話を書いていたのですが、その最後にちょっとしたコラムを書くためのブレストとしてTwitterで質問をしました。

で、結局出来上がった原稿は以下のような感じです。 Twitterでコラムの内容を見たいと発言されている方がいらしたので、出版前ですが晒してしまいます。

コラム：ぁゃιぃ UNIX用語 (☆ 「あやしい」の部分は、xa xya イオタ xi です。)





プロミスキャスモードを「無差別モード」と訳す場合が多いのですが、この「Promiscuos」という単語は性的な意味を含む英単語なのでご注意下さい。 たとえば、「promiscuous party」を日本語訳すると「乱交パーティ」になります。



UNIX系の技術用語には非技術者から見ると変なものも色々あります。



プロセスを終了させるコマンドやシステムコールは殺すという意味を持つ「kill」です。 また、同じ名前のプロセス全てを終了させるコマンドで「killall」というのもあります。 さらに、プロセスには親子があり、wait()によって親が看取ってないプロセスはゾンビになります。 これらを組み合わせると、「親が発狂してしまったので子供がゾンビになってしまった」という会話もあり得ます。



さらに、プログラムを異常終了させるための標準Cライブラリ関数にabort()がありますが、このabortという英単語には「中絶」という意味があり、日常会話ではあまり推奨されないかも知れません。



物理メモリ上のデータを一時的に仮想的にメモリとして扱われる別の記憶媒体へと移す行為をswap(スワップ)もしくはスワッピング(swapping)というのもあります。



バックグラウンドで動作するプログラムであるデーモン(daemon)も悪魔という意味が広義では含まれます。 daemonはdemonとは別で、実際にはより広い精霊を含めた存在ですが、両方を同じように扱う人がいますし、テキサスでBSDデーモンシャツを着ていたら悪魔崇拝者と間違われたという笑えないネタもありました。 (daemonに関してはChapter 10参照。Chapter 10には「監獄」という意味を持つjailも登場します)



技術用語も色々ですね。

なお、これはまだ提出前の原稿段階なので最終的に書籍に含まれるかどうかは定かではありませんし、てにをは修正など、文章の校正が多少変更される可能性もあります。 あらかじめご了承下さい。

Linuxネットワークプログラミング本の内容

最後は宣伝になってしまって恐縮ですが、私が書いている(単著)Linuxネットワークプログラミングが来月末ぐらいに発売になる予定です。 これを書いたために、ここ数ヶ月ブログ更新が鈍っています。 まだ原稿を書いているのですが、何とか間に合えば嬉しいと考えています(じゃあ、ブログ書くなという突っ込みは禁止します)。

章立ては以下のような感じです。 getaddrinfo()前提で、inet_addr()やgethostbyname()などは使わないようにということを注意しながら、初心者向けネットワークプログラミング解説書を目指しました。 i.e. 研究室の新人学生に読ませたときに、難し過ぎず簡単過ぎずにある程度喰い付いてくれつつ、本書だけではなく他の書籍や検索エンジンをあたりながら自分で勉強できるようなものを目指して、キーワードを多めに含めたりしました。

インターネットの仕組み

TCP通信の基礎

UDP通信の基礎

ネットワーク情報の取得と設定(ioctl,procファイルシステム)

Netlinkによる情報取得と設定

基本的な通信関連関数（setsockoptなど。エンディアンなどの解説も含む）

プロセス間通信(AF_UNIX,socketpair,pipe,System V IPC)

通信プログラムのデバッグ(Wireshark,tcpdump)

複数のソケットを扱う(主にepoll, ついでにselect,poll)

TCPサーバプログラミング(fork/pthread/epoll+accept,TIME_WAIT,daemon,chroot,syslog)

デュアルスタックプログラミング(IPv6,sockaddr_storage,IPv4 mapped IPv6 Address)

生パケットプログラミング(SOCK_RAWによるping,AF_PACKET,pcap)

マルチキャストプログラミング(IPv4/IPv6マルチキャスト,アドレス選択,SSM,ASMソースフィルタ)

Appendix: IPv4しか使えない関数

なお、このブログエントリは原稿の最後の追い込みからの現実逃避です。。。 原稿書かなきゃ。。。

関連

2007年1月24日のエントリ：UNIXの達人によるセックス

2007年3月13日のエントリ：kill -9 ラップ (現Google社員が「kill -KILL」コマンドに関して熱唱。参考→http://en.wikipedia.org/wiki/Dan_Maynes-Aminzade)

追記

Linuxネットワークプログラミング本が発売されました。

最近のエントリ

過去記事

過去記事一覧