Software that lies between an operating system and the applications running on it, essentially functioning as a hidden translation layer.