Любой пользователь компьютера каждый день сталкивается с таким понятием, как Software. Это и неудивительно, ведь современное понимание этого термина трактуется как «программное обеспечение», или, сокращенно, «ПО» («софт»). Рассмотрим некоторые важные аспекты, касающиеся типов ПО и взаимосвязи с остальными компонентами компьютерных систем. Итак, что такое Software?
Общие понятия
В общем смысле Software – это набор команд, директив по их исполнению на основе какого-либо языка программирования, программа или набор программ, отвечающих за взаимодействие не только между пользователем и компьютерной системой, но и между так называемыми железными компонентами компьютера или другими приложениями, созданными для определенных целей.
В зависимости от возложенных на программное обеспечение функций, весь софт можно разделить на несколько классов, о чем будет сказано несколько позже.
Hardware и Software: отличия и взаимосвязь
Толкование этих двух терминов возникло с появлением первых компьютеров. Сегодня принято считать, что Hardware – это аппаратная часть компьютера («железные» компоненты), которую можно пощупать руками (материнские платы, процессоры, оперативная память, периферия и другие устройства в самой системе или подключаемые к ней).
Совершенно противоположное толкование у термина Software. Перевод можно представить дословно как «мягкое изделие». В более широком смысле подразумевается то, что программу нельзя потрогать, она представляет собой в каком-то смысле даже некий виртуальный компонент.
И, что самое интересное, для обеспечения использования «железа» или доступа к его возможностям в обязательном порядке должно применяться специальное ПО в виде специальных управляющих программ, отвечающих за работоспособность таких устройств (драйверы, наборы команд ввода/вывода BIOS и т. д.).
Сам термин Software, перевод и трактовка которого сейчас используются повсеместно именно в контексте программного обеспечения, даже на заре развития компьютерной техники не был в обиходе. И только в начале 60-х годов прошлого столетия сформировался окончательно. Связано это было с введением четкого разграничения команд, отвечающих за управление аппаратной частью компьютера, и конечным пользователем. Взаимосвязанные классы (Software и Hardware) стали называть программно-аппаратными комплексами.
Классификация программного обеспечения по нескольким критериям
Поскольку Software – это именно программная часть любой компьютерной системы, такое ПО можно разделить на несколько больших категорий исходя из возложенных на него задач. Так, например, по использованию и тиражированию ПО разделяют на корпоративное (выполненное на заказ для крупных фирм и компаний) и ПО для широкого круга пользователей.
По критерию переносимости программы могут быть платформозависимыми (работающими исключительно в одной среде и с одним типом «железа») и кроссплатформенными (адаптированным к совершенно разным системам).
По типу распространения ПО можно разделить на закрытые программы, открытые (касательно исходного кода Open Source с лицензией GNU) и свободные. Кроме того, сюда нередко включают бесплатное, платное и условно-бесплатное программное обеспечение. Последний тип приложений имеет полную или частично ограниченную функциональность в течение определенного периода времени, по истечении которого, программу придется купить. В противном случае она перестанет работать.
А вот по назначению классификация подразумевает наличие трех больших категорий программного обеспечения:
- системное;
- прикладное;
- инструментальное (средства разработки, инструменты и утилиты).
Системное ПО
В качестве системных компонентов выступают не только приложения в обычном понимании. На самом деле операционные системы тоже являются программами.
Однако зачастую системное ПО можно представить себе в виде некой прослойки, связывающей пользовательские программы со средой операционной системы, в которой они функционируют, и аппаратной частью, задействованной при выполнении той или иной задачи (например, те же драйверы устройств).
Чтобы было понятнее, приведем простейший пример. Возьмем операционную систему Windows (системная прослойка), звуковую карту («железо») и проигрыватель мультимедиа (прикладное ПО). Чтобы саундкарта могла воспроизвести звук, нужен драйвер (системное ПО), обеспечивающий управление устройством самой операционной системой, которая является и платформой для проигрывателя. Поскольку система распознает устройство, посредством своих директив она передает управление ним плееру, для распознавания типа звукового файла использующему специальные кодеки и декодеры (дополнительные программные инструменты). Взаимосвязь очевидна.
Прикладные программы
К прикладным программам относят все те приложения, которые не управляют компонентами системы или используют их только частично, а решают строго определенные конкретные пользовательские задачи.
Примеров сегодня можно привести очень много: офисные пакеты, редакторы мультимедиа, системы математических вычислений и проектирования, средства доступа в интернет и управления сетями, архиваторы и т. д. Как видим, каждый тип программного обеспечения (Software) – это инструмент, ориентированный на выполнение узкого круга задач и взаимодействующий непосредственно с пользователем цельной компьютерной системы.
Инструменты и утилиты
К инструментам относят программное обеспечение для разработки и сопровождения других типов ПО. Сюда можно включить платформы языков программирования, среды разработки, пакеты SDK, системы отслеживания ошибок и контроля версий.
Что касается утилит, то под ними часто подразумеваются программные продукты для настройки параметров аппаратных и/или программных компонентов, входящих в в объединенную компьютерную систему, без применения которых доступ к настройкам другими методами не может быть осуществлен. Такое ПО может быть встроенным в операционные системы или устанавливается отдельно. В некоторых случаях утилиты могут задействовать полную автоматизацию настроек (например, приложения-оптимизаторы для исправления ошибок и улучшения работы Windows-систем).
Вместо послесловия
Наконец, стоит отметить, что у многих пользователей зачастую возникает еще один вопрос насчет термина Software: «Что это за программа?» Такая постановка вопроса несколько некорректна, поскольку, как уже было сказано выше, это может быть не только единичное приложение, но и совокупность программ, набор языковых команд, директив и правил языка программирования для управления другими компонентами или передачи их для обработки и выполнения в виде двоичного кода, скажем, центральному процессору.
Приведенная классификация тоже весьма условна, ведь в описании были представлены только основные типы ПО без дальнейшего разделения на подклассы, которых сегодня можно насчитать очень и очень много. Но для первичного понимания самого термина Software рядовому пользователю может хватить и этих знаний.