ポジローぽけっと

昨日より今日、今日より明日を信じて、トライトライ

第七回スパルタンプログラミング

考えることのできない脳みそを使ってゆっくり勉強日

飲み過ぎたのか、食べ過ぎたからなのか、疲れすぎたのか、考えることができない日だったーー!くそぅ。

P.S. 日曜ものんびり過ごしたのだが、月曜がMAXで仕事が本当につらかった。火曜から少しずつ回復し、水曜にはだいぶ良くなった。

いったいなんなんだ、まったく!ぷんぷん

事前サーベイ

nginx

  • ngx_init_cycle(&init_cycle);
  • ngx_single_process_cycle(cycle);

がメイン?

ライブラリを使わず書いている。

分からなかったこと

  • os/unix/ngx_errno.c 81行目の:failedって何だ? orz.. gotoの行き先だった。

  • strerror()って何だ?

#define ngx_inline inline //って何だ?ngx_regex_malloc_doneの定義時に使っているngx_inlineが何かで調べたら行き着いた。
#define ngx_getpid getpid //って何だ?

lighttpd

  • .yファイルがある。yaccをつかってる?ただmakefileではyacc使ってるか分からなかった。

mattnのhttp-server

  • libuvで非同期IOの実装
  • http-parserで構文解析
  • nginxに比肩?

mighttpd(通称マイティ)

こんなのもあったよってことで記載しておく。

  • haskellの計量スレッド成るものを使って実装
  • nginxに比肩

方針:posix aioを使ってみよう!byいっしー

man

slideshare

使い方調査

stack overflow

構造体名の由来:aiocb:asynchronous I/O control block

のんびり勉強

  • ルータはWAN構築の基礎単位
  • inet_ptonのptonはpresentation to numeric
  • ラッパー関数に例外処理を含めると楽できる p.11
  • htonlはhost to network long, 32bit host byte order
  • htonsはhost to network short, 16bit host byte order
  • iterative server:各クライアントを逐次処理する
  • concurrent server:各クライアントを同時処理する
  • posix:portable operating system interface
  • API:application program interface
  • IETF:the Internet Engineering Task Force
  • UDP:User Datagram Protcol
  • TCP:Transmission Controll Protocol
  • value-result引数はポインタ変数:関数を呼び出すときには値、関数から戻るときには結果となるから
  • value-result引数の顕著な例は、select関数の中3つの引数