Hard & Soft
Традиционно все, что связано с электронно-вычислительной техникой, делят на «твердое» и «мягкое». К «твердому инвентарю» (буквальный перевод термина «hardware») относят оборудование – лампы, микросхемы; всё, что можно потрогать. Антитезой к нему введен термин «software». Под «мягким инвентарем» подразумевается то, что потрогать нельзя – программы в виде электронных импульсов хранятся «где-то внутри». Сленговые понятия «железо» и «софт» наиболее близки к исторически сложившимся английским терминам, хотя и не настолько официальны.
Виды программного обеспечения
Микропрограмма
Компоненты ЭВМ представляют собой «компьютер в компьютере». Кроме элементной базы – триггеров, регистров, логических схем – в них содержатся еще и программы для работы устройства. Программы эти жестко «зашиты» в микросхемах и выполняют простые вещи – превращение потока импульсов в картинку на экране, передача сигналов от нажатия на клавиши и так далее.
Операционная система
Это «программа программ». Операционная система обеспечивает взаимодействие с микропрограммами внешних устройств и превращает ЭВМ из набора компонент в единую систему общего назначения.
Драйвер
Драйвер это промежуточное программное обеспечение и место его - между микропрограммой аппаратуры и операционной системой. Поскольку операционная система не зависит от конкретного оборудования, а микропрограмма уникальна для каждого устройства, драйвера 1) выполняют роль посредников. Для разных операционных систем у каждого компонента должен быть свой драйвер.
Прикладное программное обеспечение
При помощи всего описанного выше ЭВМ функционирует «сама в себе». А вот прикладное ПО 2) - это «то, ради чего все писалось» 3). То, для чего создавались электронно-вычислительные машины. Прикладное ПО касается предметной области – физика, астрономия, системы наблюдения, компьютерная графика, искусственный интеллект, игры, виртуальная реальность, Интернет…
Программирование
Программирование – это процесс написания программ. И занимаются этим программисты. Программист – профессия ли, наука или искусство – это прежде всего стиль мышления. Чтобы писать программы, надо знать устройство и принципы работы оборудования, уметь проектировать теоретические модели и записывать их при помощи языков программирования для того, чтобы на выходе у «железного исполнителя» был набор тех самых нулей и единиц, понимая и выполняя которые он мог бы выполнять поставленную задачу.
Системные программисты пишут программы для функционирования самих электронно-вычислительных систем – микропрограммы, драйвера, операционные системы; прикладные программисты решают задачи общего назначения – расчет погоды, обеспечение банковских операций, синтез изображения для фантастических фильмов и автоматизация любой другой деятельности, которую можно поручить вычислительной технике.
Есть такая шутка в программистском фольклоре – «работа программиста заключается в намагничивании быстро вращающихся металлических пластин». В этом есть много истины, потому что распространенным способом хранить информацию (а программа это тоже информация) являются накопители на жестких магнитных дисках, в которых нули и единицы хранятся в виде намагниченных участков диска.