Software can be categorized as system software, application software, or embedded software. It can also be proprietary, requiring purchase, or open source, allowing free use and modification under an open license. Computer languages include machine-level languages understood by hardware, assembly languages, high-level languages that are human-readable, and interpreters and compilers that translate between levels. Operating systems like Windows and Linux manage a computer's resources and provide common functionality. The five generations of computers began with vacuum tubes and progressed to integrated circuits, microprocessors, personal computers, and today's supercomputers.