0件のコメント[写真:北海道の有珠山頂(うすざん)から望む洞爺湖(とうやこ)と昭和新山]先日、出張で訪れている札幌市内の丸善にいってきた。3階のコンピュータ関係の本棚で「猫語の教科書」という本を発見して反射的に買ってしまった。コンピュータと猫語という一見何の脈絡も感じない2つの言葉。これをコンピュータ関係の本棚に並べた理由は並べた人に聞いてみないとわからない。自分なりに思いつく理由としては・コンピュータ好きにはネコ好きが多いから。正確にはデスクワークとペットというのは相性が良いため。・コンピュータ言語と猫語の言語としての共通性。・冒頭の暗号に関する話。この暗号というアプローチが、コンピュータ(軍事通信)という歴史と重なるため。いずれにせよ、これはAmazonで本を探していては決して巡り会う事はなかったということ。意外性のある情報との出会いという点でリアルの本屋には適わない。電子書籍が登場したころリアルの書店が潰れると言われたが、心配するほど日本では電子書籍が普及していないように思える。WEBとリアルの書店。どちらかが完璧でないからこそ、面白いのだと思った。Piのようにhttpサーバを乗せることも増えてきています。下位のUDP/IP,TCP/IPはOS(Linuxカーネル)の仕事なので、その辺はカーネルのソースを見てください。LighttpdApacheサーバも組み込めるかもしれませんが、今回はApacheより軽量のLighttpdを乗せるところまでを紹介します。いうことで制約の厳しい組み込みでも使えそうです。公式サイトからDLしましょう。今回はクロスコンパイル環境の準備に関してはすっとばします。./configureこの時にarm-none-linux-gnueabiなど組み込み用のアーキテクチャを指定します。設定は/etc/lighttpd.confで行います。Lighttpdのプラグイン開発Lighttpd自体はpoll/epoll/selectというシステムコールを理解することが必要です。lihgttpdの状態遷移図です。各状態の説明は以下の通りです。close)GET/POSTがどのように処理されているかを見てみます。NULL;buffer型はbuffer.hで宣言されています。b->ptrでリクエストを取得できます。buffer;実際にpluginでGETリクエストやPOSTメッセージボディを取得したい場合は一工夫必要です。hookのエントリポイントは以下16箇所あります。up状態遷移図におけるreqendではGETメソッドを取得できます。connection.cでのcon->read_queueでは取得できません。この時点でリクエストはread_queueでなくrequest.requestに格納されています。POSTメッセージはreqendでは取得できません。POSTの場合、状態遷移はreadpostに遷移しメモリか一時ファイルに格納されます。handle_subrequestでlighttpd本体ではrequest.content_lengthでPOSTメッセージがあるか判定しているようです。mod_skeleton_plugin_initに追記していきます。0;}このコードをビルドしてみます。ダイナミックリンクライブラリが作成されます。.laが作成されます)makefile.amを編集します。./configure設定ファイル(/etc/lighttpd/lighttpd.conf)を変更します。(".html")設定したらデーモンを再起動しましょう。アクセスしてみましょう。443のステータスコードが返ってくれば、このプラグインは正常動作しているはずです。サーバも組み込めたので、サーバのコンテンツを返してみましょう。いうことで次回はCGI連携などを書きます。いえば気づいたらSublimetext2のプラグイン管理が楽になってました。詳しくはここを参考に。コマンドからもSublimetext2を使えるようにするためシンボリックリンクを張っておきます。でたらユーザ間で重なっている可能性があります。Elmastudio。