HAL (ソフトウェア)

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。（このテンプレートの使い方）
出典検索?: "HAL" ソフトウェア – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2023年1月)

|

HAL開発元|  freedesktop.org

|

最新版|

0.5.14 / 2009年12月30日

対応OS|  Linux、FreeBSD
種別|  システムソフトウェア
ライセンス|  GPL と AFL
公式サイト|  freedesktop.org/wiki/Software/hal
テンプレートを表示

HAL（ハル）は デーモン型のHardware Abstract Layerの一種であり、デスクトップアプリケーションがハードウェア情報に容易にアクセスできるようにすることでバスやデバイスの種類に寄らずに各種デバイスを利用できるようにするオープンソースプロジェクトである。これにより、GUIが一貫した形式で全てのリソースをユーザーに提示できる。

例えば、HAL はリムーバブルメディアドライブの情報を収集し、メディアの出し入れをユーザーのデスクトップ環境に通知する。

従来、デスクトップアプリケーションであってもハードウェアへのアクセスは直接カーネルを使って行うしかなかった。しかし、カーネルはデバイスについて全てを知っているわけではないため、この方式では正確さに難点があり、かつ面倒だった。例えば、MP3プレイヤーやデジタルカメラなどはユーザインタフェースでは単なるハードディスクとして示されることがあった。従って、システムに接続されている周辺機器を一覧するようなデスクトップのユーザインタフェースはほとんどなかった。

HAL を使うと、ハードウェアの種類毎の重要な情報が一貫した形式で利用可能となる。新たなデバイスが追加されたとき、追加されたデバイスの種類などの情報を伴って非同期シグナルがシステムのメッセージバス上にブロードキャストされる。このメッセージバスに接続しておくことで、デスクトップアプリケーションが新たなハードウェアを見つけることが可能となる。システムレベルのスクリプトでデバイスを設定することもできる。事実上、HAL はプラグアンドプレイを可能とする。

HAL デーモンはデバイスのリストを実際のハードウェアの状態に合わせて維持する。各デバイスの状態は事前に定義されたキーと値の組で表される。各デバイスオブジェクトの識別には Unique Device Identifier (UDI) という識別子が使われる。キーと値のペアには型があり、HAL の仕様で定義されている。従って、HAL のユーザーはそれらの意味を知ることができる。

## 移行

[編集]

HALはすでに旧態化しており、現在[いつ?]は単にメンテナンスのみが行われている。HALの機能はDeviceKitやudev等に移行している。

## 外部リンク

[編集]

* HAL - Hardware Abstraction Layer at freedesktop.org
* Making Hardware Just Work by Havoc Pennington （2003年7月）

* 表
* 話
* 編
* 歴

freedesktop.orgのプロジェクト

コンポーネント|

* Avahi
* Compiz
* D-Bus
* DRI
* Enchant
* Flatpak
* kmscon（英語版）
* luit（英語版）
* nouveau
* PackageKit
* Plymouth（英語版）
* PulseAudio
* systemd
* Wayland
* X.Org Server
* Glamor
* Xephyr（英語版）

ライブラリ|

* AppStream
* cairo
* Fontconfig
* glitz
* GStreamer
* Mesa 3D
* fprint
* HarfBuzz
* Pango
* Poppler
* Swfdec
* Video Acceleration API（英語版）
* XCB
* Xft

フレームワーク|

* CppUnit（英語版）
* Galago
* GeoClue
* Open Collaboration Services（英語版）
* Telepathy

ミーテイング|

* Create Project（英語版）
* Portland Project

この項目は、FLOSSに関連した書きかけの項目です。この項目を加筆・訂正などしてくださる協力者を求めています（Portal:FLOSS）。

|

* 表示
* 編集