Программное обеспечение

Виды программного обеспечения #

Традиционно все, что связано с электронно-вычислительной техникой, делят на “твердое” и “мягкое”. К “твердому инвентарю” (буквальный перевод термина “hardware”) относят оборудование – лампы, микросхемы; всё, что можно потрогать. Антитезой к нему введен термин “software”. Под “мягким инвентарем” подразумевается то, что потрогать нельзя – программы в виде электронных импульсов хранятся “где-то внутри”.

Сленговые понятия “железо” и “софт” наиболее близки к исторически сложившимся английским терминам, хотя и не настолько официальны.

Микропрограмма #

Компоненты ЭВМ представляют собой “компьютер в компьютере”. Кроме элементной базы – триггеров, регистров, логических схем – в них содержатся еще и программы для работы устройства. Программы эти жестко “зашиты” в микросхемах и выполняют простые вещи – превращение потока импульсов в картинку на экране, передача сигналов от нажатия на клавиши и так далее.

Операционная система #

Это “программа программ”. Операционная система обеспечивает взаимодействие с микропрограммами внешних устройств и превращает ЭВМ из набора компонент в единую систему общего назначения.

Драйвер #

Драйвер это промежуточное программное обеспечение и место его - между микропрограммой аппаратуры и операционной системой. Поскольку операционная система не зависит от конкретного оборудования, а микропрограмма уникальна для каждого устройства, драйвера1 выполняют роль посредников. Для разных операционных систем у каждого компонента должен быть свой драйвер.

Прикладное программное обеспечение #

При помощи всего описанного выше ЭВМ функционирует “сама в себе”. А вот прикладное ПО2 - это “то, ради чего все писалось”3. То, для чего создавались электронно-вычислительные машины. Прикладное ПО касается предметной области – физика, астрономия, системы наблюдения, компьютерная графика, искусственный интеллект, игры, виртуальная реальность, Интернет…

Программирование #

Программирование – это процесс написания программ. И занимаются этим программисты. Программист – профессия ли, наука или искусство – это прежде всего стиль мышления. Чтобы писать программы, надо знать устройство и принципы работы оборудования, уметь проектировать теоретические модели и записывать их при помощи языков программирования для того, чтобы на выходе у “железного исполнителя” был набор тех самых нулей и единиц, понимая и выполняя которые он мог бы выполнять поставленную задачу.

Системные программисты пишут программы для функционирования самих электронно-вычислительных систем – микропрограммы, драйвера, операционные системы; прикладные программисты решают задачи общего назначения – расчет погоды, обеспечение банковских операций, синтез изображения для фантастических фильмов и автоматизация любой другой деятельности, которую можно поручить вычислительной технике.

Есть такая шутка в программистском фольклоре – “работа программиста заключается в намагничивании быстро вращающихся металлических пластин”. В этом есть много истины, потому что распространенным способом хранить информацию (а программа это тоже информация) являются накопители на жестких магнитных дисках, в которых нули и единицы хранятся в виде намагниченных участков диска.


  1. “Мы говорим не штормы, а шторма”, Владимир Высоцкий ↩︎

  2. “Программное обеспечение”, общепринятое сокращение ↩︎

  3. “День Выборов”, Квартет И ↩︎