Thứ Ba, 4 tháng 6, 2013

Hardware Abstraction Layer [Windows Internal]

Một trong các thành phần quan trọng của thiết kế Windows là khả năng portable (portability) của nó qua các nền tảng phần cứng khác nhau. Hardware abstraction layer (HAL) là một phần "chìa khóa" trong việc tạo ra khả năng portable. HAL là một loadable kernel-mode module (Hall.dll) cung cấp một giao tiếp mức thấp (low-level interface) đến nền tảng phần cứng mà Windows đang chạy trên đó. Nó ẩn các chi tiết phụ thuộc phần cứng ví dụ như các giao tiếp xuất nhập (I/O interfaces), Các điều khiển ngắt (interrupt controller) và các cơ chế giao tiếp multiprocessor  -- bất cứ các hàm nào đó là phụ thuộc cả kiến trúc và phụ thuộc vào máy.

Vì vậy hơn là việc truy nhập phần cứng trực tiếp, các thành phần bên trong Windows cũng như các device drivers được viết bởi user duy trì khả năng portability bởi việc gọi HAL routines khi chúng cần thông tin phụ thuộc nền tảng. Vì lí do đó, HAL routines được documented trong Windows DDK. Để tìm hiểu thêm về HAL và ứng dụng của nó trong device drivers , tham khảo DDK.

Mặc dù một vài HAL có trong Windows, nhưng chỉ một cái được chọn tại lúc cài đặt và được sao chép tới system disk với filename Hall.dll.

Danh sách x86 HALs trong \Windows\Driver Cache\i386\Driver.cab

HAL File Name        Systems Supported
Hal.dll                       Standard PCs
halacpi.dll                  Advanced Configuration and Power Interface (ACPI) PCs
halapic.dll                  Advanced Programmable Interrupt Controller
halaacpi.dll                APIC ACPI PCs
Halmps.dll                 Multiprocessor PCs
Halmacpi.dll              Multiprocessor ACPI PCs
Halborg.dll          Silicon Graphics Workstation (Windows 2000 only; platform no longer marketed)
Halsp.dll                   Compaq SystemPro (Windows XP only)

Không có nhận xét nào:

Đăng nhận xét