先日、サイボウズラボの開発合宿に参加させていただきました。関係者の方々、どうもありがとうございました。

で、ぼくは開発テーマとして「KOZOSのGDB対応」というのをやってみた。合宿は1泊2日で初日は夜からの参加だったのだがまあなんとかそれっぽく動くところまではいったので早速公開。

(H8移植編その2第16回)GDB対応をしてみた

とりあえずブレークポイントを張ってブレークすることはできた。

合宿のほうはもくもく会に似た雰囲気で、ガリガリ書くことができてとても充実していた。さすがにみなさん開発者なのでもくもくガリガリ書いていて、ぼくとしてはとても集中できて良い意味で緊張感のある、心地良い環境だった。

あと最後の発表では、さすがにみなさんレベル高いな~と思い知らされた。もっと勉強しないといかんなあ。
AD

KOZOSでのwebサーバの動作ですが、実機で動作できるようにしました。(何箇所か修正必要だった)

詳しくは以下を参照してください。

「(H8移植編その2第7回)ROM化と実機でwebサーバを動作させた」


AD
えー,ようやくKOZOSでTCP/IPがだいたい動くようになりました.で,KOZOSで簡単なwebサーバが動作するようになりました.

興味のあるかたはいじってみてください.FreeBSDとの接続と,あとシミュレータでの動作しか確認していません.

ソースコードのベースは「12ステップ本」のもので,さらにいろいろ機能追加した形になっています.
OSC新潟では実機での動作のデモをしたいと思います.

AD

KOZOSのIP通信対応

KOZOSでIP通信ができるようになった


いや、もともとできてはいたのだけどかなりやっつけの実装だったので、TCP/IPの実装に向けてきれいにごっそり書き直した。KOZOS→PCとその逆の両方向に通信可能。あとシミュレータでも動作可能。ていうかシミュレータでしか動作確認していない。シミュレータ超便利だ。


もうちょいでTCPが動きそう。楽しみだ~


(注意)このブログは本家のほうの文章部分のみの転載です.ソースコードの配布,画像などについては本家のほうを参照してください.文章中のリンク先は面倒なのですべて本家のほうに変換してしまっているのでご注意ください.

実は今までちょ~重要なのだけどあまり考えていなかった点について,今回は考えてみよう.それは,「ライセンス」だ.

日本国の法律では,著作物は作成した時点で自動的に著作権が発生し,それを放棄することはできない(のだと思った).なので,「このソフトウエアは著作権を放棄しています」といういわゆる「パブリック・ドメイン」というものは,日本の法律ではあり得ない.

で,KOZOSはオープンソースでありフリーソフトウエアなので使いたい人が自由に使ってしまって構わない.なのだけど,KOZOSではいままではとくにライセンス条項は明記していなかった.なので,厳密に言うと「使いたくてもライセンスが明記していないので使っていいのかよくわからないので,作者である坂井に確認してからでないと使えないもの」であったわけだ.(まあ,使ってしまって構わないけどね)

で,まあ今後発展させていくことも考えると,やっぱしここらでライセンスをはっきり決めておかないといけない.ということでライセンスをどうしようか,ちょっと考えてみた.
  • GPLにする.
  • BSDライセンスにする.
  • KL-01にする.
  • 独自ライセンスにする.
まずGPLについてなのだけど,これはもともとFSFの主宰者である Richard Stallman 氏が提唱したライセンスだ.もともとぼくは昔フリーソフトウエアを何本か書いていた時代があったのだけど,最初は適当な独自ライセンスにしていたのだけど,そのうちGPLにするようになった.理由は,単にライセンスを考えるのが面倒だったのと,とりあえずGPLにしておけば,フリーソフトウエアであることが保証されるからだ.

ただ,組み込み系ではGPLはちょっと難しい点がある.というのはGPLにすると,そのソースコードを静的リンクしたすべてのソースコードについて,ソースコード公開の義務が発生する.で,これは企業では嫌がられることが多い(ノウハウが流れ出てしまったり,セキュリティホールが丸見えだったり,改造ファームを作られてしまったりするから).

これはモジュールを別にしてダイナミックローディングしたりすることで回避できたりするようなのだけど,KOZOSはOSなのでファームウエアの根幹部分にあり,そんなことは当然できない.まあKOZOSは実用OSというよりホビー用途という意味合いが強いので,これをそのまま実用OSとして組み込んで使うような企業もないとは思うけど,そーいう理由でKOZOSにGPLは望ましくない.

こういった理由で組み込みの世界では,GPLがけっこう嫌がられたり悪く言われたりすることは多いのだけど,個人的にはそういうのはどうかと思う.というのは,フリーソフトウエアの製作者というのは,その人なりのいろんな思いがあって,ソフトウエアを作っている.ライセンスというのは,その人がそのソフトウエアをどのように使ってほしいのかという,思いの結晶なのだ.

GPLにそのような制限があるのは,フリーソフトウエアがフリーソフトウエアのままであり続けられるようにという理念があるためだ.なので悪く言うのは筋違いだし,そんなに嫌なら使わずに,自分で作るべきだ.

フリーソフトウエアって,どうしても製作者の顔が見えないというか,それを作っている人がいるということを意識しないで(はじめからそのへんにあるものとして)使ってしまうひとがけっこう多いものだけど,それを作っている人は必ずいる.なので,他人がそのライセンスについて,どうこう言うのは見当違いだ.「あのソフトは糞」とか「あのソフトはGPLだから役に立たねー」なんて気軽に言っていいものではない.

たとえば,ボランティアで公園の掃除をすることを考えてほしい.掃除してくれている人に対して,「あの掃除のしかたじゃ効率悪すぎ,バカ」とか「あんな掃除のしかたじゃキレイにならねーよ」なんて言っている人がいたとしたら,それって最低だとおもうじゃあないですか.

で,ライセンスをどうするかに話を戻すと,次に考えられるのはBSDライセンスだ.これはカリフォルニア大学バークレー校がBSDの公開の際に付加したライセンスで,こちらにはソースコード公開の義務は無い.ただ,使ったら使ったということを明記しなければならないというものだ.

次にKL-01なのだけど,これはOSASKで使用されているライセンスなのだけど,ライセンス条項としてはかなり緩い.ただ特許の悪用には注意が配られていて,特許の取得は禁止されている.まあ各ライセンスについては,ぼくも法律的なことはあまり詳しくないのと,あまり無責任なことは書きたくないので,詳しくはそれぞれ調べてほしい.

最後に独自ライセンスにする,という手もある.まあでも法律的なことまで考えて書くとなるとちょっと難しい面があるので,既存のライセンスを流用するのがいいだろう.

で,KOZOSのライセンスをどうしようかいろいろ考えたのだけど,結局KL-01にすることにした.というのは,すでにライセンスを付加せずに公開してしまっているので,いまさらGPLとかにしてしまうと,すでに使っている人に対してなんか微妙だし,なによりも,自由に使ってほしいと思うからだ.

ただしデバッグスタブに関しては GDB からの流用なので,そのままのライセンス(パブリック・ドメインとして,著作権が放棄されている)とする.ただ,著作者情報くらいは入れておいたほうがいいかも.

本来はファイルのひとつひとつすべてに先頭にライセンス条項を埋め込んでおくべきなのだけど,すでに公開してしまっているソースコードを変更するのは避けたいので,とりあえずはディレクトリ内にライセンスに関する説明とKL-01の原文を置くことにする.(これは,今までの公開ぶんすべてについて,そのようにしよう)

ちなみにこれらの文章はすべて日本語だ.まあ英語で書いてあるとかっこいいのだけど,個人的には,やはり日本語で書くべきだと思う.ていうか,製作者が自身の母国語で書くべきだと思う.というのは,ライセンスというのは法律文書なので,一言一言の正確さが非常に重要だ.見ぶり手ぶりでなんとかニュアンスが伝わればいい,というものではない.なので,製作者自身がきちんと内容を理解できて,言葉のニュアンスなどもわかるネイティブな言葉で書くべきだ.

まあ日本語で書くと,ライセンスくらい英語で書けとか,英訳したものも添付しろとか言われそうだけど,そーいう意味で,個人的には日本語のみで書くべきだと思う.英語に不慣れな人が書いて,日本語版と英語版に違いがあったりしても困るからね.製作者自身もライセンス条項を正確に読めないのでは話にならんし.英語じゃないと外国の人が使いたいときに困るよとかいう人もいるかもしれないが,製作者が日本人なのだから,使いたいなら日本語を読むべきだ.逆の立場のときは,日本語訳なんて親切につけといてくれるわけではないわけだしね.