吉本晃のブログ:コラム

今日から、Mobile World Congress(らしい)

先週の終わりごろから、FBつながりの、かつての同僚、後輩達、著名なITライターさん達のバルセロナ入りが伝えられてくる。 そういえば、バルセロナで、Mobile World Congressが始まるのだなと。

昨年まで、8年連続(3つくらい違った立場で)参加し、会場を忙しく歩きまわりながら、一日、5-6件の打ち合わせをこなしていた事を懐かしく思いだす。

LinuxベースのPFの拡販+パートナー探し打ち合わせ、モバイル事業者として、OEM(メーカのこと)、ソフトウェアベンダー、チップベンダー、さらには、欧米のオペレータさん達と、サービスロードマップ、協業に関して打ち合わせたこと、最後は、チップセットを含めた携帯プラットフォームの商談で、世界各国のOEM、オペレータさんに自社ブースに来て貰って、一日中デモ&プレゼンをしたこと。 全てが、昨日のことのように、思い出される。

この展示・商談会は、本来は、最新のモバイル技術(特に欧州のGSM系を中心に)を展示する展示会だったのが、一時期は、大きな進展はなく、単なる商談の場として重宝されるだけになっていたのだが(裏では、GSM Associationというグローバルな事業者団体の会合が平行して進められているが)、スマフォ、LTEの登場で、最近、また、にぎやかになったように感じていた。 その間、出展者は大きく変わり、大手だったNOKIA、Siemens、ALCATELというところが消え、その跡地には、Samsung,LGE、Huawei、ZTEという中国、韓国勢がどっしり構え、一時期大きくなりかけた日本勢は、いつのまにか、こじんまり展示というようになっていった。 技術の進展とは別に、こうした業界の変化を実感するのも興味深いものであり、それにつれて、こちらが打ち合わせを行う相手も変わって行ったのを"残念な思い"と合わせて、よく覚えている。

さて、そういう思い出はとにかくとして、今年は、どんな発表があるのかというところに興味があるが、どうも、これまでの前哨戦的な発表合戦から見ると、Wearable端末、IoTというのがキーワードになりそうである。 スマフォをベースにして、時計とか、HMDとか、健康用のリストバンドとか、そんな物を体につけてクラウドと連携して、新しいサービスを模索するというものが、Wearable。 IoTとは、なんでも、Internetにつなげてしまえという話で、通信モジュール+家電だったり、車だったり、監視系だったり、色々なセンサーに通信モジュールをつけて、これも、Bigdataとして収集されたものから、何がしかの新サービス、金儲けネタを探そうというものである。 特に、車系は、昨年から話題になりつつあり、今年は、かなり出るのではないかと思われる。

こうなると、ネットのトラフィック量がさらに増すことになり、これをサポートするためには、モバイル事業者は、さらにネットワークを充実させないといけないし、周波数の有効利用を図らないといけない。 それも、それほど費用をかけずに・・・・というところで、インフラ技術の展示も色々ありそうだ(SDNとか)。 自分ではいけない代わりに、最近は、SNSを始め、便利なものが色々あるので、これらを参照しながら、主観的な(偏った?)コメントを出して行きたい。

カテゴリ:
コラム

Tizen延期?

ずっと、思うところがあって、ブログは、更新しないでいたが、今日になって、新聞に気になるキーワードが出ていたので、ちょっと書いてみる気になった。 (今回のコメントは、完全に、個人のコメントで、会社とは、全く関係がありませんので、念のため)

それは、昨年のMWCで、にわかに第三の携帯OSの争いというようなイメージで報道されたTizenのドコモデビューがさらに延期というニュースである。 そもそも、私に言わせれば、第三でもなんでもない。 元々、Linuxのプラットフォーム(PF)は、10年以上前から研究されていたもので、技術的にはAndroidだってその派生にしか過ぎないと思っている。 誰が、どういう狙いで作ってきたかというところだけが違っていて、Tizenは、伝統的な事業者+携帯メーカという仕組みの中で、開発されてきた種々のLinux PFが集約されたものである。 Maemo,Moblinそこから発展したMeego。 MOAP(L)、Samsung Linux PF、Motorola Linux PFから発展したLimo、それらが一緒になったのがTizenであり、"OS"としては、Apple/Googleに対抗するものとは言えるが、技術的な対抗ではなくて、ビジネスモデル的に対抗するための道具であったはず。 つまり、昔のように、事業者が力を取り戻すために・・・言ってみれば、このTizenが昔からった第一のビジネスモデル、Appleが第二で、Googleが第三のビジネスモデルなのかなと。

それが、ドコモからiPhoneが出て、その結果として、新規加入者増というKPIで、ドコモがトップになった途端に延期というのは、第一には、戻らないということを示しているのだろうか? もちろん、スマフォ全体量が変わらない一方で、iPhoneが増えたということは間違いないので、それ以外のスマフォ量は減っているはずで、そこに、新OSが入っていく隙間はないというのは、その通りだけど、元々、どういう思想で始めたんだっけと疑問を持たざるを得ない。(10年前は、開発効率化のためのLinuxだったけど、Tizenは、意味が違うと思っていた)

一方で、未だに、ガラケー(ここではFeature Phoneのこと)は出すという話もあり(そもそも日本では、ガラケーとFeature Phoneが混同されているようであるが・・・私に言わせれば、世界最高のガラケーはiPhoneなのだけど=垂直統合という意味でも)、Tizenあたりは、それにはとっても向いていたはずなのに、不思議な話に聞こえてならない。 FPを継続するためのチップセットが、そろそろライフを終え(ということは、私がかつてやった仕事も、世の中から消えていくことになるが)、スマフォと同じチップでFPという話も、もれ聞こえてくる。 そうなるとお手軽なのは、AndroidベースのFPだろうが、それでは、電力消費の問題は片付かないし、ビジネスモデル的に、Googleの傘下に入るだけ。

もう、携帯の世界には、関わっていないにも関わらず、やはり、こういうニュースに接すると、一言、言いたくなってしまうのは、ずっと直りそうにない。

※ちなみに、Tizenは、他の製品では、すでに世の中に出ているので、技術的に問題は片付いているというのは、某所から聞いているので、今回の延期が、技術問題でないことは間違いない。

 

カテゴリ:
コラム

RTOSからLinuxへの載せ変えは、一筋縄じゃなかった。

歴史的な話を、前2回はしてきたが、ちょっと毛色の違う話をしてみたい。

まとめて、書こうとすると、間が空くので、ちょっとずつ、その日の、時間の許す範囲で書いて行こうかと思う。 思い出しながらも多いので、前後で辻褄が合わないこともあろうかと思うが、そこは、行間を読んでいただくしかない。

とりあえず、LinuxとRTOSについて。。。これも、シリーズ化するかも。。だけど、今回は、携帯のソフト開発で、"面白かった"ところをいくつか。 この話は、ある程度、ソフト開発者にとって、役に立つ話かもしれない。

1.RTOSベースの開発に、Linux系の技術者を使ったらどうなったか?

Linuxを本格的に使う前に、ソフトの開発者不足で、PCやサーバ系から人を集めた際に、起こったことである。

これは、必ずしも、Linuxにかかわらず、いわゆるマルチプロセスタイプの"高級"OS上のアプリを書いていた人に共通する問題であったが、まず、メモリ管理とデータの使い方、処理能力で躓いていた。 メモリ管理は、RTOS(iTRONとか)で、やっていた人は常識だったのだが、リソース量に制限があって、必要なメモリがとれない時があり、必ずそのエラー処理(処理を放棄するか、一度中断して、しばらく後にリトライする、もしくは、あいたら呼んでもらうCall Backを設定するか)を考えるのだが、いわゆる高級OSで育った人は、必ずOSが面倒見てくれると信じて、ひたすらループで待ってしまっていた。 当然、無限ループとみなされてリセット・・・このあたりを自分で考えないといけないということを知らなかった。 データに関しては、メモリ空間が切れてないので、自分が定義したデータが他人から見れてしまうとか、他人に壊される恐れがある(基本的に、アドレスという概念がない人もいた)、データのラベルがシステムレベルで、ユニークでないといけないという概念がなく、システム全体でソフトをリンクした結果、他人とかぶっていることをシステム試験まで、気がつかなかったとか、大きなデータを自動変数でとったために、リエントラントで動いているうちに、スタックがオーバーフローして、いつのまにか、ほかのデータを壊してたとか・・

処理能力というところでは、基本的に、RTOS=Real Timeなので、OSの動作を十分勉強し、かつ、コーディングにも気を使い、どうすれば、もっとも速く動くのか、というのを、場合によっては、コンパイラの出力結果を見ながら、調整したものである。 計算式を四則演算どおりに書いたら、とっても遅くて、結局、掛け算、割り算は、ビットシフトでやった。。とか。 美しいソフトを書くために、モジュールを切り、トランザクションにデータをつめてメッセージのやりとりで作っていたら、メモリコピーだらけで、とっても、遅くなるので、固定メモリを使い回すように、変えたとか・・若干、ソフトウェア工学を学んだ人には、その治し方は、違反じゃないの? みたいな話も、多々あった。

RTOSベースの組み込みソフトしか作ってこなかった人にとっての常識は、高級OSから来た人の常識とは大きく違っていたのである。 今でも、きっといわゆるマイコンの世界(各種コントローラ、制御装置というところに使われているはず)では、こういうぎりぎりの話(常に、メモリ量と、速度=製品原価)は、必要なので、もし、そういソフトを作る機会があれば、ぜひ、HWは、どう動いているのか、メモリは、どのように、アクセスされるのか、コンパイラはどうなっているのかというあたりも、勉強して欲しいところである。

2.Linux携帯に、RTOS技術者を使ったらどうなったか?

いよいよ、Linuxを使うという話になっても、これまでのアプリ機能の蓄積は捨てられないので、RTOSベースのSWをLinuxに載せかえることとなり、中身を知っているRTOS技術者にLinuxベースで作業してもらうことになった。

そこで、今度は、1と全く逆の現象が起きた。 RTOSの人には、マルチプロセスという概念がなく、自分のプログラムと、他人のプログラムが別世界で動いているということがなかなか理解できなかったのが、第一の問題。 特に、メモリ空間というあたりで。 RTOSのプログラムは、大きな塊での、State Machine(状態に沿って動く装置)であるが、それをきちんと状態図にしてしまうと、何次元にでも膨らんでしまうので、それを圧縮して、制限のあるメモリ領域に、ある処理時間に収めるために、"フラグ"を多用しがちだった。 今、誰が、何をしているという旗で、これを見て、他人は、ちょっと待とうとかってするところが、プロセスを切ったために、見えなくなってしまって、処理の競合(同一HWに対するアクセスとか)が、防げなくなってしまったとか、フラグを落とす処理が、OSの中に入ってしまって、誰も、落とさなくなってしまったとか。 さらに、これまで、直接Callしていたのが、できなくなって、プロセス間通信になったとたんに、イベントのすれ違いがあちこちで起こるようになったとか。。

このあたりは、1項で書いたように、ソフトウェア工学を若干無視して、速度、メモリを重視した結果の弊害だった訳だが、それを作った人々が、本来、どうあるべきだけど、もろもろの制限の中で、こうしておくというきっちりとした書置きがなかったこと、それを拡張した人が、先輩の作った物が正しい唯一の道と信じて、全部に同じ手法を使ってしまったこと、というあたりに原因があった。

やはり、ソフトを書くということは、きちんとした勉強をした上で、アーキテクチャは策定し、そこで入らないものは、妥協するとして(特に、原価というあたりは、メーカにとっては、死活問題なので、当時はメモリ量にこだわりが強かった)、常に、それは、本来どうあるべきということを次の人間に伝えていくということが、大事なのだろうと思う。

3.融合はなったのか?

最終的には、組み込みLinuxで携帯はできたわけだが、そのソフトはどうだったのか? といえば、最終的には、混合型となり、おかげで、組み込み用Linuxとして、メインストリームに、かなりの貢献をすることとなった。

Linuxを使うとは言っても、所詮、メモリも、CPUも制限があり、HDDもついていなかったので、プロセスを闇雲には増やせず(SWAPが多発してしまって、全く、動かなくなるという事象が発生)、RTOSで培ったテクニックを使いつつ(いかに、少ないメモリ空間で、効率より動くか、消費電力も少なく)、とりあえず、マルチプロセス、マルチタスク化を完了させた。

確かに、荒削りではあったけど、今のAndroid機に比べれば、立ち上がりや、キー入力への反応、消費電力という点で、携帯電話には、かなり最適化されていたと思う。 RTOSから来た人々は、OSがどう動くか分からないと、気持ち悪いという妙な恐怖心を持っており、それが、役にたったとも言える。

昨今は、かつての汎用コンピュータのように、OSは分からなくても、そこから提供されるAPI、さらに、もっと上のブラウザベース(HTML5とかJSとか)、JAVAと言ったところでソフトを書くのが当たり前になっているが、まだまだ、産業機械、ロボット、自動車、ロケット、衛星等々、リアルタイムで、制限された領域で動作させないといけないSWがいくらでもあると思う。 我々のような、半ば化石化した技術者でも、少しでも過去のノウハウを残せたらと思う、今日この頃である。

カテゴリ:
コラム

組み込みソフト四方山話(その二)

さて、前回は、Linuxの採用というところまで書いたが、歴史で言うと、これが、その後(2004年冬以降)、パナソニック、NECのいわゆるガラケーに搭載されていく、MOAP(NTTドコモの主導で開発されたプラットフォームで、LinuxとSymbianが存在)と言われるプラットフォームに進化し、その後、Limo Foundationを経て、Tizenへと流れて行くことになる。 Tizen自体は、今年のCEATECのキーノートにも、残っているが、残念ながら、パナソニックも、NECも、スマフォから手を引いてしまったので、当時の開発メンバーがほとんど関与していなさそうなのは、まことに残念である。

考えてみれば、MOAP携帯には、ブラウザもあり、元になっているOSには、DLでのアプリ追加機能もあり、やろうと思えば、アプリの後からの追加もできたので(実際に、SDKも作っていた)、実は、スマフォに化けられたのであるが、当時は、セキュリティの観点から、DLは禁止、デバッグの際のSDカード等からのサイドローディングだけが許されていた。 結果として、唯一、Sand Boxで守られていて安全と思われていたJAVAだけが、DLできるプラットフォームであった。 当時は、オペレータがアプリを仕切っていたクローズドの世界だったので、これで、誰も、文句を言う人間はいなかった。。。。Appleが登場するまでは。。

ところで、Linux+Javaというと、気づく人がいるかもしれないが、これは、実は、Androidと同じである(昔から、この組み合わせでのPFを模索してきた会社がモトローラであり、彼らは、2003年に、Linux携帯を出している。 そこが、Googleに買われたというのも、なにかの因縁かもしれない)。 ということなので、よく、ガラケーとか、日本の携帯は技術的に遅れてとか、イビツに進化とかって言われるけど、実は、王道を行っていたのである。 違いは、Open Marketを開かなかったことと、Limo等で事業者間の連携を模索したので、仕様決めに時間が掛かった事。 これは、事業モデルの差なので、当時、予見するのは、とっても難しかったと思う。

そう言った事業の成功、失敗とは別に、技術屋として、勿体無いと感じるのは、Linuxを組み込み、リアルタイム化するのに、一緒に苦労してきたエンジニアが、どうも、決して恵まれた道を歩んでいないように見えることである。 サーバ用といわれたLinuxを組み込みソフトとして扱い、携帯に持ち込み(当時は、2チャンネルでボロボロに叩かれた)、立ち上げ時間、キー入力への反応時間等々を、メモリ制限のある中で、マルチタスク、マルチプロセスを生かしつつ、当時のMontavista社と一緒になって、対策を考え、かなりの部分をLinuxのメインストリームに反映できたと自負している(確か、2.6あたり)。 そのためには、多数のエンジニアの骨身を惜しまぬ努力があり、彼らには、心から、感謝している。 それがなければ、今は、当たり前の、Linux携帯は無かった筈(少なくとも、遅れたはず・・)と考えると、Cool Japanだ、ゲームだ、漫画だ、アニメだという前に、お国のほうには、こういう地道なところも、拾って欲しいなとつくづく感じてしまう。 

最後は、愚痴になってしまったが、次回は、また別な切り口でLinuxとRTOSの話でも書きたいと思う。

2013/10/1記

 

カテゴリ:
コラム

組み込みソフト四方山話(その一)

社会人生活38年を、なんらかの形で、ずっと組み込みソフトと一緒に暮らして来たような気がする。

その経験を、歴史をひも解く感じで書こうかと思ったのだが、なかなか時系列で整理するというのが、時間がかかるということが判明し(整理の悪さを反省中)、この際、思いつくままに書いて行こうと決めた。

なので、いつまで、続くか、いつ終わるか分からなくなったので、まずは、"その一"として、今回は書き進めたい。なお、次回は、別な話題かもしれないので、必ずしも、その二、その三と続く訳ではないことは、ご了承いただきたい。

組み込みソフトウェアの経験の中では、通信機器への汎用マイコンの採用、TRONの採用、携帯へのLinuxの搭載、Androidによる業界の破壊というような所が非常に、印象に残っている。 それぞれの中に、様々な角度から、色々なエピソードがあるのだが、それを書いていると、読む人が飽きてしまいそうなので、一時期は、私の代名詞になっていた(らしい。。。自分では、そこまで造詣は深いと思っていないのだが)、Linuxの件を書いてみたい。

そもそも、携帯電話は、アナログ時代から始まり、デジタルの最初の頃までは、OSという物を使っていなかった。 他の組み込み機がTRONを使い始めていたり、海外のRTOS(Real Time Operating System)ベンダーの製品(8ビットから32ビットまで)を使っていたことを考えると驚くような世界だった。 それが、変わったのが95-96年頃だったと思う。まだ、i-modeの時代は来ていなかったが、それでもUIがやや複雑化し、プロトコルも複雑化してきて、それらを、きちんと機能分割した上で、リアルタイムにかつ、効率よく処理するには、なんらかのOSを導入せざるを得なかったというところからTRONの採用が始まった。

これが、良かったのか、悪かったのか、その後、次から次へ増えてくる事業者要求、さらに、インフラの進化による、モバイルデータ通信の発達、i-mode/Internetにつながる中で、どんどんとミドルウェアを積み上げることで、製品を出すことができてしまった。

気がついてみれば、TRONの上に、TCP/IPはあるし、ブラウザはあるし、Javaはあるし、とんでもないスタックが出来上がっていた(まるで、後から出て来たT−エンジンである)。 元々、マルチタスク、マルチプロセスを想定したようなソフトが、プロセスの概念のない、シングルタスクのRTOSの上に乗っかっていたのである。 さらには、3Gの技術の導入により、通信系の処理が増大し、アプリ系の処理にさらに制約がかかってきた。 RTOSベースのSWというのは、すべてが一体のモジュールとして、Linkされ、渾然一体となって動くものなので、それぞれの機能が自分である程度処理をしたと認識したら、さっさと中断して、他人に制御を渡すという処理をしないといけないものだった。 ということは、要求がきつく、複雑化するにつれて、相当な職人芸的な作りで、それぞれのアプリ間の制御の受け渡しを行うということが必要だったわけである。 誰かが、ミスをすると、とんでもない所に影響が出て、動作がおかしくなる。 それを見つけるのも大変だし、治したあとの検証も大騒ぎと言った事態になったのが、21世紀になってから。。。

これでは、この先の進化にどうみても追いつけない(インターネットのさらなる進化、マルチメディア化は既に見えていた)ということで、まずは、通信部分を切り離し(これには、別な目的もあったが、話が発散するので、それは機会があれば、別途記述したい)、アプリの部分は、本来アプリが作りやすい環境に変えようということになった。 これが、今は、当然になった、2CPU化のきっかけである。 アプリ側のOSとしては、その当時、勤務していたNECでは、候補として、Linux、Symbian(当時は、まだPsionだったと思う)、Windows Mobileを選択した。

この3者を色々な面から評価したり、試作したりしながら、最終的にLinuxに決めた訳であるが、その理由については、どこまで書いていいのか、今でも分からないので、詳細には述べないが、Open Sourceという怖さを持ちつつも(当時は、今とは違い、Open Sourceは、誰も、責任を持たないので怖い。。ただより高い物はないと信じられていた)、本当の意味での、マルチプロセス、マルチタスク、インタネットへの親和性(インタネット用のプロトコル、ミドルウェアの入手しやすさ)、開発者がグローバルに集められる(TRONの一つの問題は、日本人しか扱えなかったこと)という点に、非常に魅力を感じて、これに決定したと記憶している。

今、思えば、AndroidはLinuxベースであり、Symbianは、Nokiaに買われた後で、衰退し、Windowsは、そのNokiaの中で、かろうじて生きているという状況なので、恐らく、判断は正しかったと思う。

その後には、七転び八起きの話が続く訳だが、長くなるので、続きは次回。

2013/9/19 記

カテゴリ:
コラム

まずは、第一声

プロローグ。

経歴にも書いてありますが、36年前に社会人となってから(最近、某ドラマの影響で"熱い"80年代ではなく、まだ70年代でした)、色々な変遷を経て、通常であれば、そろそろ定年という時期に、縁あって、このサイトからブログを発信することになりました。

講演とか、会議でのプレゼンは慣れてますが、ブログというのは、初めてなので、時折、妙な言葉遣いがあるかもしれませんが、そこは初心者として、ご勘弁いただくこととして、まずは、第一声をあげたいと思います。

基本的には、ずっとソフトウェアの開発(それも、ほとんど通信機器組み込み系)に携わって来たので、そのあたりの歴史、技術の移り変わり、うまく行ったこと、行かなかったことなど、諸々、思いつくままに書いてみたいと思います。 少しでも、これからの方々の、ご参考になれば幸いです。 また、30年近く、インタネットに近い装置(パケット交換機、ISDNターミナルアダプタ、携帯電話等)を開発してきたこと、直近20年弱は、携帯電話のプラットフォーム(日本初のLinux携帯電話、3Gプロトコル開発等々)を通して、モバイル業界に関わって来たことから、時には、そのあたりの技術的なこと、業界的なことも触れてみたいと思います。

恐らく、メーカ(NEC)、ソフトウェア会社(Aplix)、携帯事業者(ソフトバンクモバイル)、半導体(プラットフォーム)ベンダー(ルネサス)と、業界ピラミッドを上下した経験を持つ人間は、そうはいないだろうと自負しておりますので、時事ネタの見方とかもお話しできるかと思います。 ここしばらく、身近で色々ありましたし。。 ソフトバンクのアメリカ進出とか、海外では、Verizonが、Vodafoneの株持ち株を買い取ってVerizon Wirelessを全部自分の物にするとか、MicrosoftがNokiaの携帯部門を買うとか、小さい物では、NECとか、パナソニックがスマフォは止めちゃうらしいとか、ルネサスモバイルの資産をBroadcomが買うとか、来週は、新iPhoneの発表で、ひょっとしたら中国対応とか、日本向けサプライズがあるかもとか、Android4.4は、KitKatだったとか。。。(Tizenの噂話もあったかな)。。 とはいえ、秘密事項は言えませんし、他人批判は厳禁なので、奥歯に物の挟まったような言い方になることは、ご容赦下さい。

来週から、具体的に、テーマを決めて、一つずつ書いていきますので、よろしく、お付き合い願います。

カテゴリ:
コラム