• giggling_engine@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 year ago

        It’s all one big layers system.

        For sake of example let’s take a GPU.

        You have the hardware itself, which is rather static and non-changeable after it was manufactured.

        Then the firmware is the software that runs inside the card itself in some dedicated chip with interface to control that hardware. It is programmable and replaceable.

        Then the driver is the software that runs on the OS, and acts as an interface for other softwares that run on the same OS to talk to if they want to use the GPU. The driver would use the interface that the firmware exposes. Since each OS has a different way of writing hardware interfaces drivers are written for a specific OS.

        Then you have software like DirectX or OpenGL that provide yet another standardized interface, only this time between different manufacturers like NVidia, AMD, Intel, etc to talk to supported GPU drivers.

        Then you would have the software itself, like a game engine, video player, whatever.