Maemo

Maemo（マエモ）は、ノキアのスマートフォンおよびInternet Tabletというハンドヘルドコンピュータシリーズのオペレーティングシステム。当初はInternet Tablet OSと呼ばれていた。
他のハンドヘルド用オペレーティングシステムと似ており、あらゆるアプリケーションや設定にアクセスできる「ホーム」画面を中心としたインタフェースになっている。ホーム画面は、アプリケーション起動エリア、メニューバー、カスタマイズ可能エリアなどに分かれ、RSSリーダー、インターネットラジオプレーヤー、Google検索ボックスなどを表示できる。
MaemoはDebian GNU/Linuxベースで、GUI、フレームワーク、ライブラリなどの大部分はGNOMEプロジェクトの成果を使っている。ウィンドウマネージャにはMatchboxを使い、GUIおよびアプリケーションフレームワークにはGTKベースのHildonを採用。
概要.
Maemoのデフォルト画面は「ホーム」画面、すなわち全てのアプリケーションや設定にアクセスできる中心点である。ホーム画面は以下のようなエリアに分けられる。
インタフェースにはタッチスクリーンか方向パッドとセレクトボタン、バック/メニュー/ホームボタンを使用する。文字入力は、手書き文字認識かソフトウェアキーボードが使え、ノキアの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ベースのブラウザ、Adobe Flash、Gizmo5、Skypeなどがある。
サードパーティー製アプリケーション.
LinuxとMaemoの大部分がFLOSSであるため、アプリケーションの移植は簡単である。このためサードパーティー製アプリケーションが多数移植されている。Maemo専用に開発されたアプリケーションもあるが、多くは既存のLinux用プログラムの移植である。以下に主なものを挙げる。
ソフトウェア開発.
ソフトウェアは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や他のディストリビューション向けにパッケージ化されており、それによって他の様々なハードウェアでも動作する可能性がある。