Программы взаимодействуют с операционной системой через интерфейс, называемый API (Application Programming Interface – прикладной программный интерфейс). Программа, которая должна воспринимать действия пользователя и переводить их на язык, понятный операционной системе, называется системной оболочкой (shell). Оболочки могут быть как графическими (оконные менеджеры), так и текстовыми, предназначенными для работы в терминальном режиме.
Одни операционные системы, например Windows и OS/2, изначально были ориентированы на графическую оконную среду. Другие изначально отдавали предпочтение общению с пользователем с помощью символов и текстов, поэтому графическая среда в них представляет собой надстройку, без которой операционная система может работать вполне эффективно.