Общие сведения о программном обеспечении
В необходимом объеме мы рассмотрели аппаратную часть информационных технологий. Остановимся подробнее на программном обеспечении, иначе говоря, на компьютерных программах.
Компьютерная программа — это набор закодированных инструкций (команд), исполняемых центральным процессором при работе компьютера. Любые действия компьютер выполняет только согласно ранее заданной программе.
Компьютерные программы условно делятся на системные и прикладные
Прикладные программы (приложения) служат для обработки информации пользователя. Системные программы служат для нормальной работы аппаратных устройств компьютера, сети, управления прикладными программами и других служебных целей.
Важнейшей совокупностью системных программ является операционная система. Операционная система загружается в оперативную память автоматически при запуске компьютера и находится там постоянно, управляя оборудованием и программами работающего компьютера. Операционным системам в данной работе посвящена отдельная глава.
Перечень современного прикладного программного обеспечения обширен и разнообразен. Попытаемся классифицировать его по назначению в таблице 6.
Таблица 6. Современное прикладное программное обеспечение | |
Группа | Назначение |
Редакторы | Создание и обработка документов различных видов. Различают текстовые, графические, звуковые редакторы и программы видеомонтажа. |
Табличные процессоры | Редакторы табличной информации — простейших баз данных. |
Системы управления базами данных (СУБД) | Системы обработки и поиска информации в крупных массивах табличной информации — базах данных. |
Системы автоматизированного проектирования (САПР) | Различные программы для автоматизации работы чертежников, дизайнеров, конструкторов, инженеров. |
Системы автоматизированного управления производством (торговлей и т.п.) | Автоматизация подготовки, планирования производства, контроля ресурсов, подготовки отчетов и т.д. |
Просмотрщики и проигрыватели | Просмотр и проигрывание информации различных видов |
Среды разработки | Создание новых компьютерных программ с помощью языков программирования. |
Сетевое программное обеспечение | Управление процессом передачи информации по компьютерной сети |
Утилиты | Различные вспомогательные и служебные программы. |
Прочее | Разнообразнейшие функции по обработке информации: переводчики, обучающие программы, компьютерные игры и т.д. |
Все программы для вычислительных машин разрабатываются на специальных кодовых языках согласно принятому алгоритму. Алгоритм — заранее определенная последовательность выполняемых действий. Характерная черта алгоритмов — условные переходы, благодаря которым реализуется логика компьютерной программы.
Язык программирования — форма, способ и правила записи инструкций компьютерной программы. Языки программирования делятся на:
o языки высокого уровня (команды представлены в виде слов и выражений — удобны для использования программистом);
o языки низкого уровня (машинный код, ассемблер — команды в виде простейших математико-логических инструкций — менее удобен, но более быстр).
Машинный код — единственный вид компьютерной программы, выполняемый центральным процессором без предварительной подготовки и перевода. Близким понятием является ассемблер — язык программирования низкого уровня. Ассемблер представляет собой аналог машинного кода, его мнемоническую запись (в виде слов).
Машинный код и ассемблер неудобны для программирования. Большинство современных программ разрабатываются на языках высокого уровня в средах разработки. Для запуска программы на языке высокого уровня, ее необходимо предварительно перевести в машинный код. Программа-переводчик, выполняющая кодирование программы на языке программирования высокого уровня в машинные коды, называется транслятор. По способу перевода в машинный код трансляторы подразделяются на компиляторы и интерпретаторы.
Компилятор — это транслятор, осуществляющий проверку, сборку и единоразовый перевод программы в машинный код, для последующего многократного запуска операционной системой. Интерпретатор — это транслятор, выполняющий проверку, кодирование и пошаговое выполнение инструкций программы.
Рис. 6 Компьютерные программы
Закрепим сказанное схемой (рис. 6). Нетранслированные программы — всего лишь текстовая информация.
Программа в виде машинного кода, запущенная на выполнение операционной системой, называется процессом (или задачей). Инструкции процессов выполняются центральным процессором в виде операций. Современные процессоры выполняют порядка 1 млрд. операций (типа сложения или вычитания двух чисел) в секунду. В современных многозадачных операционных системах одновременно выполняется несколько процессов.
Для общей эрудиции поговорим немного о вредоносном программном обеспечении.
Компьютерный вирус — программа, способная автоматически, без контроля пользователя, размножаться с помощью компьютерной сети или накопителей. Поскольку эти программы создаются лицами из хулиганских побуждений, очень часто вирусы имеют деструктивные функции: уничтожение и искажение информации и программ пользователей. В последнее время с распространением глобальной сети Интернет, вирусы все чаще приобретают функции шпионов, получая несанкционированный доступ к информации пользователя и пересылая ее автору вируса. Разновидность вирусов — черви. Это программы, которые не используют для распространения накопители, а только компьютерную сеть.
Еще одним видом вредоносных программ являются троянские кони — программы с функциями, не указанными в сопроводительных описаниях, часто шпионскими и деструктивными.
Вредоносное программное обеспечение является одной из наиболее опасных угроз информационной безопасности. Борьбой с угрозами информационной безопасности занимается защита информации — отрасль информационных технологий. Для борьбы с вредоносным программным обеспечением выпускается антивирусное программное обеспечение. Поскольку новые вирусы появляются практически каждый день, для эффективной работы антивируса необходимо ежедневное обновление антивирусов в автоматическом режиме с помощью сети Интернет.