Программное обеспечение персонального компьютера. Классификация, структура, назначение основных компонентов
1.Основные понятия программного обеспечения
2.Классификация программных продуктов
3.Сервисное программное обеспечение (Служебные программы, Системы программирования, Архивация)
4.Компьютерные вирусы. Антивирусные программы
1.Возможности компьютера как технической основы системы обработки данных, связан с используемым программным обеспечением (программами).
Программа (program, routine) — упорядоченная последовательность команд (инструкций) компьютера для решения задачи. Программное обеспечение (software) — совокупность программ обработки данных и необходимых для их эксплуатации документов.
Программы предназначены для машинной реализации задач. Термины задача, приложение имеют очень широкое употребление в контексте информатики и программного обеспечения.
Задача (problem, task) — проблема, подлежащая решению. Приложение (application) — программная реализация на компьютере решения задачи.
Таким образом, задача обозначает проблему, подлежащую реализации с использованием средств информационных технологий, а приложение — реализованное на компьютере решение по задаче. Приложение, являясь синонимом слова "программа", считается более удачным термином и широко используется в информатике.
Существует большое число разнообразных классификаций задач. С позиций специфики разработки и вида программного обеспечения будем различать два класса задач — технологические и функциональные.
Технологические задачи ставятся и решаются при организации технологического процесса обработки информации на компьютере. Технологические задачи являются основой для разработки сервисных средств программного обеспечения в виде утилит, сервисных программ, библиотек процедур и др., применяемых для обеспечения работоспособности компьютера, разработки других программ обработки данных функциональных задач.
Функциональные задачи требуют решения при реализации функций управления в рамках информационных систем предметных областей. Функциональные задачи в совокупности образуют предметную область и полностью определяют ее специфику.
Предметная (прикладная) область (application domain) — совокупность связанных между собой функций, задач управления, с помощью которых достигается выполнение поставленных целей.
2. Все программы по характеру использования и категориям пользователей можно разделить на два класса — утилитарные программы и программные продукты (изделия).
Утилитарные программы ("программы для себя") предназначены для удовлетворения нужд их разработчиков. Чаще всего утилитарные программы выполняют роль сервиса в технологии обработки данных либо являются программами решения функциональных задач, не предназначенных для широкого распространения.
Программные продукты (изделия) предназначены для удовлетворения потребностей пользователей, широкого распространения и продажи.
Программный продукт — комплекс взаимосвязанных программ для решения определенной проблемы (задачи) массового спроса, подготовленный к реализации как любой вид промышленной продукции.
Программные продукты могут создаваться как:
• индивидуальная разработка под заказ;
• разработка для массового распространения среди пользователей.
При индивидуальной разработке фирма-разработчик создает оригинальный программный продукт, учитывающий специфику обработки данных для конкретного заказчика.
При разработке для массового распространения фирма-разработчик, с одной стороны, должна обеспечить универсальность выполняемых функций обработки данных, с другой стороны, гибкость и настраиваемость программного продукта на условия конкретного применения.
Рассмотрим классификацию, в которой основополагающим признаком является сфера (область) использования программных продуктов:
• аппаратная часть автономных компьютеров и сетей ЭВМ;
• функциональные задачи различных предметных областей;
• технология разработки программ.
Для поддержки информационной технологии в этих областях выделим соответственно три класса программных продуктов, представленных на рис. 8.9:
· системное программное обеспечение;
· пакеты прикладных программ;
· инструментарий технологии программирования.
Системное программное обеспечение направлено:
· на создание операционной среды функционирования других программ;
· на обеспечение надежной и эффективной работы самого компьютера и вычислительной сети;
· на проведение диагностики и профилактики аппаратуры компьютера и вычислительных сетей;
· на выполнение вспомогательных технологических процессов (копирование, архивирование, восстановление файлов программ и баз данных и т.д.).
Системное программное обеспечение (System Software) — совокупность программ и программных комплексов для обеспечения работы компьютера и сетей ЭВМ. Данный класс программных продуктов тесно связан с типом компьютера и является его неотъемлемой частью. Программные продукты в основном ориентированы на квалифицированных пользователей — профессионалов в компьютерной области: системного программиста, администратора сети, прикладного программиста, оператора.
Пакет прикладных программ (application program package) — комплекс взаимосвязанных программ для решения задач определенного класса конкретной предметной области. Пакеты прикладных программ (ППП) служат программным инструментарием решения функциональных задач и являются самым многочисленным классом программных продуктов. В данный класс входят программные продукты, выполняющие обработку информации различных предметных областей.
Инструментарий технологии программирования — совокупность программ и программных комплексов, обеспечивающих технологию разработки, отладки и внедрения создаваемых программных продуктов. Инструментарий технологии программирования обеспечивает процесс разработки программ и включает специализированные программные продукты, которые являются инструментальными средствами разработчика. Программные продукты данного класса поддерживают все технологические этапы процесса проектирования, программирования (кодирования), отладки и тестирования создаваемых программ. Пользователями технологии программирования являются системные и прикладные программисты.
На рисунке представлена структура системного программного обеспечения — базового программного обеспечения, которое, как правило, поставляется вместе с компьютером, и сервисного программного обеспечен и я, которое может быть приобретено дополнительно.
Базовое программное обеспечение(base software) — минимальный набор программных средств, обеспечивающих работу компьютера.
Сервисное программное обеспечение— программы и программные комплексы, которые расширяют возможности базового программного обеспечения и организуют более удобную среду работы пользователя.
В базовое программное обеспечение входят:
• операционная система;
• операционные оболочки (текстовые и графические);
• сетевая операционная система.
Операционная системапредназначена для управления выполнением пользовательских программ, планирования и управления вычислительными ресурсами ЭВМ.
В секторе программного обеспечения и операционных систем ведущее положение занимают фирмы IBM, Microsoft, UNISYS, Novell. Доход от продаж операционных систем в среднем превышает 20 млрд. дол. в год.
Операционные оболочки— специальные программы, предназначенные для облегчения общения пользователя с командами операционной системы. Операционные оболочки имеют текстовый и графический варианты интерфейса.
Наиболее популярны следующие виды текстовых оболочек:
· Norton Commander 5.0 — фирма Symantec;
· Windows Commander и др.
Эти программы существенно упрощают задание управляющей информации для выполнения команд операционной системы, уменьшают напряженность и сложность работы конечного пользователя.
3. Расширением базового программного обеспечения компьютера является набор сервисных, дополнительно устанавливаемых программ, которые можно классифицировать по функциональному признаку следующим образом:
· программы диагностики работоспособности компьютера;
· антивирусные программы, обеспечивающие защиту компьютера, обнаружение и восстановление зараженных файлов;
· программы обслуживания дисков, обеспечивающие проверку качества поверхности магнитного диска, контроль сохранности файловой системы на логическом и физическом уровнях, сжатие дисков, создание страховых копий дисков, резервирование данных на внешних носителях и др.;
· программы архивирования данных, которые обеспечивают процесс сжатия информации в файлах с целью уменьшения объема памяти для ее хранения;
· программы обслуживания сети.
По способу организации и реализации сервисные средства могут быть представлены:
· утилитами
· автономными программами.
Утилиты— программы, служащие для выполнения вспомогательных операций обработки данных или обслуживания компьютеров (диагностики, тестирования аппаратных и программных средств, оптимизации использования дискового пространства, восстановления разрушенной на магнитном диске информации и т.п.).
Утилиты и автономные программы имеют узкоспециализированное назначение и выполняют каждая свою функцию. Но утилиты, в отличие от автономных программ, выполняются в среде соответствующих оболочек. При этом они конкурируют в своих функциях с программами ОС и другими утилитами. Поэтому классификация сервисных средств по их функциям и способам реализации является достаточно размытой и весьма условной. Утилиты предоставляют пользователю дополнительные услуги (не требующие разработки специальных программ) в основном по обслуживанию дисков и файловой системы.
Из утилит, получивших наибольшую известность, можно назвать многофункциональный комплекс Norton Utilities. Под программами технического обслуживания понимается совокупность программно-аппаратных средств для диагностики и обнаружения ошибок в процессе работы компьютера или вычислительной системы в целом.
Архиватор - это программа, которая сжимает файл или группу файлов в один архивный файл с целью уменьшения их размера. При этом не теряется ни бита информации, и любой файл можно из архива извлечь.
Во-первых, экономия места на диске, во-вторых, на дискете можно перенести большой объем информации, в-третьих, есть возможность пересылать большие файлы по электронной почте.
Наиболее известные архиваторы - это архиваторы ZIP, ARJ, RAR, GZIP, LHA, HA, ACE. Архив, созданный тем или иным архиватором, имеет расширение, соответствующее названию архиватора. Например, расширение файла archive.rar говорит о том, что он был создан с помощью архиватора RAR.
Архиваторы различаются возможностями и качеством сжатия, которое зависит также и от типа сжимаемых данных. Некоторые архиваторы лучше работают с одними типами данных, но плохо показывают себя с другими. Создать универсальный архиватор невозможно. К важным функциям архиваторов относят создание многотомных архивов и самораспаковывающихся архивов.
Многотомные архивы - это архивы, разбитые на несколько отдельных файлов. Их применяют, когда необходимо перенести большой объём информации на дискетах: на каждую дискету помещается отдельный том архива. При извлечении данных из многотомного архива архиватор будет последовательно обрабатывать том за томом, и запрашивать смену дискеты.
Самораспаковывающиеся архивы используются в тех случаях, когда необходимо перенести информацию на другой компьютер, но неизвестно, установлен ли там соответствующий архиватор. Самораспаковывающийся архив представляет собой исполняемый (.EXE) файл, который включает в себя заархивированные данные и программу для их распаковки.
Сжатие информации - это процесс преобразования информации, хранящейся в файле, к виду, при котором уменьшается избыточность в ее представлении и соответственно требуется меньший объем памяти для хранения.
Как иллюстрацию сжатия информации рассмотрим пример одного из способов сжатия. Допустим, есть такая строчка символов: "АААААААБББББВВВВВВВВВВГГГГГГ". Длина такой строчки - 28 символов. Но в ней очень много повторяющихся одинаковых символов, поэтому можно просто записать количество повторений и сам повторяющийся символ, в результате получится следующее: "7А5Б10В6Г". Строчка стала занимать всего 9 символов, т.е. сократилась более чем в три раза!
Разумеется, такой метод сжатия будет работать не для всех данных, например, возьмём такую строчку: "АБВБГАБГВАВГБАГ". Её длина - 15 символов. Если мы применим к ней тот же метод, то её длина увеличится вдвое: "1А1Б1В1Б1Г1А1Б1Г1В1А1В1Г1Б1А1Г". Отсюда следует важный вывод: один и тот же алгоритм сжатия для одних исходных данных сокращает их размер, а для других может и увеличить.
Алгоритмов сжатия данных существует великое множество. Некоторые алгоритмы подходят для одних типов данных, другие - для других. Хорошо сжимаются простые растровые изображения, не содержащие большого количества деталей (.BMP, .PSD и др.). Коэффициент сжатия во многом зависит от используемого алгоритма и сложности изображения. Например, чёрно-белое изображение чертёжного качества может быть сжато даже в сотню раз, цветные рисунки - в пять-десять раз, а цветные изображения высокого фотографического качества сжимаются менее чем в два раза. Хорошо сжимаются текстовые файлы (.TXT, .DOC, .PAS и др.). Если файл содержит текст, написанный на естественном языке, например, повесть или рассказ, то коэффициент сжатия будет равен двум-трём, а если в файле записан текст программы, то коэффициент сжатия может достигать пяти и выше. Коэффициент сжатия исполняемых файлов(.EXE, и др.) также сильно колеблется, однако, в среднем он равен примерно трём.
В отношении звука (.WAV, .AU), использование универсальных методов сжатия редко даёт хорошие результаты - звуковой файл сокращается всего на 20-40%. То же самое касается и высококачественных изображений, имеющих много деталей. Поэтому для этих типов изображений используются специальные методы сжатия, особо хорошие результаты дают так называемые алгоритмы сжатия с потерями. Одна из идей этих алгоритмов состоит в том, что человеческий глаз и ухо не очень восприимчивы к некоторым мелким деталям изображения или звука, поэтому лишнюю информацию можно просто отбросить. Разумеется, кроме отбрасывания лишней информации, используются и другие алгоритмы, в результате чего достигается несравнимый коэффициент сжатия при минимальных потерях качества (с точки зрения восприятия человека). Такой подход используется в файлах формата JPEG, предназначенного для хранения статичных изображений и MPEG, предназначенного для хранения видео- и аудиоинформации. Сегодня особенно популярны такие форматы, как MPEG-3 (или MP3), предназначенный для хранения аудиоинформации и позволяющий достигнуть десятикратного сжатия почти без потери качества, и MPEG-4, используемый для хранения видеофильмов.
Плохо архивируются, либо вообще увеличиваются в размере файлы, данные в которых уже сжаты, в том числе архивы (.RAR, .ZIP, .ARJ и др.), графические файлы тех форматов, которые имеют собственное сжатие (.GIF, .JPG, .PNG и др.), аудиофайлы (.MP3), видеофайлы (.MPG, .AVI и др.), самораспаковывающиеся архивы (.EXE).
4. Считают, что идея создания компьютерных вирусов была придумана писателем-фантастом Т. Дж. Райн, который в одной из своих книг, опубликованной в США в 1977 г., описал эпидемию, за короткое время поразившую более 7000 компьютеров. Причиной эпидемии стал компьютерный вирус, который, передаваясь от одного компьютера к другому, внедрялся в их операционные системы и выводил их из-под контроля человека.
Считается признанным, что в последние годы больше всего вирусов создавалось в СССР, а затем в России и других странах СНГ. Но и в других странах, в том числе в США, значителен урон, наносимый вирусами. В США борьба с вирусами ведется на самом высоком уровне.
В Уголовном Кодексе России обозначена статья 273 за "Создание, использование и распространение вредоносных программ для ЭВМ", которая гласит:
1. Создание программ для ЭВМ или внесение изменений в существующие программы, заведомо приводящих к несанкционированному уничтожению, блокированию, модификации либо копированию информации, нарушению работы ЭВМ, системы ЭВМ или их сети а равно использование либо распространение таких программ или машинных носителей с такими программами – наказываются лишением свободы на срок до 3 лет со штрафом в размере от двухсот до пятисот минимальных размеров оплаты труда или в размере заработной платы или иного дохода осужденного за период от двух до пяти месяцев.
2. Те же деяния, повлекшие по неосторожности тяжкие последствия, - наказываются лишением свободы на срок от трех до семи лет.
Начиная с конца 1990 г., появилась новая тенденция, получившая название "экспоненциальный вирусный взрыв". Количество новых вирусов, обнаруживаемых в месяц, стало исчисляться десятками, а в дальнейшем и сотнями. Поначалу эпицентром этого взрыва была Болгария, затем он переместился в Россию. После 1994 г. темп роста вирусов пошел на убыль, хотя их общее количество продолжает увеличиваться. Это связано с тем, что ОС MS D0S, которая и дает 99% существующих компьютерных вирусов, постепенно сдает свои лидирующие позиции как операционная система для персональных компьютеров, уступая их Windows, 0S\2, UNIX и т.п.
Кроме того, вирусы постоянно расширяют свою "среду обитания" и реализуют принципиально новые алгоритмы внедрения и поведения. Так, в 1995 году появились представители, опровергающие ключевые принципы антивирусной защиты – то, что компьютер, загруженный с заведомо чистой системной дискеты, не может содержать вирус; и то, что вирусы не заражают файлы с данными.
Первым появился вирус, который таким образом корректирует конфигурацию компьютера, что при попытке загрузки с дискеты он все равно загружается с зараженного жесткого диска, и вирус активизируется в системе.
Компьютерным вирусом называется программа (некоторая совокупность выполняемого кода), которая способна создавать свои копии (не обязательно полностью совпадающие с оригиналом) и внедрять их в различные объекты, ресурсы компьютерных систем и сетей без ведома пользователя. При этом копии сохраняют способность дальнейшего распространения.
Известные программные вирусы можно классифицировать по следующим признакам:
· среде обитания;
· способу заражения среды обитания;
· воздействию;
· особенностям алгоритма.
В зависимости от среды обитания вирусы можно разделить на:
· сетевые;
· файловые;
· загрузочные;
· файлово-загрузочные.
Сетевые вирусы распространяются по различным компьютерным сетям. К сетевым относятся вирусы, которые для своего распространения активно используют протоколы и возможности локальных и глобальных сетей.
Файловые вирусы внедряются главным образом в исполняемые модули, т. е. в файлы, имеющие расширения COM и EXE. Они могут внедряться и в другие типы файлов, но, как правило, записанные в таких файлах, они никогда не получают управление и, следовательно, теряют способность к размножению.
Распространение и активизация загрузочных вирусов происходит в момент загрузки операционной системы, еще до того, как пользователь успел запустить какую-либо антивирусную программу.
Файлово–загрузочные вирусы.Существует большое количество сочетаний - например, файлово-загрузочные вирусы, заражающие как файлы, так и загрузочные сектора дисков. Такие вирусы, как правило, имеют довольно сложный алгоритм работы, часто применяют оригинальные методы проникновения в систему, используют стелс и полиморфик-технологии.
Для обнаружения, удаления и защиты от компьютерных вирусов разработано несколько видов специальных программ, которые позволяют обнаруживать и уничтожать вирусы. Такие программы называются антивирусными. Различают следующие виды антивирусных программ:
ü программы-детекторы;
ü программы-доктора или фаги;
ü программы-ревизоры;
ü программы-фильтры;
ü программы-вакцины или иммунизаторы.
Программы-детекторы осуществляют поиск характерной для конкретного вируса сигнатуры в оперативной памяти и в файлах и при обнаружении выдают соответствующее сообщение. Недостатком таких антивирусных программ является то, что они могут находить только те вирусы, которые известны разработчикам таких программ.
Программы-доктора или фаги, а также программы-вакцины не только находят зараженные вирусами файлы, но и «лечат» их, т.е. удаляют из файла тело программы-вируса, возвращая файлы в исходное состояние. В начале своей работы фаги ищут вирусы в оперативной памяти, уничтожая их, и только затем переходят к «лечению» файлов. Среди фагов выделяют полифаги, т.е. программы-доктора, предназначенные для поиска и уничтожения большого количества вирусов. Наиболее известные из них: AVP, Aidstest, Scan, Norton AntiVirus, Doctor Web.
Учитывая, что постоянно появляются новые вирусы, программы-детекторы и программы-доктора быстро устаревают, и требуется регулярное обновление версий.
Программы-ревизоры относятся к самым надежным средствам защиты от вирусов. Ревизоры запоминают исходное состояние программ, каталогов и системных областей диска тогда, когда компьютер не заражен вирусом, а затем периодически или по желанию пользователя сравнивают текущее состояние с исходным. Обнаруженные изменения выводятся на экран монитора. Как правило, сравнение состояний производят сразу после загрузки операционной системы. При сравнении проверяются длина файла, код циклического контроля (контрольная сумма файла), дата и время модификации, другие параметры. Программы-ревизоры имеют достаточно развитые алгоритмы, обнаруживают стелс-вирусы и могут даже очистить изменения версии проверяемой программы от изменений, внесенных вирусом. К числу программ-ревизоров относится широко распространенная в России программа Adinf.
Программы-фильтры или «сторожа» представляют собой небольшие резидентные программы, предназначенные для обнаружения подозрительных действий при работе компьютера, характерных для вирусов. Такими действиями могут являться:
1. попытки коррекции файлов с расширениями COM, EXE;
2. изменение атрибутов файла;
3. прямая запись на диск по абсолютному адресу;
4. запись в загрузочные сектора диска;
5. загрузка резидентной программы.
При попытке какой-либо программы произвести указанные действия «сторож» посылает пользователю сообщение и предлагает запретить или разрешить соответствующее действие. Программы-фильтры весьма полезны, так как способны обнаружить вирус на самой ранней стадии его существования до размножения. Однако, они не «лечат» файлы и диски. Для уничтожения вирусов требуется применить другие программы, например фаги.
Вакцины или иммунизаторы - это резидентные программы, предотвращающие заражение файлов. Вакцины применяют, если отсутствуют программы-доктора, «лечащие» этот вирус. Вакцинация возможна только от известных вирусов. Вакцина модифицирует программу или диск таким образом, чтобы это не отражалось на их работе, а вирус будет воспринимать их зараженными и поэтому не внедрится. В настоящее время программы-вакцины имеют ограниченное применение.