Mali GPU Device Driver Model
The Mali GPU device driver stack has been developed with portability, expandability and flexibility in mind. It is comprised of various different layers to ease integration into a number of different operating systems.
From a high level the, the driver is split into two key components. The low-level device driver that communicates directly with the Mali GPU and forms the integration layer with the target operating system, whether this is Linux, Android or any other OS. This component of the driver lives in the kernel space.
The other components are the User Space libraries that provide the APIs for the end developers of the 3D graphics application. The various user space libraries interface with the Kernel Space Device Driver to form the complete driver stack.
The Kernel Space Device Drivers are delivered through the Mali Developer in source code form under various different open source licences to allow system builders to integrate the Mali GPU and drivers with the Linux and Android operating systems. The User Space Libraries are only available in binary form from the relevant SoC manufacturer. The Kernel Space and User Space components are coupled, so it is important versions of both match.