Exetools

Exetools (https://forum.exetools.com/index.php)
-   General Discussion (https://forum.exetools.com/forumdisplay.php?f=2)
-   -   Is the 'HAL dll' the lowest level file? (https://forum.exetools.com/showthread.php?t=4426)

Rhodium 06-10-2004 16:30

Is the 'HAL dll' the lowest level file?
 
The HAL (Hardware Abstraction Layer) has a dll in windows called 'hal.dll'. This is even below the kernel level. It's the lowest level file on a windows box isn't it?

Is it even below the 'hardware bus driver'?



... Another low-level thing is 'IRQL levels'.
IRQL is like a hierarchy within ring-0.

Just how low-level can things get?
i.e (When do you hit the absolute basement)?

auroras 06-10-2004 18:27

I would say so. Drivers uses HAL to perform I/O as well. And apparently you can replace just the HAL to port WinNT to a different platform.

Aur


Quote:

Originally Posted by Rhodium
The HAL (Hardware Abstraction Layer) has a dll in windows called 'hal.dll'. This is even below the kernel level. It's the lowest level file on a windows box isn't it?

Is it even below the 'hardware bus driver'?



... Another low-level thing is 'IRQL levels'.
IRQL is like a hierarchy within ring-0.

Just how low-level can things get?
i.e (When do you hit the absolute basement)?


Rhodium 06-11-2004 02:35

What about the 0x1F Interrupt?

That is pretty low-level.

Mkz 06-17-2004 15:45

IMHO the HAL is the lowest level you get. Lowest in the sense that it doesn't rely on any layer to access the "important stuff" in the hardware, such as changing IRQL status, for instance.
If you get the intel manuals and look at the code in the hal, you'll see it using the reserved memory ranges mentioned, the interrupts, etc.

You can replace just the HAL to make it work on another "platform". Not a different cpu (with different opcodes), only a different architecture (such as multi-processor instead of uniprocessor) but with the same instruction set.

matt 06-17-2004 19:15

It's just a function layer providing a uniform interface on port access or hardware register access ...

It does not stand for any hardware, just hiding various differences of hardwares.

Any devices and any buses need their own device drivers, these drivers will use the common routines provided by HAL.dll to function the real hardware ...

Just my understanding

homersux 08-12-2004 21:47

In an architectural view of the windows operating system, the HAL(hardware abstraction layer) is indeed the bottom layer of operating system, the kernel (ntoskrnl) sits on top of HAL. Hal presents the kernel a transparent view of underlying hardware interfaces, for example, your keyboard and mouse. Also included are busses, interrupts, timers, DMA, memory cache control, other I/O devices, etc. The HAL take care of all gory details of interacting with all the various hardware interfaces and the kernel doesn't have to burden itself with the details.

In conclusion, HAL is the last layer of software, beneath it it's all hardware or almost! :P

Now onto your 2nd question, from the intel ia32 manual,
highest -> lowest seen by the CPU, 9 levels
hardware reset and machine checks
trap on task switch
external hardware interventions
traps on the previous instruction
external interrupts
code breakpoint fault
faults from fetching next instruction
faults from decoding next instruction
faults from instruction execution

Windows kernel maintains a separate but related IRQL that is 5 bits long (0->31 highest), the user level request is always 0 (passive). There is another form of P.L., inside the IDT descriptor, however this one is related to interrupt handler execution priviledge level (2 bit, ring0 and ring3).

So the lowest of the low is the hardware reset or machine check signal sent to CPU/OS.


All times are GMT +8. The time now is 20:30.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX