ソフトウェア完全自作のWebサーバを動かしてみよう:H8マイコンボードで動作する組み込みOSを自作してみよう!(7)(4/4 ページ)
本連載もついに最終回。今回はTCP/IPを実装し、最終目標である「ソフトウェア完全自作のWebサーバ」を動作させる。その手順を詳しく紹介する。
7.Webサーバの動作を見てみよう
それでは、最終目標の“ソフトウェア完全自作のWebサーバ”をマイコンボード上で動作させてみましょう。
まずは上述したWebサイトから「h8_2_06」のソースコードをダウンロードし、ビルドします。ビルドと起動の手順は前回までと同様です。ビルド後のモジュールをマイコンボードに転送し、さらにPCとマイコンボードを、ハブを経由してLANケーブルで接続します。
前回同様、KOZOS側のIPアドレスは「192.168.10.16」です。PC上でWebブラウザを立ち上げて、http://192.168.10.16にアクセスしてみてください。
これで、Webブラウザ上にホームページ(Webサイト)が表示されるはずです。これはつまり、TCP/IPで接続し、ソフトウェア完全自作のWebサーバが動作しているわけです。感動ですね!
では「KOZOSとは?」「KOZOSの現状」「組み込みOSを作ってみませんか?」の3つのリンクを順番にクリックしてみてみましょう。図6〜図8のように画面が遷移するはずです。
今回実装したWebサーバは、まだ不安定なところもあり、TCP/IPの動作も不十分ではありますが、このように“動いているもの”を実際に見ることができます。
8.おわりに
さて、本連載では“フルスクラッチの自作Webサーバを動かすこと”を目標として、「Hello World」プログラムを動作させるところから開始し、自作の簡単なブートローダー、自作のタイニーなOSカーネル、自作のTCP/IPスタックと、順を追って実装してきました。
これらは機能は、いずれも数百行程度のシンプルなものです。実用としては不十分かもしれませんが、「動作するものを取りあえず見てみたい」というための最低限の機能は持っています。
前述したように、KOZOSの最終目標は「組み込み向けOSのセットならば、これくらいの機能は持っているだろう」という機能をおのおの数百行程度で一通りサンプル実装し、コンパクトで、読みやすく・いじりやすく・試しやすい学習用の組み込みOS環境を提供することです。学習向けの組み込みOSとして、中高生や大学生、高専生、若手エンジニアの皆さんに活用して頂ければと思います。
KOZOSならばソースコード量はせいぜい数千行のレベルですから、たとえ教えてくれる人がいないような独習の状態であったとしても、内部の細かい動作まで完全に理解することが可能だと思います。カーネルの内部動作を理解した上で独自システムコールを追加することなども簡単に行えます。不備ややりたいことがあったときには、OSのカーネルに直接手を入れてOSレベルで改造するようなこともできます。OSをブラックボックスにするのではなく、プログラミングの対象の1つにできるわけです。これはとてもクリエイティブでエキサイティングなことだと思います。
また本当に高性能・高機能・高品質・高セキュリティ、そして低価格な製品、つまり「他にない素晴らしい製品」を作ろうとするならば、システムの階層単位に閉じた個別のチューニングでなく、OSも含めてのシステム全域を見渡した全体チューニング・協調チューニングが必要になります。
組み込みソフトウェアの成熟やLinuxの組み込み分野への普及により、高機能な組み込み製品をスピーディに安価に製作できるようにはなってきましたが、これは「誰でも作れる」「どれも似たような製品になる」ということでもあり、付加価値が付けにくくなっているともいえます。それも製品中の単機能の付加価値ではなく、「システム全体としての付加価値“が”」です。
こうしたことからも、OS内部の理解は大変重要であり、独自OSの開発なども視野に入れたシステム設計も場合によっては有用なこともあるかもしれません。アプリケーションレベルで実現しようとしたら非常に困難なことでも、OSのカーネルレベルならばずっと簡便に実装できるようなことも多くあります(例として、デバッグ機能やセキュリティ機能はそうだと思います)。「OSはありモノ」というイメージが強いですが、ソフトウェアの基幹部分であるOSをブラックボックス化せずに、機能開発やチューニングの対象の1つにすることは、国産製品が海外と競争していくために今後重要なポイントのように思います。
KOZOSは今後も開発を続けていく予定です。各種イベントや勉強会などにも可能な範囲で積極的に参加していきます。本稿執筆時点では、2012年2月の大分でのオープンソースカンファレンス、さらに3月の東京と愛媛でのオープンソースカンファレンスに出展予定です。セミナーなどの予定もありますし、出展活動は今後も継続していくつもりですので、興味のある方はぜひこうしたイベントなどに参加してみてください。(連載完)
筆者紹介:
坂井弘亮(さかいひろあき)
某企業でネットワーク系の開発を行いながら、個人で組み込みOS「KOZOS」の開発や書籍/雑誌記事執筆、各種セミナーでの発表やイベント出展、勉強会の開催など多方面で活動中。IPAセキュリティ&プログラミングキャンプ講師(2010〜)。著書は「12ステップで作る組込みOS自作入門」など多数。
Copyright © ITmedia, Inc. All Rights Reserved.