|
E.I.S読者のみなさま、こんにちは。京都マイクロコンピュータの辻です。
京都マイクロコンピュータの辻と言いましても、実はこの4月に転職したばかりです。まだ転職したばかりで「Embedded業界紳士録」に紹介していただき、大変光栄に思っています。本当であれば、弊社社長の山本が「Embedded業界紳士」だと思うのですが、なんの因果か「じゃ書いておいて」と上から言われまして。。。。ともあれ、これを機会に京都マイクロコンピュータの紹介、そして僕のことを紹介させていただきます。
|
 |
|
| 京都マイクロコンピュータ |
京都マイクロコンピュータの設立は1985年(まだ昭和です!)で、既に設立から18年間事業を継続しています。組み込み業界は比較的落ち着いているとはいえ、変化の早いIT業界においては随分と長く事業を行っている会社でしょう。この間、組み込みシステムの開発者向け商品を一貫して開発、販売してきました。初期の頃にはPC向けの拡張カード(PC98向けCPUアクセラレータ、Turbo486など)なども開発、販売したりした事もあります。ただ、この頃は今よりもPCと組み込みの世界、というのはある意味で近かったのかもしれません。ともあれ、弊社では組み込みシステム開発者が使うツールを提供する、という事を継続しています。 |
|
シンプルで速い |
京都マイクロコンピュータの主力商品は、PARTNER-ETUとPARTNER-Jの二つのICEです。PARTNER-ETUはROM-ICE,JTAG-ICE,ROMエミュレータになります。またPARTNER-JはJTAG専用ICEです。このどちらの製品にも共通している特徴が、とにかく速い!のです。ETUの方は、ROMプローブを介した場合には4MByte/secを超えるダウンロードが出来ます。またPARTNER-JのJTAG専用でも、1MByte/secのダウンロードを実現しています。携帯電話をはじめとして、現在の組み込み開発の現場では数メガバイト〜十数メガバイトの世界の物もあります。この高速性は、このような開発現場の効率化に貢献します。前職ではJavaの開発をしていました。PersonalJavaでは数メガバイトの規模になるのですが(携帯向けのCLDC/KVMベースで数100キロバイトです)、前職の社内開発でもPARTNER-ET2を用いており、この高速性で随分とダウンロード待ち時間のイライラから解放されました。同じ物で、ある開発環境ではダウンロードに数十分かかった時には閉口した事があります。また、JTAGの速度も、ほかのJTAG-ICEとは比較にならない速度で、快適に利用できた覚えがあります。また、使い勝手もシンプルで分かりやすい物です。ま、どちらかというと、シンプルすぎて、玄人志向の感じありますが。。。。安定性、高速性、シンプル、という事で、使えば使うほど良さの分かる「質実剛健な道具」という感じです。
|
|
|
|
|
|
|
 |
|
 |
PARTNER-ETU |
|
PARTNER-J |
|
VLINK
|
PARTNER(ETU、J共に)の特徴的な機能に「VLINK」というのがあります。PARTNERはターゲットデバイスとホストPCを繋いでデバッグを実現しているのですが、デバッガという物はメモリを読んだり書いたり、また実行の制御ができます。これら機能をデバッガだけで使うのでなく、ターゲットとPCの間の通信回線として開放したのが「VLINK」機能です。もちろん、組み込み機器が開発完了した最終製品にICEが付くことは無いと思いますので、一般的にはこの機能は開発時専用という事になります。しかし、開発時には、その開発を補助するために様々な機能が求められたりする事もあります。たとえば、実行時の状態をチェックするためにログファイルを作る、という事もVLINKを使えばファイルシステムが無くても実現できます。またネットワークデバイスが無いシステムでも、ネットワーク機能を持たせる事が可能です。もちろん、この速度はPARTNERの高速ダウンロードの仕組みと同じ枠組みを使っていますので、非常に高速です。多くの応用性があるVLINK機能ですが、簡単なサンプルと共にインタフェース仕様を開示していますので、PARTNER-ET2/Jのユーザーであれば誰でも利用する事が可能です。 |
|
| Linux対応 |
| さらにPARTNERはLinux対応を謳っています。Linux対応といっても、デバッガがLinux上で動作するのではありません(もちろん、このニーズがある事も知っています。必要と思われる方は、楽しみにしていて下さい!)。ターゲットデバイスで動作するLinuxシステムを完全にデバッグするための仕組みを提供します。PARTNERがターゲットで動作しているLinuxカーネルを監視し、ローダブルモジュールやアプリケーションをソースデバッグするために必要な情報を解析して、デバッガ利用者に通常の組み込みソフトのデバッグと同じ機能を提供するのです。Linuxを使ったシステムでよく行われるkgdbを用いたり、またそれに手を加えたりなど、ターゲットのLinuxにデバッグするための手を入れる必要は全くありません。LinuxカーネルのソースをKMCが解析して、PARTNERのデバッガの方にLinuxのシステムをデバッグするたに必要な機能を入れているのです。このPARTNERのLinux対応機能を用いれば、一つのデバッガ/ICEでカーネル、ローダブルモジュール、アプリケーションを一体にして完全なデバッグを行う事が出来ます。実際の開発現場では、アプリケーションが実行している時に、それと関連して呼び出されるローダブルモジュールで作られたドライバや、カーネルのデバッグが必要になると思われます。このような時には、非常に強力なデバッグソリューションになります。
|
また、アプリケーションだけをデバッグするなら、gdbserverを用いた方式と似ている、PARTNER-AP/Linuxというデバッガがあります。ターゲット上でptsvrというデバッグエージェントを動作させ(カーネルのptrace()システムコールを利用しています)、ホストPCとはTCP/IPか前記のVLINKを用いて接続して、ホストPCからアプリケーションのロードや実行などのデバッグを行います。
|
| |
なお、これらのLinux対応機能というのは、実はLinuxだけでなくBSD等の他のUNIXシステムでも有効です。もちろん、詳細な作り込みはLinuxをターゲットとして多くは作っていますが、デバッガとしての振る舞いの部分はOS非依存に作り、情報取得するI/F部分をLinuxに合わせて作るという事をしていますので、他のシステムでも比較的簡単に対応できます。実際にリクエストもあり、BSDへの対応も行っています。
|
|
これから |
| 実は上記の「シンプルで速い」「VLINK」「Linux対応」というのは、非常に密接に関連してきます。特にこれからの大規模開発では、非常に重要になってくるのでは、と考えています。大規模になるのですから、ダウンロードが遅いICEでは使い物になりません。OS含めて非常に複雑なシステムになります。開発時にはICEメーカーが提供する機能だけでなく、ユーザーレベルでターゲットの内部をモニタリングするような事もあるかと思います。また、大規模になるがゆえに、MMUを用いた複雑なOSプラットフォームが用いられる事も増えるとおもいます。このような傾向を見たとき、僕たちの提供するPARTNERシリーズが一つの開発現場の改善に役立てるのでは、と考えます。
また、KMCでは「シンプルで速い」というPARTNERのイメージを、より強く印象づけるような製品開発を行っています。あと暫くすると皆様にも発表できると思います。 |
| |
どうして出来るのか
|
さて、KMCはなぜこのような製品が作れるのでしょうか。もちろん凄い技術者たちが揃っているのは言うまでもありません。しかし、それだけでなく、自分たちの製品を自分たちが最も使うヘビーなユーザーである、という事があると思います。イラチの関西人の集まり(関西弁でセッカチの事をイラチと言います。もちろん僕もイラチです)が使うのですから、遅いのが許される訳がありません。またLinux対応にしても、KMCの基盤向けへのLinuxのポーティングを自分たちで(もちろん、社長さんが先頭を切って!)したからこそ、きちんと対応できるデバッガが必要になるのです。必要は発明の母といいますが、まさにそれを表していると言えます。上辺だけの機能追加だけでなく、真に使い倒して満足できる道具を作る、そんな考えが一貫して開発現場にはあります。
|
|
東京オフィス |
またKMCではこの5月の半ばに東京オフィスを開設しました。組み込みも以前に比べると随分と幅広い技術を相手にしなくてはならない時代になり、それに対応するためのテクニカルマーケティングを主な役割とするオフィスを作る事にしました。半導体メーカーさんやツールベンダさんとの協業、また各種協会活動などを通して、京都マイクロコンピュータの情報発信、情報収集の窓口になり、それを元に次ぎの製品開発戦略を考える、というのがミッションです。今までの「質実剛健」「頑固一徹」の素晴らしい商品に、少し世の中の流れを取り入れて、今以上に開発者の皆様が使いやすいツール群を提供してければ、と考えています。 |
|
自己紹介 |
最後に、僕の事を少し紹介させて頂きます。
1966年産まれ丙午の36歳です(今年で37歳になります)。今までの「Embedded業界紳士録」の方々に比べると、まだまだヒヨッコで気恥ずかしいばかりです。
京都マイクロコンピュータの前は、株式会社アプリックスで開発部長としてJBlendの開発を行っていました。それより前は京都の小さなソフト会社で受託請負で組み込みの開発をしていました。それ以前はフリーターでした。読者の方々で僕のことを知ってらっしゃるとすると、おそらくはアプリックス時代の事が殆でしょう。
|
|
フリーターの頃
|
僕が20代前半の頃はフリーターでした。世の中はちょうどバブル真っ盛りからはじける頃、という感じでしょうか。
フリーターの頃もアルバイトでパソコンのプログラムを書いたりしていたのですが、主なアルバイトは食堂で料理したり、深夜の駅で掃除をしたり、という感じでした。コンピュータはアルバイトで貯めたお金でPC98互換機(お金が無かったのです)を買って、それで独学でプログラムしていました。ただし、Basicなどで書いていて、まだまアマチュア全開で、独学で学んだというほどでもありません。どちらかというと、この20代前半には、様々なアルバイトを通して、働くという事の意味、特に厳しさを教わったと思います。今でも仕事に対する基本的な考え方は、この時代に得たものです。
|
|
受託の頃 |
ちょうど20代半ばで京都のソフトハウスに就職しました。この20代後半で、まさにバリバリのコンピュータエンジニアとして多く実開発を行い、また多くの知識などを学びました。入った頃はCでプログラムも書いた事無かったのですが、実践で必要という事で身につけました。変な話ですが、必要に応じて体で学んだって感じです。事前に体系的に学んだ、という事はしませんでした(というか、出来るという前提で仕事に放り込まれました。随分と乱暴なものです)。ただし、必ず新しい事とかを現場で学んだ後には書物などで体系的に確認する、という形で自分の血肉にしていくという事をしました。この時代の一番大きな仕事が、某大手メーカーが作っていたNTT向けの伝送装置の基本OSです。Gmicro300というTRON
CPUの上で動作するCTRON OSを開発していました。この仕事は、今の僕のエンジニアとしての原点ともいえる仕事で、OSの開発という事で、非常に多くの事を学びました。確かに組み込みなのですが、規模や考え方は当時の一般的な組み込みとは全く異質で、MMUや仮想メモリが当たり前の世界です。スタック突き抜けたら、自動的に1ページ4Kbyteを貼り付け、アプリケーションを正常に動作させ続けるなんて事もしていました。必要なスタックのサイズを計算して128バイトに押さえる、というような一般的な組み込みとは全く違った世界でした。基本的な考え方はIBM360アーキテクチャと変わらないと思うのですが、これを実仕事として経験できた事は、その後のコンピュータの進化、組み込み開発の大規模化を考えると大きかったと思います。 |
|
アプリックスの頃 |
ちょうど30歳になってすぐにアプリックスに転職しました。アプリックスでは組み込み向けJavaであるJBlendの開発をしていました。当初は一人の開発スタッフとしてデバイスドライバを書いたり、通信プロトコルを書いたり、またJavaのコードを書いたり、JTRONの実装をしたりと、まさに開発に没頭していました。また、組み込みでJavaの実用性という認知度を上げるために、多くのセミナーや展示会などでプレゼンしたりもしていました。3年弱ぐらいたった頃から「携帯電話でJava」というのが急速に世の中で注目を浴び始めました。ちょうどその頃から、僕の仕事は現場での開発主体から、対外的な仕事がメインに変わっていき、また現場のスタッフを纏めるチームリーダーとして仕事をするようになりました。
アプリックスでは、会社やJBlendの成長とともに、自分を成長させてもらい、そして自分がまた成長させるという、とても良い循環が作れたのでは、と思っています。もちろん、全てがマルだった訳ではなく、多くの失敗もし、多くの方々にご迷惑もかけた事もあります。ただ、組み込みでJavaが使えるようになったという事、そしてJBlendの認知度、という事を考えれば一つの成長はあったのではと思っています。
アプリックス時代には、自分たちの製品を作り、それを供給して責任を果たすという事、の厳しさや面白さを学びました。厳しさという面では、人月でお金が入ってくる受託とは全く違う厳しさです。特に最初の数年は、会社もよく諦めずに続けさせてくれたと思います。継続できたからこそJBlendは認知されたと思のですが、その継続には全社を挙げた大変大きな苦労と協力があったかと思います。しかし、それがあったからこそ、あそこまでJBlendが行けたのだと思います。
またアプリックス時代には、非常に多くの方々と知り合う事ができました。これも自分にとっては、大きな物でした。やはり、これも僕に対外的にも重要なポジションを会社が任せてくれたからだと思います。
|
|
仕事に対する考え方 |
僕の仕事に対する基本的な考え方は「仕事は人と人がするもの」です。お金やテクノロジーというのは、有限なものだと思います。革新的な技術であっても、特許があっても時が過ぎれば代わるものが出てくるのが世の常です。お金なんて使ってしまえばスグに無くなります。しかし、人と人との関係は、正しくメンテナンス(変な言い方ですよね)しておけば、永遠にする事だって出来ると思います。また、自分自身のモチベーションを高く維持して、常に新しい事に取り組んでいけば、自分たちで新しい物が産み出せる可能性があります。もちろんお金や技術も大切なのですが、それを産み出している人というが、やはり最も大きなキーではないかと思います。
今の京都マイクロコンピュータでは、今ある技術やお金に固執せず、新しい技術にチャレンジし続ける風土があります。18年間もチャレンジし続けているのですから、蓄積された資産は大きい物があります。過去の成功や今の製品だけにとらわれずに、常に未来を見た製品開発にチャレンジしています。これは一緒に仕事をさせて頂こうと思った大きな要因かもしれません。
|
| |
家族 |
| 最後に、僕の大切な家族を紹介します。一人の妻と(当たり前ですね)、3人の娘たちがいます。上の二人は双子の女の子で、下はこの6月に産まれたばかりの0歳児です(書いている今は、まだ産まれてません。あと数日の予定です)。僕以外は女ばかりと、とてもかしましい世界です。子供も小さいので、賑やかな事、賑やかな事。ただ、その賑やかさや、うるさいだけではなく、何か自分に必要な賑やかさ、という感じです。ただ、うちのチビさんたちは、コンピュータを見ると「パパの仕事だ」という事で良い印象がなさそうです。
大切な妻と子供たちに支えられて仕事が出来ているわけですから、彼女たち(そう男は僕一人です)が幸せになれるよう、これからもチャレンジし続けようと思います。
# さて、どうやって「あなたは好きなことしてるだけじゃん!いっつも家を放っておいて。。。」という意見を払拭していけば良いのか。。。。
# 諸先輩方々、何かお知恵を下さい! (メール:kunihiko@kmckk.co.jp)
|
|
| |