There is a thin line between operating environments and shells. Historically, shells are the interfaces to operating systems. They do not actually add any new capabilities; they simply provide a better user interface. So-called intelligent shells, however, actually extend an operating system's capabilities, so there is little difference between intelligent shells and operating environments.