An operating system (OS) is software that, after being loaded into the computer by an initial boot program, manages a computer’s resources, controlling the flow of information into and from a main processor. OSs perform complex tasks, such as memory management, control of displays and other input/output peripheral devices, networking and file management, and other resource allocation functions between software and system components. The OS provides the foundation on which applications, middleware and other infrastructure components function. An OS usually provides user interfaces, such as command-line shell and GUI, for interaction between user and computer.