Maemo
Maemo(マエモ)は、ノキアのスマートフォンおよびInternet Tabletというハンドヘルドコンピュータシリーズのオペレーティングシステム。当初はInternet Tablet OSと呼ばれていた。
他のハンドヘルド用オペレーティングシステムと似ており、あらゆるアプリケーションや設定にアクセスできる「ホーム」画面を中心としたインタフェースになっている。ホーム画面は、アプリケーション起動エリア、メニューバー、カスタマイズ可能エリアなどに分かれ、RSSリーダー、インターネットラジオプレーヤー、Google検索ボックスなどを表示できる。
MaemoはDebian GNU/Linuxベースで、GUI、フレームワーク、ライブラリなどの大部分はGNOMEプロジェクトの成果を使っている。ウィンドウマネージャにはMatchboxを使い、GUIおよびアプリケーションフレームワークにはGTKベースのHildonを採用。
Maemoのデフォルト画面は「ホーム」画面、すなわち全てのアプリケーションや設定にアクセスできる中心点である。ホーム画面は以下のようなエリアに分けられる。
画面左端に縦に細長く位置しているのがタスクバーで、ウェブブラウザ、通信、アプリケーションメニューなどのアプレットがあるが、内容は変更可能。
画面上端の左半分に位置しているのがメニューバーで、アプリケーション名とウィンドウタイトルを表示し、そのアプリケーションのメニューへのアクセスを提供する(File、Edit、View、Tools など)。
画面上端の右半分に位置しているのがステータスバーで、バッテリー寿命、無線接続、音量、Bluetooth、明るさなどのアイコンが並んでいる。こちらも内容は変更可能。
上記以外の画面の大部分はホームアプレットを表示しており(MacintoshのDashboardのようなもの)、データを表示したり、アプリケーションへのショートカットを表示したりできる。デフォルトではRSSリーダー、インターネットラジオプレーヤー、Google検索ボックス、アドレス帳が配置されているが、もちろん変更可能である。
インタフェースにはタッチスクリーンか方向パッドとセレクトボタン、バック/メニュー/ホームボタンを使用する。文字入力は、手書き文字認識かソフトウェアキーボードが使え、ノキアのN810のようにハードウェアがキーボードを備えていればもちろんそれも使える。
MaemoにはMozillaベースのMicroBウェブブラウザが付属しており、Adobe Flashも完全サポートしていて、無線接続で操作可能である。800×480の画面解像度をサポートしており、大抵のウェブページは水平スクロールせずに閲覧可能。既知の無線ネットワークに自動的に接続し、RSSフィードと電子メールをダウンロードし、自動的に切断することが可能。
ソフトウェアのインストール/アンインストールはアプリケーションマネージャで行う。複数のソフトウェアリポジトリを登録して自動的に更新することも可能。アプリケーションマネージャはインストール済みの全てのソフトウェアの概要を表示できる。USBでPCと接続して同期させることも可能。ユーザーファイルは標準的なリムーバブルストレージと同じように扱える。
MaemoはDebian GNU/Linuxを携帯機器向けに軽量化したバージョンである。GUIはX Window Systemベースで、ウィンドウマネージャにはXomapとMatchboxを使用。またGUIにはGTKツールキットとHildonのウィジェットとAPIを採用している。
通常のDebianで使われている GNU Core Utilitiesの代わりに組み込み機器や携帯機器向けパッケージであるBusyBoxを使い、必要なメモリおよびストレージ容量を削減している(そのぶん機能は若干制限されている)。
主要サウンドサーバとしてESDを採用し、搭載したメディアプレーヤーはGStreamerを使用している。GStreamerがサポートするファイルフォーマットはGStreamerプラグインをMaemo SDKでコンパイルすることで拡張可能である。
ウィンドウはMatchboxウィンドウマネージャが管理しており、一度に1つのウィンドウだけを表示する。携帯機器では画面が小さいため、この方が扱いやすい。
Maemoには最初から各種アプリケーションが含まれているが、様々なリポジトリから新たにアプリケーションを追加することが可能である。その際に組み込みのパッケージ管理システムであるアプリケーションマネージャを使うこともできるし、APTとdpkgを使うこともできる。
同梱されているアプリケーションとしては、MozillaベースのMicroBブラウザ、Adobe Flash、Gizmo5、Skypeなどがある。
LinuxとMaemoの大部分がFLOSSであるため、アプリケーションの移植は簡単である。このためサードパーティー製アプリケーションが多数移植されている。Maemo専用に開発されたアプリケーションもあるが、多くは既存のLinux用プログラムの移植である。以下に主なものを挙げる。
メディアプレーヤー: Canola, MPlayer
インターネット: Claws Mail, Modest, Midori
オフィスアプリケーション: Gnumeric(表計算), Abiword(ワープロ)
インスタントメッセンジャー: Pidgin
VOIP: Gizmo5, Skype
ゲーム: The Battle for Wesnoth
その他: FBReader(電子書籍リーダー), GPE(OpenSync互換のPIM), rdesktop(RDPリモートアクセス), ScummVM(ゲームエミュレータ), Wayfinder、GPSナビゲーションソフト), Free42S(HP-42S電卓エミュレータ), gPodder(ポッドキャスト・クライアント), Vagalume(Last.fmプレーヤー), VNC
Debian: ARM Debian ディストリビューションをMaemoアプリケーションとしてインストールでき.、各種パッケージを利用可能(OpenOffice、Firefox、Java、GNOMEデスクトップなど)
ビデオ: MPEG-1,  MPEG-4 ASP (H.263), RealVideo, AVI, 3GP
オーディオ/プレイリスト: MP3, RealAudio, MPEG-4, AAC, WAV, AMP, MP2, AMR, AWB, M4A, WMA. OGG/Vorbis(アドオンパッケージが必要), M3U, PLS
画像/アニメーション: JPEG, GIF, BMP, TIFF, PNG, SVG Tiny, ICO
テキスト/レイアウト: テキストファイル, PDF, HTML
ソフトウェアはMaemo SDKを使ってC言語で開発するか、Jalimo JVMを使ってJavaで開発できる。他にもPython、Ruby、Monoが使える。
Maemo SDKはDebian指向のScratchbox Cross Compilation Toolkitに基づいており、開発時のサンドボックス環境を提供する。ScratchboxはQEMUを使ってARMプロセッサをエミュレートするか、sbrshで命令をリモート実行する。Scratchbox互換のルートストラップ(Debianをインストールするためのシェルスクリプト群)はx86とARMELの両方に存在するので、開発とデバッグはx86上で行い、最後のパッケージングをARMELで行うことができる。
MaemoはノキアのInternet Tablet向けに設計されており、その仕様はノキアの高機能携帯電話N-seriesやE-seriesとよく似ている。いずれもプロセッサは TI OMAPというARMのSoCであり、画面が大きく、拡張可能なストレージを内蔵している。Maemoはプラットフォームを限定することで高度に最適化しているため、Internet Tablet以外で動作させるのは非常に難しい。しかし、OSのプロプライエタリでない部分やサードパーティー製アプリケーションはDebianや他のディストリビューション向けにパッケージ化されており、それによって他の様々なハードウェアでも動作する可能性がある。