Knowledge

HAL (software)

Source đź“ť

522: 956: 29: 468:
HAL as it has "become a large monolithic unmaintainable mess". The process is largely complete, but some use of HAL remains – Debian squeeze (Feb 2011) and Ubuntu version 10.04 remove HAL from the basic system and boot process. In Linux, it is in the process of being merged into
338:. As a result, devices are discovered or change state in ways which can be difficult to track through the system call interface or Unix IPC. The complexity of doing so forces application authors to re-implement hardware support logic. 341:
Some devices also require privileged helper programs to prepare them for use. These must often be invoked in ways that can be awkward to express with the Unix permissions model (for example, allowing users to join
362:
HAL is a single daemon responsible for discovering, enumerating and mediating access to most of the hardware on the host computer. Applications communicate with HAL through the
322:
Computer hardware, however, has increased in complexity and the abstractions provided by Unix kernels have not kept pace with the proliferating number of device and
1127: 473:(main udev, libudev, and udev-extras) and existing udev and kernel functionality. The replacement for non-Linux systems such as FreeBSD is devd. 480:
was planned to replace certain aspects of HAL, but in March 2009, DeviceKit was deprecated in favor of adding the same code to udev as package
790: 319:
in order to communicate with hardware through these abstractions. This sufficed for the simple hardware of early desktop computing.
1122: 576:
HAL is licensed to you under your choice of the Academic Free License version 2.1, or the GNU General Public License version 2
527: 402:
on these objects; applications can listen for signals and react to the hardware events that they signify—events such as a
16:
This article is about a UNIX-like operating system subsystem. For the general concept and the Windows NT kernel HALs, see
383:
is represented as a D-Bus object, and its bus address is used as a unique identifier. Devices include abstractions like
1107: 873: 768: 141: 292:
kernel HALs, which handle some platform-specific core functionality within the kernel, such as interrupt routing.
853: 354:
to provide their own access control and privilege separation, potentially introducing security holes each time.
589: 245: 1112: 799: 783: 307:
was responsible for providing an abstract interface to the hardware the system ran on. Applications used the
1060: 366: 72: 278: 158: 122: 449: 304: 714: 1132: 1117: 1002: 776: 739: 1027: 229:
Some other operating systems which don't have an alternative like udev or devd still use HAL.
373: 370: 282: 162: 1065: 241: 233: 212: 17: 8: 964: 868: 425: 270: 226:
on Linux as of 2008–2010 and devd on FreeBSD. Previously, HAL was built on top of udev.
42:
Please help update this article to reflect recent events or newly available information.
1047: 1017: 863: 858: 351: 129: 346:
only if they are logged into the video console). Application authors resort to using
883: 384: 237: 798: 1086: 977: 906: 811: 387:
and visible wireless networks. The device's functionality is exposed through D-Bus
343: 335: 301: 255: 153: 101: 803: 614: 595: 327: 259: 146: 955: 689: 569: 1081: 693: 403: 222:
on most Linux distributions and on FreeBSD. Functionality is being merged into
440:
rule to allow the udev daemon to notify HAL whenever new device nodes appear.
1101: 274: 878: 461: 457: 433: 407: 331: 312: 465: 316: 308: 219: 118: 763: 173: 78: 987: 936: 931: 827: 668: 644: 323: 289: 992: 972: 664: 638: 477: 208: 1007: 997: 982: 832: 326:
types now common on both server and desktop computers. Most modern
204: 554: 1055: 941: 916: 110: 1022: 921: 890: 848: 512: 497: 453: 347: 114: 1012: 911: 502: 429: 420: 363: 263: 106: 926: 507: 470: 437: 232:
The purpose of the hardware abstraction layer was to allow
223: 134: 1037: 1032: 718: 267: 262:
project, and was a key part of the software stack of the
248: 251:, regardless of the type of the underlying hardware. 517: 460:
and on FreeBSD, and projects such as KDE, GNOME and
432:
systems) to discover hardware and listen for kernel
413: 410:spinning up or a laptop computer closing its lid. 369:mechanism, which abstracts the hardware behind an 59:Software subsystem for UNIX-like operating systems 1099: 436:events. Some Linux distributions also provide a 254:HAL for Linux OS was originally envisioned by 784: 633: 631: 548: 546: 544: 791: 777: 552: 628: 541: 1128:Software using the Academic Free License 715:"Revision 1206281: Features in KDE Base" 448:As of 2011, Linux distributions such as 587: 484:, and some functions have now moved to 1100: 772: 240:of the host system through a simple, 528:Free and open-source software portal 22: 288:HAL is unrelated to the concept of 13: 398:HAL broadcasts hardware events as 334:-capable and can have non-trivial 14: 1144: 1061:Open Collaboration Services (OCS) 757: 391:, and its state accessed through 954: 764:HAL - Hardware Abstraction Layer 740:"TechnicalOverview: HAL removal" 553:Pennington, Havoc (2003-07-10), 520: 414:Implementations and obsolescence 27: 277:, dual-licensed under both the 732: 707: 682: 657: 607: 581: 562: 1: 800:Free and open-source software 588:Zeuthen, David (2009-11-01), 534: 443: 311:interface, or performed file 571:HAL source code license text 395:, a set of key-value pairs. 295: 211:operating systems providing 7: 491: 201:Hardware Annotation Library 81:/ November 30, 2009 10: 1149: 1123:Human–computer interaction 279:GNU General Public License 197:Hardware Abstraction Layer 159:GNU General Public License 15: 1074: 1046: 963: 952: 899: 841: 820: 810: 556:Making Hardware Just Work 357: 168: 152: 140: 128: 100: 96: 71: 67: 36:This article needs to be 1108:Applications using D-Bus 742:. ubuntu.com. 2010-05-17 591:HAL 0.5.14 Specification 350:binaries or run service 236:to discover and use the 476:Initially a new daemon 1028:Video Acceleration API 464:are in the process of 379:Each logical hardware 83:; 14 years ago 690:"Features/HalRemoval" 406:being plugged in, an 283:Academic Free License 163:Academic Free License 1113:Free system software 271:desktop environments 234:desktop applications 213:hardware abstraction 18:Hardware abstraction 802:projects hosted by 426:virtual file system 418:On Linux, HAL uses 300:Traditionally, the 64: 62: 1095: 1094: 950: 949: 344:wireless networks 330:have also become 190: 189: 57: 56: 1140: 1087:Portland Project 958: 818: 817: 793: 786: 779: 770: 769: 751: 750: 748: 747: 736: 730: 729: 727: 726: 711: 705: 704: 702: 701: 686: 680: 679: 677: 676: 661: 655: 654: 653: 652: 635: 626: 625: 623: 622: 611: 605: 604: 603: 602: 585: 579: 578: 566: 560: 559: 550: 530: 525: 524: 523: 487: 483: 423: 302:operating system 256:Havoc Pennington 186: 183: 181: 179: 177: 175: 102:Operating system 91: 89: 84: 65: 61: 52: 49: 43: 31: 30: 23: 1148: 1147: 1143: 1142: 1141: 1139: 1138: 1137: 1133:User interfaces 1118:Freedesktop.org 1098: 1097: 1096: 1091: 1070: 1042: 959: 946: 895: 837: 806: 804:freedesktop.org 797: 760: 755: 754: 745: 743: 738: 737: 733: 724: 722: 713: 712: 708: 699: 697: 688: 687: 683: 674: 672: 663: 662: 658: 650: 648: 637: 636: 629: 620: 618: 615:"hal: doc/spec" 613: 612: 608: 600: 598: 596:freedesktop.org 586: 582: 568: 567: 563: 551: 542: 537: 526: 521: 519: 494: 485: 481: 446: 419: 416: 385:disk partitions 360: 298: 260:freedesktop.org 172: 147:System software 92: 87: 85: 82: 60: 53: 47: 44: 41: 32: 28: 21: 12: 11: 5: 1146: 1136: 1135: 1130: 1125: 1120: 1115: 1110: 1093: 1092: 1090: 1089: 1084: 1082:Create Project 1078: 1076: 1072: 1071: 1069: 1068: 1063: 1058: 1052: 1050: 1044: 1043: 1041: 1040: 1035: 1030: 1025: 1020: 1015: 1010: 1005: 1000: 995: 990: 985: 980: 975: 969: 967: 961: 960: 953: 951: 948: 947: 945: 944: 939: 934: 929: 924: 919: 914: 909: 903: 901: 897: 896: 894: 893: 888: 887: 886: 876: 871: 866: 861: 856: 851: 845: 843: 839: 838: 836: 835: 830: 824: 822: 815: 808: 807: 796: 795: 788: 781: 773: 767: 766: 759: 758:External links 756: 753: 752: 731: 706: 694:Fedora Project 681: 656: 627: 606: 580: 561: 539: 538: 536: 533: 532: 531: 516: 515: 510: 505: 500: 493: 490: 445: 442: 415: 412: 404:digital camera 359: 356: 297: 294: 258:. It became a 207:subsystem for 188: 187: 170: 166: 165: 156: 150: 149: 144: 138: 137: 132: 126: 125: 104: 98: 97: 94: 93: 77: 75: 73:Stable release 69: 68: 58: 55: 54: 35: 33: 26: 9: 6: 4: 3: 2: 1145: 1134: 1131: 1129: 1126: 1124: 1121: 1119: 1116: 1114: 1111: 1109: 1106: 1105: 1103: 1088: 1085: 1083: 1080: 1079: 1077: 1073: 1067: 1064: 1062: 1059: 1057: 1054: 1053: 1051: 1049: 1045: 1039: 1036: 1034: 1031: 1029: 1026: 1024: 1021: 1019: 1016: 1014: 1011: 1009: 1006: 1004: 1001: 999: 996: 994: 991: 989: 986: 984: 981: 979: 976: 974: 971: 970: 968: 966: 962: 957: 943: 940: 938: 935: 933: 930: 928: 925: 923: 920: 918: 915: 913: 910: 908: 905: 904: 902: 898: 892: 889: 885: 882: 881: 880: 877: 875: 872: 870: 867: 865: 862: 860: 857: 855: 852: 850: 847: 846: 844: 840: 834: 831: 829: 826: 825: 823: 819: 816: 813: 809: 805: 801: 794: 789: 787: 782: 780: 775: 774: 771: 765: 762: 761: 741: 735: 720: 716: 710: 695: 691: 685: 670: 666: 660: 646: 642: 641: 634: 632: 616: 610: 597: 593: 592: 584: 577: 573: 572: 565: 558: 557: 549: 547: 545: 540: 529: 518: 514: 511: 509: 506: 504: 501: 499: 496: 495: 489: 479: 474: 472: 467: 463: 459: 455: 451: 441: 439: 435: 431: 427: 422: 411: 409: 405: 401: 396: 394: 390: 386: 382: 377: 375: 372: 368: 365: 355: 353: 349: 345: 339: 337: 333: 329: 325: 320: 318: 314: 310: 306: 303: 293: 291: 286: 284: 280: 276: 275:free software 272: 269: 265: 261: 257: 252: 250: 247: 243: 239: 235: 230: 227: 225: 221: 216: 214: 210: 206: 202: 198: 194: 185: 171: 167: 164: 160: 157: 155: 151: 148: 145: 143: 139: 136: 133: 131: 127: 124: 120: 116: 112: 108: 105: 103: 99: 95: 80: 76: 74: 70: 66: 51: 39: 34: 25: 24: 19: 879:X.Org Server 744:. Retrieved 734: 723:. Retrieved 721:. 2010-12-19 709: 698:. Retrieved 696:. 2012-01-09 684: 673:. Retrieved 671:. 2011-06-28 665:"HALRemoval" 659: 649:, retrieved 647:, 2013-05-10 639: 619:. Retrieved 617:. 2010-03-16 609: 599:, retrieved 590: 583: 575: 570: 564: 555: 475: 447: 417: 408:optical disc 399: 397: 392: 388: 380: 378: 371:object-based 361: 340: 321: 317:device nodes 299: 287: 253: 231: 228: 217: 200: 196: 192: 191: 48:January 2024 45: 37: 482:udev-extras 466:deprecating 376:mechanism. 309:system call 218:HAL is now 174:freedesktop 119:OpenSolaris 1102:Categories 1048:Frameworks 988:Fontconfig 937:pkg-config 932:PackageKit 828:PulseAudio 814:components 746:2017-01-15 725:2017-01-15 700:2017-01-15 675:2017-01-15 669:debian.org 651:2017-01-15 645:ubuntu.com 640:Halsectomy 621:2017-01-15 601:2017-01-15 535:References 444:Deprecated 393:properties 389:interfaces 336:topologies 324:peripheral 290:Windows NT 220:deprecated 199:or rather 88:2009-11-30 1066:Telepathy 993:GStreamer 973:AppStream 965:Libraries 478:DeviceKit 296:Rationale 273:. It is 209:UNIX-like 180:/Software 1075:Meetings 1008:HarfBuzz 998:libinput 983:FreeType 869:Plymouth 842:Graphics 833:PipeWire 492:See also 488:proper. 281:and the 246:abstract 242:portable 238:hardware 205:software 130:Platform 1056:CppUnit 1018:Poppler 1003:Mesa 3D 942:Systemd 917:Flatpak 874:Wayland 864:nouveau 859:Enchant 434:hotplug 400:signals 352:daemons 332:hotplug 203:) is a 169:Website 154:License 123:Solaris 111:FreeBSD 86: ( 38:updated 1023:Swfdec 922:Kmscon 891:Xephyr 884:Glamor 849:Compiz 513:UPower 498:devfsd 458:Fedora 456:, and 454:Debian 450:Ubuntu 381:device 358:Design 348:setuid 305:kernel 115:NetBSD 79:0.5.14 1013:Pango 978:Cairo 912:D-Bus 907:Avahi 900:Other 821:Sound 503:eudev 462:X.org 430:Linux 364:D-Bus 328:buses 264:GNOME 178:/wiki 107:Linux 927:luit 508:udev 486:udev 471:udev 438:udev 428:for 421:/sys 266:and 244:and 224:udev 182:/hal 176:.org 161:and 142:Type 135:UNIX 1038:Xft 1033:XCB 854:DRI 719:KDE 424:(a 374:RPC 367:IPC 315:on 313:I/O 268:KDE 249:API 193:HAL 63:HAL 1104:: 812:OS 717:. 692:. 667:. 643:, 630:^ 594:, 574:, 543:^ 452:, 285:. 215:. 121:, 117:, 113:, 109:, 792:e 785:t 778:v 749:. 728:. 703:. 678:. 624:. 195:( 184:/ 90:) 50:) 46:( 40:. 20:.

Index

Hardware abstraction
Stable release
0.5.14
Operating system
Linux
FreeBSD
NetBSD
OpenSolaris
Solaris
Platform
UNIX
Type
System software
License
GNU General Public License
Academic Free License
freedesktop.org/wiki/Software/hal/
software
UNIX-like
hardware abstraction
deprecated
udev
desktop applications
hardware
portable
abstract
API
Havoc Pennington
freedesktop.org
GNOME

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑