Jump to content
  • Advertisement
Sign in to follow this  
godmodder

Motherboard-dependent code

This topic is 698 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi,

 

Lately I got interested in the architecture of operating systems. So, I was reading the book "Windows Internals" and I read some things about the hardware abstraction layer (HAL).

I could not find an answer by googling to the following question: Does an OS contain motherboard-specific code?

 

To clarify: I know that an OS is very much dependent on CPU architecture. I can imagine running drivers for the motherboard chipset as well. But does the HAL really contain motherboard-specific code? Even for motherboards that run on the same chipset? (e.g. z97)

 

 

I would be really grateful if someone could clear this up.

 

Share this post


Link to post
Share on other sites
Advertisement
At the very least, an OS needs to be able to talk to the motherboard's BIOS.

OS talks to BIOS, figures out at least what kind of unique hardware is present, then loads the drivers for that hardware.

The fact that the BIOS *could* be different between motherboards (even though it's usually pretty standardized) means that the OS contains motherboard-specific code.

Share this post


Link to post
Share on other sites

Ok, I was confused because I thought: how does it talk to the BIOS? Calling the BIOS requires 16-bit real mode, while the HAL runs in 32/64bit protected mode at all times.

It turns out they actually wrote a 16-bit emulator in HAL.dll to deal with this :D

 

Though I still wonder whether they also deal with PIC/APIC stuff in the HAL. Are those things integrated into CPUs nowadays?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!