Limitations of a software (such as most Linux, Mac, and Windows programs) that prevent it from running on more than one platform, or which requires a specific hardware to perform its functions. Device-dependent software cannot easily be moved ('ported') from one type of computer to another, and usually requires large-scale modifications or rewriting of the original program.