device independence
This technology enables software to run across a variety of hardware. For example, applications written for Microsoft Windows run regardless of a given system's hardware configuration. The application developer simply writes to Windows' APIs, while a hardware abstraction layer within Windows talks to device drivers that translate abstract instructions into specific actions--telling a graphics card to draw an image on the screen, a printer to render a page, and so on.