The command interpreter is the interface between the user and the operating system and is usually separate from the kernel. It treats the command interpreter as a special program that runs when a job starts or a user logs into a time sharing system. Many commands are given to the OS through control statements when a new job starts in a batch system or a user logs into a time shared system, and the program that reads and interprets these control statements is automatically executed.