操作系统怎么控制硬件的

操作系统如何控制硬件的?
  一般硬件控制都是通过操作系统提供的
  好比 画一个窗口 文件写入读取 应该是使用的操作系统API吧
  如果是这样那么操作系统如何控制硬件的? 
  是硬件自己提供了指令吗 然后操作系统对不同的硬件提供的指令进行统一 从而提供操作?
  求详解
------解决方案--------------------
本帖最后由 91program 于 2014-06-20 09:39:38 编辑
这个问题,查找一下就有答案的

还真不是一两句就能说清楚的
------解决方案--------------------
说的不一定对,说说我的了解:
1.硬件连接以后,操作系统加载对应的驱动程序,驱动程序由硬件厂商提供
2.对硬件的控制都在驱动程序里
3.操作系统访问硬件,都是文件操作,打开文件,读文件,写文件,关闭文件。

--------------------------------------------------
具体控制硬件,主要通过端口和内存映射,打个比方,显卡连接操作系统,会映射显存到一段地址,你操作这段内存,就可以显示不同的画面。其他设备一般都是映射一个端口地址,按照约定向端口地址写入数据,就可以控制硬件。这个基本都在驱动程序里,很细节的东西了。