Exetools  

Go Back   Exetools > General > General Discussion

Notices

Reply
 
Thread Tools Display Modes
  #1  
Old 06-10-2004, 16:30
Rhodium
 
Posts: n/a
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)?

Last edited by Rhodium; 06-10-2004 at 16:55.
Reply With Quote
  #2  
Old 06-10-2004, 18:27
auroras
 
Posts: n/a
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)?
Reply With Quote
  #3  
Old 06-11-2004, 02:35
Rhodium
 
Posts: n/a
What about the 0x1F Interrupt?

That is pretty low-level.

Last edited by Rhodium; 06-11-2004 at 02:38.
Reply With Quote
  #4  
Old 06-17-2004, 15:45
Mkz Mkz is offline
Friend
 
Join Date: Jan 2002
Posts: 98
Rept. Given: 0
Rept. Rcvd 2 Times in 2 Posts
Thanks Given: 5
Thanks Rcvd at 25 Times in 17 Posts
Mkz Reputation: 2
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.
Reply With Quote
  #5  
Old 06-17-2004, 19:15
matt matt is offline
Friend
 
Join Date: Jan 2002
Posts: 36
Rept. Given: 0
Rept. Rcvd 0 Times in 0 Posts
Thanks Given: 3
Thanks Rcvd at 9 Times in 7 Posts
matt Reputation: 0
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
Reply With Quote
  #6  
Old 08-12-2004, 21:47
homersux
 
Posts: n/a
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.

Last edited by homersux; 08-12-2004 at 22:19.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
about level Utshiha General Discussion 2 09-26-2014 15:20
How to?-How to mark a file at the OS level SOLAR General Discussion 7 05-30-2005 21:28
where are second level dll functions raygun General Discussion 2 01-24-2005 05:56


All times are GMT +8. The time now is 05:47.


Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX
( 1998 - 2020 )