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とかってそーいう路線だよね。そーいうところを目指したい。