Free and open-source graphics device driver
A free and open-source graphics device driver is software that controls computer graphics hardware and supports graphics rendering APIs and is released under a Free and open source software license. Graphics device drivers are written for specific hardware to work within the context of a specific operating system kernel and to support a range of APIs used by applications to access the graphics hardware. They may also control output to the display, if the display driver is part of the graphics hardware. Most free and open source graphics device drivers are developed via the Mesa project.All hardware developers provide device drivers for their products over a range of operating systems. But some developers of graphics hardware provide no free and open-source drivers for their hardware and they provide little or no technical documentation to support independent development of free and open-source device drivers for their products. The free and open source device drivers available for hardware with support for independent driver development are generally of much higher quality in terms of completeness, stability, security and performance than drivers for hardware that lack such support.Drivers without freely (and thus legally) available source code are commonly referred to as binary drivers. Binary drivers used in the context of operating systems that are prone to ongoing development and change, such as Linux, create problems to both end-users and package maintainers. These problems affect system stability, overall system security, and performance and are the main reason for the independent development of free and open-source drivers. When no technical documentation is available, an understanding of the underlying hardware is often gained by ""clean room reverse engineering."" Based on this understanding, device drivers may be written and legally published under any chosen software license.There are rare and special cases, where manufacturers' driver source code is publicly available in the Internet, but not under a free license. This means that the code can be studied and altered for personal use, but the altered (and usually even the original) source code cannot be freely distributed, so solutions to bugs in the driver cannot be shared, significantly reducing the utility of such drivers in comparison to completely free and open-source drivers.