Под «интерфейсом» в вычислительной технике и информатике понимается способ взаимодействия элементов системы или систем между собой.
Хороший пример стандартизованного комплексного «интерфейса» (не относящегося к вычислительной технике) — гарнитура сети бытового и офисного электроснабжения. Выпускаемые для использования в России электроприборы с питанием от электрической сети снабжаются вилками, подходящими к сетевым розеткам. Их типоразмер специфичен для сети 200 В/50 Гц, что исключает случайное включение в бытовую сеть промышленного оборудования, рассчитанного на другие параметры.
В то же время совпадение типоразмеров вилок и розеток электропитания и бытовой радиотрансляционной сети представляет собой пример плохого «пакетирования» механической и электрической частей интерфейса, допускающего случайное включение радиорепродуктора в электросеть (с неприятными для слуха и состояния репродуктора последствиями).
Интерфейсы вычислительной техники можно разделить на аппаратные, программные и интерфейсы оператора.
С аппаратными интерфейсами в основном работают интеграторы систем (в части оборудования) и системные программисты, т.к. прикладные программы, ориентированные на специфическое оборудование, тоже имеют дело с аппаратными интерфейсами. С программными интерфейсами — прикладные программисты (в целом это касается таких программных интерфейсов, как язык оболочки ОС или сценарные языки, интерпретируемые прикладными программами). С интерфейсами оператора встречается каждый оператор (пользователь) системы.
Введение понятия интерфейса какой-либо системы позволяет абстрагироваться от внутреннего устройства этой системы.
Аппаратные интерфейсы
Аппаратными интерфейсами называют способы физического сопряжения элементов вычислительной системы (компьютеров, периферийных устройств и устройств связи). Аппаратные интерфейсы подразделяются на механические, гальванические, электромагнитные, сигнальные и форматы разметки носителей.
В вычислительной технике известны сотни распространенных аппаратных интерфейсов. В качестве примеров можно назвать: «стык-232» (RS-232, «последовательный порт»), «универсальную последовательную шину» USB, «витую пару Ethernet», интерфейсы ATA, SATA и SCSI, интерфейсы PCI, AGP и PCI-Express, интерфейс инфракрасной связи IrDA.
Для большинства названных интерфейсов характерно упомянутое сочетание гальванических и механических спецификаций, так что интерфейс часто можно определить по внешнему виду разъема. Однако RS-232, например, существует в нескольких вариантах механического оформления, а USB и Ethernet — в нескольких версиях с совпадающим типоразмером разъемов.
Программные интерфейсы
Вычислительный процесс является абстракцией, абстрактными являются и программные интерфейсы. Взаимодействие реально исполняемых вычислительных процессов, разумеется, предполагает физическую связь между устройствами, которые их исполняют (посредством какого-либо аппаратного интерфейса) либо возможно использование общей памяти, если процессы протекают на одном устройстве.
К программным интерфейсам относятся: форматы данных, а также вызовы системных и прикладных подпрограмм (библиотечные интерфейсы).
Форматы данных
Важнейшим типом программных интерфейсов являются форматы, в которых представлены обрабатываемые и сохраняемые данные.
Принципы устройства универсальных компьютеров таковы, что любые данные (а также программы) представлены однородным образом в качестве последовательности элементов (ячеек оперативной памяти, участков поверхности магнитных или оптических накопителей). По своему смыслу данные могут представлять собой числовые массивы, текст, изображение, звук, программу или их сочетание, но физически они будут представлены в памяти или на носителе данных одинаковым образом.
Для того чтобы данные обрабатывались соответствующим их природе образом (например, числа вовлекались в вычисления, текст подвергался алфавитной сортировке, а звук — выводился в наушники), программист или разработчик специализированного устройства должен принять решения о способе их представления — способе кодирования или формате данных.
Одним из важнейших форматов данных является текстовый формат. Текстом в вычислительной технике называют последовательность символов из определенного набора — алфавита. В алфавит могут входить буквы одного или нескольких языков, цифры, знаки препинания, символы специальных нотаций (математической, музыкальной, шахматной и т.п.). В зависимости от количества символов в алфавите для представления каждого символа в тексте из этого алфавита требуется определенное (log2 n, где n — количество составляющих алфавит символов) количество битов.
На практике в вычислительной технике широкое распространение в 1950—90-е гг. получили семибитные и восьмибитные текстовые коды. Если для общей латиницы достаточно давно (1967 г.) был установлен единый стандарт ASCII, то для русского алфавита и алфавита, включающего наряду с русскими буквами общую латиницу, придумано около десятка несовместимых между собой восьмибитных кодов (ISO/IEC 8859-5, «альтернативный стандартный код», КОИ-8Р, CP1251 и др.). Использование различных кодов для одного и того же алфавита в разных вычислительных системах приводит к необходимости их преобразований (хотя и тривиальных) при передаче, а в одной и той же системе — усложняет решение (например, такой задачи, как поиск текста в наборе файлов). Характерно выглядящие нечитаемые символы в сообщениях электронной почты ¾ продукт отсутствия единого стандарта по кодировке русского алфавита.
Интерфейсы оператора
Наконец, еще одним классом интерфейсов вычислительных систем являются интерфейсы оператора (человеко-машинного взаимодействия). К человеко-машинным интерфейсам применимы не только чисто технические критерии, но также критерии эргономики.
Применяемые сегодня интерфейсы оператора можно свести к какой-либо комбинации четырех типов интерфейсов: приборного, тексто-диалогового, экранных форм и оконных систем.
Приборные интерфейсы
Опуская историю вычислительной техники, следует заметить, что в современных компьютерах приборный интерфейс сводится к набору органов электронного управления (кнопки включения питания, экстренной перезагрузки, извлечения магнитных и оптических дисков и соответствующих им световых индикаторов и т.п.) и терминалу — комплексу из монитора (дисплея), клавиатуры, мыши (или аналога).
В специализированных компьютерах может присутствовать более широкий набор органов управления, а терминал — быть редуцированным или отсутствовать вовсе (например, сотовый телефон, DVD-проигрыватель и т.п.).