HAL

Från Unix.se, den fria unixresursen.

Hårdvara

HAL står för Hardware Abstraction Layer och ingår som en del i Project Utopia vars syfte är att få hårdvara att bara funkafria operativsystem. HAL:s roll är att underhålla en lista över enhetsobjekt i systemet. Poängen med detta är att enhetsobjekten är abstraherade från hårdvaran på plattforms- och enhetsoberoende sätt. HAL lagrar också nyckel/värde-par för diverse enhetsinformation. Kommunikation med klientapplikationer sker via DBus, en annan teknologi i Project Utopia.

Här följer ett exempel i Python som listar lagringsenheter:

import dbus

bus = dbus.Bus(dbus.Bus.TYPE_SYSTEM)
hal_service = bus.get_service('org.freedesktop.Hal')
hal_manager = hal_service.get_object('/org/freedesktop/Hal/Manager',
                                     'org.freedesktop.Hal.Manager')
storage_devs = hal_manager.FindDeviceByCapability("storage")

for dev_name in storage_devs:
    dev = hal_service.get_object(dev_name, 'org.freedesktop.Hal.Device')
    try:
        print dev.GetPropertyString('info.product')
    except:
        pass

Film

HAL är också skeppsdatorn ombord på skeppet Discovery i filmen 2001 - A Space Odyssey (http://www.imdb.com/title/tt0062622/) av Arthur C Clarke och Stanley Kubrick. Namnet HAL sägs komma från att man förskjutit bokstäverna i IBM (som vid filmens skapande var ett av de "stora" företagen) ett steg bakåt.

Externa länkar

Personliga verktyg