ターゲットはネットブックだけじゃない
モバイル端末とともに進化するMeeGo〜解説編
ハンドセットやネットブック、タブレットなど幅広いモバイルデバイスをターゲットにしたLinuxディストリビューション「MeeGo」。その特徴と導入方法を2回に分けて説明します。(編集部) |
K.I.マヘーシ
2010/7/20
多様なデバイスをターゲットにする「MeeGo」の特徴
MeeGoは、Linuxベースのオープンソースモバイルオペレーティングシステムです。主にハンドセット、ネットブック、タブレット、インターネットTV、車載インフォテインメントシステム(IVI:In-Vehicle Infotainment)などのデバイスをターゲットにしています。
MeeGoは2010年2月にスペインのバルセロナで開催された「Mobile World Congress 2010」において、インテルとノキアの共同記者会見で発表されました。インテルの「Moblin」とノキアの「Maemo」を統合し、1つのプロジェクトとして実施していくというのが発表の趣旨です。このプロジェクトがMeeGoで、Linux Foundationが中立な立場として運営管理に携わることになりました。
|
||||||||||||||||||||
表1 MeeGoが生まれるまでの流れ |
このようにMeeGoはMoblinとMaemoの統合により誕生したのですが、そこまでの時系列での流れは上記の表のとおりです。
■Moblin
Moblinは、インテルが開発したモバイル端末用のLinuxディストリビューション(Fedora系)です。主にインテルのプロセッサ(Atomなど)が使われているネットブックやMobile Internet Device(MID)上で動いています。プロセッサの機能を生かし、低消費電力、起動時間の短縮に最適化されていることが特徴です。またユーザーインターフェイスとしてはClutterを使っています。
Moblinは2009年4月にLinux Foundationに移管され、モバイル端末向けのLinuxとしてMoblinプロジェクトの運営管理が行われることになりました。そして前述のとおり、2010年2月にノキアのMaemoプロジェクトと統合し、MeeGoプロジェクトとしてモバイル向けのプラットフォームを進めることになりました。
■Maemo
Maemoは、ノキアのスマートフォンやインターネットタブレット向けに開発されたオペレーティングシステムです。MaemoはDebian GNU/Linuxを使っており、ユーザーインターフェイスにはQtを採用しています。
Maemoもほとんどはオープンソースのコードを使っており、特にNokia N810 インターネットタブレットなどをターゲットにしていました。ノキアではLinux Kernelをはじめ、DebianやGNOMEなど、多数のオープンソースプロジェクトと共同でMaemoを開発してきました。
ノキアは当初、「Harmattan」というコード名でMaemo 6のリリースを予定していました。しかしMoblinと統合したことで、今後はMeeGoというブランドで製品を出すことになると思われます。Maemo 6では正式にサポートするQtライブラリを同梱しており、MeeGoへ移行作業を進めています。
アーキテクチャの概略
MeeGoの特徴の1つが、さまざまなハードウェアプラットフォームを対象としていることです。特にハンドセット、ネットブック、タブレット、インターネットTV、車載インフォテインメントシステム(IVI)です。
すべてのプラットフォームがMeeGoのコア部分を共有し、その上で、異なったUX(User eXperience)レイヤをそれぞれのデバイス向けに使うことになります。また、MeeGoはARMとIntel X86プロセッサの両方をサポートしていく予定です。
各デバイスに優れたユーザーエクスペリエンスを提供するために、MeeGoプラットフォームは慎重に作られています。MeeGoアーキテクチャは、主に下記のような3つのレイヤに大きく分けることができます。
図2 MeeGoのアーキテクチャの概略 |
1. MeeGo OS ベースレイヤ
Linuxカーネルとコア・サービスに加え、MeeGoをさまざまなハードウェアアーキテクチャに対応させるために必要なハードウェア適合ソフトウェアで構成されています。
2. MeeGo OS ミドルウェアレイヤ
ハードウェアおよび用法モデルから独立したAPIを提供します。固有のアプリケーションとWebランタイムアプリケーションの両方を作れるようにするためです。
3. MeeGo ユーザー・エクスペリエンスレイヤ
複数のプラットフォームセグメントのために該当するユーザーエクスペリエンスを提供します。MeeGo 1.0ではネットブック向けの該当ユーザーエクスペリエンスのみが入っており、そのほかについては順次提供していく予定です。
4. コアを支えるカーネル2.6.33
MeeGo 1.0のコア部分はLinuxカーネル2.6.33を基に作られています。このカーネルは、Android OSおよびそれに関するドライバ向けのサポートが終了した初めてのカーネルでもあります。
またカーネル 2.6.28から入っているBtrfsという次世代のファイルシステムをデフォルトのファイルシステムとして採用しています。Btrfsは今後、Linuxのファイルシステムとして長期間使われていく可能性があるため、このような決断を下したのだと思われます。現時点ではBtrfsは安定動作していないところもありますが、今後安定し、現場で使用可能なファイルシステムになることを期待したいところです。
なお現在、多くのLinuxのファイルシステムはext3を使っていて、今後はext4、Btrfsの順に移行していくと思われます。仮にext4に移行した場合、また何年かしたらBtrfsに移行せざるを得ない状態になるかもしれません。そう考えると、早めにBtrfsに移行した方が手間が省けるというメリットがあります。
ほかのメジャーなオープンソースLinuxディストリビューションであるFedora 13でも実験的にBtrfsを採用しており、Ubuntuも今後の10.10でBtrfsへのサポートを表明しています。MeeGoはほかのディストリビューションに先駆け、デフォルトファイルシステムとしてBtrfsを選択したことによって、以下のような新機能の有効活用が可能になります。
- コピー・オン・ライト(CoW)によるデータ保全機能
- オンラインでのディスク圧縮機能
- 効率の高いスナップショット
- オンラインのデフラグが可能であるために起動時間が短縮される
- 高速ディスクアクセス
5. Qt 4.6に変わった最新GUI
Moblinのグラフィカル・ユーザー・インターフェイス(GUI)はClutterでしたが、MeeGoになってからはQtに変更となりました。Qtフレームワークはオープンソースで、もともとノキアが2008年にトロールテック(Trolltech)から取得したものです。
MeeGo 1.0は最新のQt 4.6を利用しています。Qtは、最先端のグラフィカルユーザーインターフェイスでアプリケーションを開発するための機能をアプリケーション開発者に提供します。オブジェクト指向や拡張性の高さ、コンポーネントプログラミングが可能なことなどが特徴です。
Qtで使えるコンポーネントを挙げると、QtGui、QtCore、QtMultimedia、QtNetwork、QtOpenGL、QtSql、QtWebKit、QtXmlなどです。上記以外にも、今後、次のような新たなMeeGo API機能が提供予定となっており、現在開発が進んでいます。
1. MeeGoタッチフレームワーク
MeeGoタッチフレームワークはタッチ入力デバイス向けのアプリケーションを作成する開発者向けに機能を提供することになります。
2. MeeGo Webランタイム
Webランタイム(WRT)は、Web開発者にHTML、CSS、JavaScriptなどの標準Web言語を使用してモバイルデバイス向けのアプリケーション作成を可能にします。Webランタイムにより、アプリケーションがデバイスのデータと通信でき、位置情報とWeb情報を結合する基本的なプラットフォームの機能を提供することになります。
3. Qtモビリティ
モバイルプラットフォームをターゲットにしたアプリケーションへの追加機能を、QtとQtのライブラリを拡張することによって提供します。Qtモビリティには、保存されているコンタクト情報が利用できるコンタクトAPIやシステムの接続状態の制御ができるBearer Management APIなどが含まれることになります。
1/2 |
|
||||
|
Linux Square全記事インデックス |
Linux Squareフォーラム 仮想化技術関連記事 |
連載:実践! Xenで実現するサーバ統合 有力な仮想化技術として注目を集めるようになった「Xen」。このXenを活用してサーバ統合を実践していく手順を具体的に紹介します |
|
特集:サーバの仮想化技術とビジネス展開の可能性 jailからUML/VMwareまで 1台のマシンで複数のサーバを動かす「仮想化技術」。VMwareやUMLの登場により、WebサイトだけでなくOS自体を仮想化できるようになった |
|
特集:仮想化技術のアプローチと実装 VMwareから要注目技術Xenまで 1台のサーバで複数の仮想マシンを実行する仮想化技術は、空間コストを引き下げる可能性を持つ。最新の仮想化技術を概観してみよう |
|
特集:仮想OS「User Mode Linux」活用法 技術解説からカーネルカスタマイズまで Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 |
|
特集:仮想化技術の大本命「Xen」を使ってみよう インストール & Debian環境構築編 高いパフォーマンスで本命の1つとなった仮想マシンモニタ「Xen」。日本語による情報が少ないXenを、実際に動かしてみよう |
|
特集:仮想化技術の大本命「Xen」を使ってみよう Xen対応カスタムカーネル構築編 Xen環境およびその上で動作する仮想マシン用カーネルを自分で構築しよう。これにより、自由にカスタマイズしたカーネルを利用できる |
|
特集:IPv6、UML、セキュリティ機能の統合 全貌を現したLinuxカーネル2.6[第4章] 今回は、これまでに紹介し切れなかった機能を一気に紹介する。これを読めば、カーネル2.6の正式リリースが楽しみになるだろう |
|
Linux Squareプロダクトレビュー VMware Workstation 4 PC/AT互換機エミュレータとして不動の地位を築いたVMware。その新バージョンがリリースされた。新機能を早速試してみよう |
|
古くて新しい「サーバ仮想化技術」の行方 サーバ仮想化を実現するための技術がソフトウェア、ハードウェアの両面で出そろってきた。ハイパーバイザーのさらなる高速化に向けた動きを紹介する |
|
Linux Squareフォーラム全記事インデックス |
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|