- - PR -
Symbian OSの思想を理解しよう
「Symbian OS」は、イギリスのSymbian社が提供している携帯電話やスマートフォンに特化したOSです。最近ではFOMAの903シリーズにおいて、国内ハンドセットベンダ4社が搭載機をリリースしています。Windowsなどに比べ雑誌などで解説されることが少ないためマイナーなOSだと思われがちですが、実は皆さんのすぐそばで稼働しているまさに旬のOSなのです。
この連載では副題に「moving to Symbian OS」とあるとおり、すでに何らかの環境で開発をされている方が、これからSymbian OSに引っ越して開発を始める(もしくはリサーチなどの目的で理解しようとする)際のお手伝いを目的としています。「APIリファレンスを見れば十分」という声が聞こえてきそうですが、いやいやどうして。Symbian OSにおけるAPIやフレームワークのデザインが「何を目的に行われているのか」という根本のところを理解していないと、パフォーマンスを発揮するプログラムを書くことは容易ではありません。
「アレがないシンドローム」から抜け出そう
例えば、Symbian OSのトレーニングコースでよく出る質問として、「Symbian OSの規約は分かったから、STLの導入方法を教えて」というものがあります。本当にSymbian OSでSTLを使うのですか? それはリソースが限られた携帯電話に適したプログラミングスタイルでしょうか?
「ほかのOSでは普通に使っていたから、Symbian OSでも使いたい。ソフトウェアの再利用性は大事でしょう」。確かに、ソフトウェアの再利用性は大切です。同じコードがそのまま使えれば良いことがいろいろあります。しかし、ほかのOSと同じ仮定でプログラムを書くことが許されているのですか? 省電力は? リアルタイム性の保証は? ロバストネスの確保は?
このように、OSや実行環境などの差異を検討することなしに移植をたくらもうとする態度を「アレがないシンドローム」(もしくはより重篤な状態として「アレを持ってくるのだシンドローム」)と筆者は名付けています。なぜこのような思考停止が起きるのでしょうか。
![]() |
| 図1 Symbian OSへの典型的な引っ越しパス |
Symbian OSに引っ越してくる人の環境は千差万別です。例えば前述のSTLを使おうとした方にいろいろお話を伺ってみると、Windows系、それもマシンを専有するタイプのアプリケーションを書いていることが分かりました。そのため、リソースや環境制約に対する仮定が、その方の中ではまったく異なっていたのです。どうやら「アレがないシンドローム」は、制約に対する検討がないことと関係がありそうです。
逆のケースもあります。フレームワークを軽視する傾向は、少ないリソースの中で性能要求を満たすことを最優先にするという、組み込み系から来た方に強いように思います。極端な例ですが、スレッドという概念は知っていても、スレッドに設計上のどの要素を割り当てればよいかということについて、まったく無頓着な方にお会いしたことがあります。その方によれば、「何をスレッドに割り当てるのかは実装の問題であって、全体で設計をすべきことではない」のだそうです。このケースは特殊例だと思うのですが、そうでなくても「小さく速いコードが良いコード」という文化から来た方には、Symbian OSの規約やフレームワークはそのままでは理解し難いように思います。なぜならば、Symbian OSは性能だけではなく、高度化した機能を安全に実行させ、かつそれらの生産性を向上させることを目的として、高いレベルでバランスを取っている環境だからです。
APIリファレンスだけではうまく引っ越しができない事情が、何となくでもお分かりいただけたでしょうか。Symbian OSは携帯電話に必要なソフトウェア開発のベストプラクティスを満載した、非常に強力で便利な環境です。ただし、「理解して使う分には」という条件が付きます。この連載では、Symbian OSに引っ越してくる典型的なパスを考慮しつつ、Symbian OSのデザインの背景にあるものを解説していきます。そして、携帯電話やスマートフォンでのプログラミングに必要な考え方を理解してもらうことを目標に進めていきます。
というところで、筆者の自己紹介です。筆者はCP/Mの時代にキャリアをスタートして、MS-DOSというよりはPCのローレベルプログラミングに一時期ハマった後、メインフレーム→UNIXサーバ→Windows→Symbian OSと各種の環境を転戦してきました。また、下はハードを直接たたくレベルから、ミドルは通信のプロトコルスタックやOLTPシステム、DBMS(といってよいのかな桐は)、言語処理系。上は最近だとWeb2.0もののサーバサイド、クライアントサイド一式までと、各種設計・開発をやってきています。そういう意味では、図1の「引っ越しパス」で何が起きるかを一通りフォローしていけるかと思います。
では、謎に包まれている(という声をよく耳にする)Symbian OSの解説に入ります。
| 関連リンク: | |
| Symbian http://www.symbian.com/ |
|
| シンビアン http://www.symbian.com/Japan/ |
|
| Symbian OSの搭載機一覧 http://www.symbian.com/phones/ |
|
関連記事 設計/開発技法
- 特集:Javaは組み込みに“不向き”は本当か?
- 連載:BREWアプリケーション開発入門(連載中)
- 連載:イチから作って丸ごと学ぶ! H8マイコン道(連載中)
- 連載:−ザ・組み込み−ソフトウェアのハードウェア化(連載中)
- 連載:組み込みLinux開発入門(全3回)
- 連載:T-Engineプログラミング入門(全4回)
- 連載:Symbian OS開発の勘所(全10回)
- 連載:Symbian OSアプリ開発の手引き(連載中)
- 連載:解説! ロボット開発環境Robotics Studio(全4回)
- 連載:Robotics Studio活用術 はじめて作るサービス(全5回)
- 連載:生産性向上への道 Eclipseで行うC/C++開発(全4回)
ホワイトペーパー(TechTargetジャパン)
組み込み開発フォーラム 新着記事
- テストでの「ダメな猫」「普通の猫」「優秀な猫」(2010/3/19)
- 目指せETロボコン!! ライントレースとシステム制御(2010/3/18)
- ミップスとDMPがAndroid on MIPSで協業(2010/3/18)
- 【問題9】 アナログをデジタルに変換する「AD変換」(2010/3/17)
- 組み込みシステム開発における“モデル”とは?(2010/3/11)
- 組み込み向けAndroid「Embedded Master」を公開(2010/3/10)
- Androidでビジネス拡大を狙うミップスの新戦略(2010/3/9)
- MATLAB/Simulinkプロダクト・ファミリ R2010aを発表(2010/3/8)
- 各種カード決済/通信方式に対応した携帯型POS(2010/3/5)
- 【問題8】 「ウォッチドッグタイマ」の役割とは?(2010/3/4)
- アクテル、ミックスド・シグナルFPGA「SmartFusion」(2010/3/3)
- 素晴らしきファイルシステムのデータ管理(2010/3/2)













