前述したとおり、Symbian OSは携帯電話およびスマートフォンに特化したOSです。つい最近、Symbian OS搭載の携帯電話の出荷台数が、全世界で1億台を超えたそうです。
しかしその歴史は意外に古く、80年代にPDAのOSとして開発されたところに端を発します。PDAというと「バッテリ駆動」「メモリが少ない」「CPUが遅い」などの制約の中で機敏な動作を要求されるなどが連想されます。当時「EPOC」という名称であったこのOSも例に漏れず、これらの厳しい要求の中でデザインを洗練させてきました。そして1994年に、完全に書き換えられた32bit OSとしてリニューアルされます。これがSymbian OSの源流となる「EPOC32」(編注)です。
このEPOC32がversion 6になったとき、Symbian OSと名前が変わりました。ただしバージョン番号はEPOCからのものを継続しているので、Symbian OSはv6から始まります。その後v8.1bというバージョンで64段階の優先度を持つリアルタイムカーネルに改訂され、現在はv9という系列までエンハンスされています。
Symbian OSはプリエンプティブなマルチタスキクOSです。プロセス単位のメモリ保護とマルチスレッドをサポートしています。GUIも用意されています。というと、例えば「Windows Mobileなどと何が違うのだ」という疑問が出てくるでしょう。この節では、Symbian OSに固有なデザイン上の特徴を押さえていきます。
「携帯電話およびスマートフォン向け」と目的を定めると、いくつかの制約が決まってきます。
# | 制約 |
---|---|
1 | 数カ月から数年にわたって稼働し続ける可能性に耐えなければならない |
2 | リソースの少ない携帯機器で稼働しなければならない |
3 | バッテリ駆動のため省電力設計がされていなければならない |
これを「XXせよ」という目標の形でいい直すと、以下のようになるでしょうか。
# | 目標 |
---|---|
1’ | 長期間稼働しても問題がないように、メモリのリークがないようにせよ |
2’ | リソースの使用を最小限にするようにせよ |
3’ | 省電力機構が使用できるように、不要なときには必ずOSに制御を渡すようにせよ |
これらの目標を満たすために設計されたOS。Symbian OSはそのように定義することができます。これら以外にも厳しいリソースの制約を満たすため、ROMベースでXIP(eXecute In Place)を実現するなどの特徴を持っています。
上記のような要求だけであれば、費用、時間はさておき達成するアプローチはいくつも考えられます。しかしご存じのとおり、携帯電話に追加される機能の量は衰える気配がありません。ロバストなだけでなく、量の爆発に耐えるような生産性も併せて求められることになります。
そこで、Symbian OSではOO(Object Oriented:オブジェクト指向)デザインを導入することにより、量の問題を解決するアプローチを選択しました。OS自体もほぼC++で記述されており、提供されるAPIはすべてC++ベースのクラスライブラリになっています。その結果として、開発者は質の高い堅牢なプログラムを従来法よりも少ない手間で作成することが可能になっています。
OOデザインはOSが提供するAPIにとどまりません。Symbian OSではすべての部分がコンポーネントに分割され、携帯電話ベンダは機能を自由にコンフィグレーションできるようになっています。しかもアプリケーションもUI部(図2の「UIフレームワーク」と「UI実装」)とエンジン部(図2の「アプリケーションエンジン」)を分離するという構成になっています。そのため、標準のミドルウェアを使いつつ、UI部だけを携帯電話ごとにカスタマイズすることが可能です。
このようなSymbian OSの特性を用いると、基本部分としてはSymbian OSを用いつつも独自のUI定義とミドルウェアの追加により、複数の機種にまたがってレベルをそろえた独自環境を定義することができます。例えば、FOMAの903シリーズのSymbian OS搭載機はMOAP(S)というソフトウェアプラットフォームで統一されており、903シリーズに求められる共通の仕様を各端末ベンダが容易に満たせるようになっています。
まとめると、Symbian OSとは
携帯向けという強い制約と、高度化する機能への対応という相反する要求を、OOベースのデザインを導入することにより高いレベルでバランスを取ったOSである
ということができると思います。
Copyright © ITmedia, Inc. All Rights Reserved.