外設(shè)驅(qū)動(dòng)程序就是外設(shè)提供給操作系統(tǒng)調(diào)用的接口檩电。通常外設(shè)都有自己的BIOS贤笆,并固化在外設(shè)的ROM中,就像主板BIOS一樣减牺,如果不用專用程序刷新是不會(huì)改變的豌习。為了讓外設(shè)適應(yīng)不同的操作系統(tǒng),就必須針對(duì)不同的操作系統(tǒng)對(duì)外設(shè)BIOS進(jìn)行不同的封裝拔疚。為了適應(yīng)Linux,需要按Linux的接口定義封裝外設(shè)的BIOS既荚,形成Linux可以直接調(diào)用的api; Windows稚失、Mac也一樣。這些針對(duì)不同操作系統(tǒng)的api就是該外設(shè)在不同操作系統(tǒng)上的驅(qū)動(dòng)程序恰聘。
根據(jù)前面的描述句各,一個(gè)很直接的問題就產(chǎn)生了,為什么不讓操作系統(tǒng)直接調(diào)用外設(shè)上的BIOS呢晴叨?那樣更直接效率也更高凿宾。原因是同一種外設(shè)有很多的制造商,他們的BIOS很可能不同兼蕊,操作系統(tǒng)廠商不可能讓自己的產(chǎn)品兼容所有的外設(shè)初厚。只有外設(shè)制造商在操作系統(tǒng)與外設(shè)之間做適配,因此孙技,也可以說驅(qū)動(dòng)程序也就是一個(gè)適配器产禾。
另外,從硬件驅(qū)動(dòng)的角度看牵啦,其實(shí)亚情,操作系統(tǒng)就是一個(gè)大驅(qū)動(dòng)程序,一個(gè)針對(duì)CPU和內(nèi)存編寫的驅(qū)動(dòng)哈雏,在人和硬件之間做適配楞件。