视频卡驱动.1.介绍 - pengphei/haiku-cn GitHub Wiki

简介

介绍

世界上有很多的程序员,但是他们中很少人知道如何编写驱动程序。为了和硬件进行交互,任何的操作系统都需要驱动程序。有经验的驱动编写程序员的缺失是个很严重的问题,而我编写这份文档的目的也源于此。

本文档为提供了一些实践方面的经验,希望能够对那些希望对驱动的构成和编写感兴趣的人们有一些帮助。在本文中,我们将会讲述视频卡驱动编写的基本内容,并辅以一定的实践练习,而且我们将使用 BeOS 作为操作的环境。

由于很多程序员对硬件了解甚少,在此我们将会对硬件进行一些必要的介绍。我们将在介绍理论的同时,加入一些实例,并且对最重要的问题,我们都将以这种方式进行讨论讲解。附录B是本文中所用到的常用术语总结,其中将尽可能的对基本的硬件术语进行详细的介绍。

我们将尽可能的从全局的观点出发,因此将会提供更多有关驱动 hook 的细节,而不是程序接口(API)。对于 BeOS 的 API 来说,BeBook 是最好的参考。本文包含了许多重要的补充信息,因为 BeBook 中有关显卡驱动的部分并不完整。有些部分在 BeBook 中完全没有涉及到,而其他的部分则需要额外的解释。

现代显卡或多或少的建立于VGA标准之上,并且仍然有内建的VGA模块。由于VGA标准仍然有一定的(公开)影响。对于老的VGA标准显卡驱动,本文档是没有任何价值的。对于它们来说,最好的参考是“Programmer's Guide to the EGA and VGA Cards ”(任何版本)。有关PCI和AGP总线的技术信息,以及二维加速显卡的实例,可以参考“The Indispensable PC Hardware Book ”。

需要注意的是,本文档并不能够保证 100% 的完整无误。而且它也不可能完全讲清驱动,硬件和编程。不过幸运的是,对于编写显卡驱动而言,您也不需要了解所有的内容。

文档结构

为了尽快开始讲解 BeOS 视频卡驱动的创建和编写,我选择从顶至下的方法。首先,介绍一些基本的内容,然后我们讲逐渐深入更为难懂的部分。API 相关的部分以及系统中底层的驱动部分将会进行详述。

在为 BeOS 编写视频卡驱动时,大概有5%的时间将用于内核驱动,而剩余的 95% 则花费在驱动加速部分。因此,本文内容重点将放在驱动加速方面。

为了让读者对这部分内容有初步了解,我们将会包含一个为 BeOS 编写和测试视频卡驱动的可行方法(蓝图)。在需要编写视频卡驱动时,这将是本文中非常重要的一部分。如果有必要,该方法将会向读者指明本文中相关的,非常有用的信息。

问题描述

编写视频卡驱动是非常有难度的。而且,BeOS 并未提供足够可用的资料来构建好的显卡驱动。因为我非常希望学习如何编写这样一个驱动,所以

主题

关于作者

关于BeOS

关于显卡驱动

⚠️ **GitHub.com Fallback** ⚠️