1) Are there special HALs for virtualized systems as opposed to the HALs for non-virtualized systems?
Example: I have a Windows 2000 server running virtualized in a Windows 2008 HyperV session. When I check Computer Device Manager Hardware Computer both the virtualized session and the host system same the same thing - multiprocessor CPU. However when I look at the respective HAL file sizes they are different.
2) Do HAL's change from OS to OS e.g. the single processor HAL for XP is different than the single processor HAL for Windows 2000 which is in turn different than the one for Windows 2003 and they are all different than the 2008 single processor HAL?
(a) If there are different HAL's for different OS and different HALs for virtualized and non-virtualized systems what are the rules for deciding which one gets loaded? Back to my example, what HAL would be loaded in a virtualized Windows 2000 server under HyperV?
(b) If I choose to only see/utilized one CPU in my virtual session even though the system is a quadcore and in theory I could see four CPUS does that mean my virtual session has a single processor HAL as opposed to a multiprocessor HAL?