HAL (소프트웨어)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
HAL (Hardware Abstraction Layer)은 운영 체제와 하드웨어 간의 추상화 계층을 제공하는 소프트웨어 데몬이었다. 복잡해진 하드웨어 환경에서 응용 프로그램이 하드웨어에 접근하고 제어하는 것을 돕기 위해 설계되었다. HAL은 D-Bus를 통해 응용 프로그램과 통신하며, 하드웨어 장치를 객체로 표현하고, 하드웨어 이벤트를 신호로 브로드캐스트하는 방식으로 작동했다. 리눅스에서 Sysfs를 사용하여 하드웨어를 검색하고, udev 규칙을 통해 핫 플러그 이벤트를 처리했다. 2011년 이후, 우분투, 데비안, 페도라 등 주요 리눅스 배포판과 KDE, GNOME, X.org와 같은 프로젝트에서 HAL을 유지보수 불가능한 것으로 간주하고 사용 중단했다. 현재는 udev, DeviceKit, devd와 같은 대체 기술로 대체되었으며, HAL은 사실상 기능이 정지된 상태이다.
더 읽어볼만한 페이지
- Freedesktop.org - D-Bus
D-Bus는 2002년에 시작된 프로세스 간 통신 시스템으로, 시스템 버스와 세션 버스를 통해 정보 공유, 모듈성, 권한 격리를 제공하며, 일대일 요청-응답 및 발행/구독 통신 방식을 지원한다. - Freedesktop.org - 메사 (컴퓨터 그래픽스)
메사는 다양한 운영체제에서 3D 그래픽 하드웨어 가속을 지원하는 자유-오픈 소스 그래픽 라이브러리로, OpenGL, Vulkan, OpenCL 등 다양한 그래픽 API를 지원하며 소프트웨어 렌더링 기능도 제공한다. - 자유 시스템 소프트웨어 - 리눅스 커널
리눅스 커널은 1991년 리누스 토르발스가 개발을 시작한 UNIX에서 영감을 받은 운영 체제 커널로, GPLv2 라이선스를 채택하여 자유로운 사용과 배포를 허용하며 다양한 하드웨어 아키텍처를 지원하고 모듈형 구조를 통해 장치 드라이버 추가가 가능하다. - 자유 시스템 소프트웨어 - ZeroMQ
ZeroMQ는 다양한 메시징 패턴을 지원하고 높은 성능을 제공하는 메시지 라이브러리이다. - 사용자 인터페이스 - 로그인
로그인은 특정 페이지, 웹사이트 또는 응용 프로그램에 접근하기 위해 사용자 이름과 암호를 입력하여 시스템에 접근하는 절차이며, 1960년대 시분할 시스템과 1970년대 BBS에서 사용되기 시작했다. - 사용자 인터페이스 - 키넥트
키넥트는 마이크로소프트에서 개발한 동작 인식 장치로, 적외선 프로젝터와 센서를 사용하여 사용자의 움직임과 음성을 인식하며, Xbox용으로 출시되어 큰 인기를 얻었지만 개인정보 보호 문제 등으로 판매가 부진하여 생산이 중단되었고, 다양한 분야에서 활용되며 기술적 가치를 인정받아 클라우드 기반 Azure Kinect로 이어졌으나 단종되었다.
HAL (소프트웨어) - [IT 관련 정보]에 관한 문서 |
---|
2. 배경 (Rationale)
전통적으로, 운영 체제 커널은 시스템이 실행되는 하드웨어에 대한 추상적인 인터페이스를 제공하는 역할을 했다. 응용 프로그램은 시스템 호출 인터페이스를 사용하거나 이러한 추상화를 통해 하드웨어와 통신하기 위해 장치 노드에서 I/O를 수행했다. 이것은 초기 데스크톱 컴퓨팅의 단순한 하드웨어에는 충분했다.
HAL은 호스트 컴퓨터의 하드웨어를 검색, 열거하고 접근을 중재하는 단일 데몬이다. 응용 프로그램은 D-Bus IPC 메커니즘을 통해 HAL과 통신하며, 이는 객체 지향 RPC 메커니즘을 통해 하드웨어를 추상화한다.
리눅스에서 HAL은 하드웨어를 검색하고 커널 핫 플러그 이벤트를 수신하기 위해 `/sys` (리눅스 시스템을 위한 가상 파일 시스템)를 사용한다. 일부 리눅스 배포판은 새로운 장치 노드가 나타날 때마다 udev 데몬이 HAL에 알리도록 하는 udev 규칙도 제공한다.[5]
[1]
간행물
Making Hardware Just Work
http://ometer.com/ha[...]
2003-07-10
그러나 컴퓨터 하드웨어는 복잡성이 증가했으며 유닉스 커널이 제공하는 추상화는 서버 및 데스크톱 컴퓨터 모두에서 현재 흔하게 사용되는 증가하는 장치 및 주변 장치 유형의 속도를 따라가지 못했다. 대부분의 최신 버스도 핫 스와핑이 가능해졌으며 복잡하지 않은 네트워크 토폴로지를 가질 수 있다. 결과적으로, 장치는 시스템 호출 인터페이스 또는 유닉스 IPC를 통해 추적하기 어려울 수 있는 방식으로 상태가 발견되거나 변경된다. 이러한 복잡성 때문에 응용 프로그램 작성자는 하드웨어 지원 로직을 다시 구현해야 한다.[1]
일부 장치는 또한 사용하기 전에 준비하기 위해 권한이 있는 도우미 프로그램이 필요하다. 이러한 프로그램은 유닉스 권한 모델로 표현하기 어려운 방식으로 호출해야 하는 경우가 많다(예: 사용자가 무선 네트워크에 가입할 수 있도록 허용하는 경우 비디오 콘솔에 로그인한 경우에만 해당).[1] 응용 프로그램 작성자는 자체 접근 제어 및 권한 분리를 제공하기 위해 setuid 바이너리를 사용하거나 서비스 데몬을 실행하여 매번 잠재적으로 보안 구멍을 발생시킨다.
3. 설계 (Design)
각 논리적 하드웨어 ''장치''는 D-Bus 객체로 표현되며, 버스 주소가 고유 식별자로 사용된다. 장치에는 디스크 파티션 및 보이는 무선 네트워크와 같은 추상화가 포함된다. 장치의 기능은 D-Bus ''인터페이스''를 통해 노출되며, 상태는 키-값 쌍의 집합인 ''속성''을 통해 접근된다.
HAL은 이러한 객체에서 하드웨어 이벤트를 ''신호''로 브로드캐스트한다. 응용 프로그램은 신호를 수신하고 디지털 카메라 연결, 광 디스크 회전 또는 랩톱 컴퓨터 덮개 닫기와 같은 하드웨어 이벤트를 감지하여 반응할 수 있다.[3][4]
4. 구현 및 쇠퇴 (Implementations and obsolescence)
2011년 기준으로, 우분투를 비롯한 리눅스 배포판, 데비안,[6] 페도라 및 FreeBSD[7], 그리고 KDE,[8], GNOME 및 X.org와 같은 프로젝트들은 HAL을 "유지보수가 불가능한 거대한 덩어리"로 간주하여 사용 중단하는 과정에 있었다. 이 과정은 대부분 완료되었지만, HAL의 일부 사용은 여전히 남아 있다. 데비안 스퀴즈(2011년 2월) 및 우분투 버전 10.04는 기본 시스템 및 부팅 프로세스에서 HAL을 제거했다.[9] 리눅스에서는 udev (main udev, libudev 및 udev-extras)와 기존 udev 및 커널 기능으로 병합되는 과정이 진행되었다. FreeBSD와 같은 비 리눅스 시스템의 대체품은 devd이다.
처음에는 HAL의 특정 측면을 대체하기 위해 새로운 데몬 DeviceKit이 계획되었지만, 2009년 3월, DeviceKit은 udev-extras 패키지로 동일한 코드를 udev에 추가하는 방식으로 사용이 중단되었고, 일부 기능은 udev로 이동했다.
HAL은 이미 구식이 되었으며, 현재는 유지 보수만 이루어지고 있다. HAL의 기능은 DeviceKit이나 udev 등으로 이전되었다.
참조
[2]
간행물
HAL source code license text
https://cgit.freedes[...]
[3]
간행물
HAL 0.5.14 Specification
https://people.freed[...]
freedesktop.org
2017-01-15
[4]
웹사이트
hal: doc/spec
https://cgit.freedes[...]
2017-01-15
[5]
간행물
Halsectomy
https://wiki.ubuntu.[...]
ubuntu.com
2017-01-15
[6]
웹사이트
HALRemoval
https://wiki.debian.[...]
debian.org
2017-01-15
[7]
웹사이트
Features/HalRemoval
https://fedoraprojec[...]
Fedora Project
2017-01-15
[8]
웹사이트
Revision 1206281: Features in KDE Base
https://commit-diges[...]
KDE
2017-01-15
[9]
웹사이트
TechnicalOverview: HAL removal
https://wiki.ubuntu.[...]
ubuntu.com
2017-01-15
[10]
간행물
Making Hardware Just Work
http://ometer.com/ha[...]
2003-07-10
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com