驱动程序运行在内核空间,而应用程序运行于用户空间。一般情况下应用程序是不能直接访问硬件的,但最终程序的执行结果必然是要到硬件的,这时就需要驱动程序。
打个比方,你要将一段字符写进硬盘,你在应用程序中是以文件的抽象方式进行的,但是在这个层面上你很难理解到底为什么这个函数能够写呢,它是如何找到硬件的呢,又是如何写进去的呢,此时其实我们可爱的驱动程序就发挥了作用,把你的数据写到硬盘由它来做,给你“屏蔽”掉许多复杂的硬件操作,可以让您更专注于应用程序本身的设计。
其实总结一下,驱动程序扮演的是硬件和应用程序之间的桥梁作用,是操作系统的一部分,希望您能满意。
应用程序是上层的,对上直接与用户接触
对下与shell脚本交流
脚本与内核交流
驱动程序是被调用的,一般属于内核那一层,在shell脚本之下,直接与硬件交流
应用程序和驱动的关系 其实就是发言人与翻译官之间的关系。
打个比方,
应用程序想让硬件干一件事,但是硬件听不懂它的话,
驱动程序相当于 翻译官 比如, 应用程序想打印文件,这个时候,它把信息告诉 驱动
驱动翻译成 打印机能够识别的格式。
然后打印机就打印出来了。