Just as you avoid erroneous API calls or work around them, you can deal with hardware bugs and work around them. It's the same for both--
in an api you program to a standard codeset which the os can trap and kill if it goes awry.
in direct hardware you have a set of commands(loose wording) that directly control the hardware that has the potential to let multiple programs access this hardware simultaneously. this creates the possibility of causing a hardware lockup killing the system.
but I would say worse for APIs as too many versions confuse things.
uh nope if a piece of software requires directx 10 or higher it is cut and dry. directx 10 even has backwards compatibility with previous versions. also this piece of software installs the version it needs on install.
I know how IOPM works. You have a very shallow understanding of it. You can go direct to hardware and still have IOPM.
yea i do have a shallow understanding of it. but what i understand is that it is a gate system. and the port is open or closed. that it is very simplistic in operation. but closing the barn door after a lockup is not of any use.
In order for the os to really control the flow you will have to adopt some form of api this way the os can refuse to pass on something that is not properly executed. this is the point of an api.