連載
» 2007年01月30日 00時00分 公開

Symbian OS開発の勘所(1):移行者のためのSymbian OS「超」概説 (3/3)

[大久保 潤 管理工学研究所,@IT MONOist]
前のページへ 1|2|3       

今後の予定

 以下に、本連載のロードマップを示します。まずはSymbian OSに対する理解を深めるために、基礎となる部分を解説していきます。


カーネル提供機能から見たSymbian OS
プロセス、スレッド、ITC(注)、メモリなどの基本的な仕掛けと、Symbian OSにおけるローダのデザインについて説明します。Symbian OSがメモリの扱いについていかに腐心しているか、換言するといかにケチなのか(これは誉め言葉なので念のため)、プログラムをロードして実行するだけの部分からもそれが見えてきます。

※編注:
Symbian OSでは実行主体はスレッドなので、 IPC(Inter Process Communication)ではなくITC(Inter Thread Communication)といいます。


C++を通して見たSymbian OS
Symbian OSではカーネルの9割以上がC++で記述されています。C++は実行性能、コード効率がともに良く、そのうえオブジェクト指向プログラミングを性能の低下を引き起こさない範囲で支援している便利な言語です。しかしそれらの特性を得るために、C++には特にメモリ管理の部分を中心として危険な(あるいは「使用者の努力と注意に依存する」)部分が存在しています。諸刃の剣の言語といってもいいでしょう。

このセクションでは、Symbian OSが性能とOOアプローチのバランスを取るためにC++をどのように利用しているか、Symbian OSにおける規約、メモリ管理、文字列操作などを通して説明します。

Symbian OSと非同期処理
OSごとのブロッキングポリシーの違いを説明しつつ、Symbian OSにおける非同期フレームワーク、アクティブオブジェクトについて解説します。

非同期処理というと思考停止的に「マルチスレッドを使う」という解を使う人がいます。しかし、それは携帯電話向けとしてはあまりうまいアプローチではないようです。ここではSymbian OSで用いられている、アクティブオブジェクトという効率的な非同期フレームワークの背景にあるコンセプトに迫りたいと思います。

またアクティブオブジェクトという仕掛けがよくできており、かつプログラム開発の各所で使われているため、ちょっとだけSymbian OSをかじった人の中には「Symbian OSはノンプリエンプティブマルチタスキングだ」と誤解している方がいるようです。この辺りの誤解も解いていきたいと思います。

ITCとクライアント/サーバ
各種のITCプリミティブと、それらの上位に位置するクライアント/サーバフレームワークを説明します。Symbian OSでは「クライアント/サーバ」は一般概念ではなくタームなのです。この機構を使って、File、Font & Bitmap、Telephony、Socketそのほかありとあらゆる機能が統一的に提供されています。その基盤となる機構について、マイクロソフトのCOMと対比しつつ説明を行います。COMと比較することにより、Symbian OSが携帯電話に特化しているという特徴が一層クリアになります。

また具体例として、クライアント/サーバを利用して実現している機能の1つであるファイルサーバの呼び出しコードを解説する予定です。

 これらの後は、最新のSymbian OSの動向などに触れてみたいと思います。

情報の入手

 最後になりますが、これから使っていく資料の出所をお知らせします。

関連リンク:
Symbian Developer Network

 Symbian Developer Networkには、Symbian社がオープンにしている技術情報が納められています。登録を行えば情報やツールをダウンロードすることが可能です。興味がある方はぜひ試してみてください。(次回に続く)


前のページへ 1|2|3       

Copyright © ITmedia, Inc. All Rights Reserved.