TCP/IP実装

テーマ:

Arduinoをやるって言ってたのだけど、なんか気が向いたのでKOZOS/H8にTCP/IPプロトコルスタックを実装しようとしています。いつもどおり、フルスクラッチです。とりあえずSYNを受けてACKを返してコネクションが確立するとこまでは実装できました。

組み込み向けのTCP/IPスタックだとTINET が有名ですが、こちらはフルスクラッチで自作するという利点を活かして、実用性はあまり考えずに「TCP/IPの内部動作を理解するための教材用」という方向性で行こうかなと思っています。なのでKOZOSと同様に、極力シンプルなソースコード構成で、必要機能のみの実装にしようかなと。


TINETに関してはTOPPERSプロジェクト中級実装セミナー教材 で利用されているので、組み込みのTCP/IPについて勉強したければこちらを利用するという方法も、もちろんあります。ただしこちらはあくまで「TOPPERS/JSPカーネルとTINETというすでに存在するものを利用して、TCP/IPを動かす」という内容のものです。つまり、TCP/IPを「作る」のでなく、「使う」ための教材です。


だからといってもちろんTOPPERSやTINETを否定するわけではなく、これらはとても有用な教材です。ていうか素晴らしいです。ただ、目の前のものがいったいどのようにして動いているのか、低レイヤーまで突き詰めて知らないと気がすまないという奇特な人はいつの時代もいるもので、そーいう人たち向けに「TCP/IPをゼロからフルスクラッチで実装してみる」というものがあっても面白いのではないかと思う。


たとえば上で紹介したTINETのページを見ると最新リリースの機能概要が書いてあって、すごくいっぱい機能があって実用向けにはすごくいいなーと思うのだけど、逆にこれを見て「ああ、自分で趣味のレベルでTCP/IPを実装するなんて、夢のまた夢かしら...」って思っちゃう人もいると思うんだよね。でも機能をしぼればそんなことは無くて、個人レベル、趣味レベルでも実装できる(んではないか)と思うし、それが示せれば、じゃあその内部構造を読んで勉強してみようかなとか、自分も作ってみようかなって人が出てくるんじゃないかと思うんだよね。


最終的にはOS含めて3000行以内くらいで実装できて、組込みOS本の続編みたいな感じで、また本が書ければいいなあ。「6ステップで作る! 組込みTCP/IP自作入門」とかいう本があったら面白いと思いませんか!?(そんなの私だけ?)


個人的には、TOPPERSプロジェクトの教材はとてもいいのだけど、軽く読んだ感じだと、やはり教えてくれる人がいないと厳しいというか、独学で頑張るにはちょっと難しいかな、と思う。なので本屋に行けば初心者向けの本が売ってて、さらにマイコンボードに触ったことの無い人や、組み込みやOSの予備知識がまったく無い人でもパッと試せて動くものが見れるような教材というか環境があるといいと思うんだよね。本屋で本買ってきて、そのとおりにちょっと動かしてみたらWebサーバとかが動いて、で、ソースコードもOS込みで3000行程度なのでなんか読んだり改造したりする気になって、教えてくれる人がいなくても気軽な感じでいろいろいじったりできるようなものがあるといいなと思うのだ。


Arduinoとかってそーいう路線だよね。そーいうところを目指したい。


AD

カーネル/VM探検隊 というおもしろそうな勉強会があるようです。


ということで、2010/05/08の第四回 カーネル/VM探検隊 に参加して何かしゃべってこようかと思います。組み込みOS自作について、何かおもしろいことしゃべれたらいいなあと思っています。


見たところ汎用OSメインの勉強会のようなので、組み込み系の話は新鮮なのではないかと。。。


AD

KOZOS/H8でLANポートを利用して、ネットワーク接続できた。

詳しくは(H8移植編その2第4回)ネットワークに接続しよう を参照。


これでwebサーバを動かすためのベースは整った。あとはTCP/IPを実装して、サーバ機能を実装して、で、サーバを作成するだけ。OSC仙台までには十分間に合いそう。


LANに繋がると、なかなか可能性が広がるね。


AD
KOZOS/H8でタイマ機能を追加して,タイマを動作させてみた.
詳しくは(H8移植編その2第1回)タイマを動かしてみよう を参照.

今までは本家ホームページに書いたことをこちらにコピペしていたのだけど,なんか無駄だし混乱の元になるので今後はコピペは止めて,広報するだけにします.

なのでKOZOSに関する情報は,本家ホームページ のほうを参照するようにしてください.

KOZOS/arduino

テーマ:

組み込みOS本がひと段落してしばらく休憩していたのだけど、そろそろまた活動を再開します。


次の開発だけど、書籍用KOZOS/H8を発展させていくという案もあるのだけどとりあえず動作機種を増やしたいということで、arduinoに移植してみようかと思っています。うまくいけば大人の科学のarduino互換ボード で自作組み込みOSを動かせるということになるので、面白いんではないかと。


ちなみにarduinoはIDE上で専用のプログラミング言語を使ってプログラムを書くのが普通の使い方なのだけど、こちらはgccをベタで使って実装するつもり。まあIDE使う人からすれば「なんでわざわざそんなことを。。。」って感じかもしれないけど、そのほうがAVRの動作がよくわかるし面白いんではないかと。