
-
Операционная система. Архиваторы и антивирусы.
Операционная система, сокр. ОС (англ. operating system, OS) — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Это определение применимо к большинству современных операционных систем общего назначения.
В логической структуре типичной вычислительной системы операционная система занимает положение между устройствами с их микроархитектурой, машинным языком и, возможно, собственными (встроенными) микропрограммами — с одной стороны — и прикладными программами с другой.
Разработчикам программного обеспечения операционных систем позволяет абстрагироваться от деталей реализации и функционирования устройств, предоставляя минимально необходимый набор функций (см. интерфейс программирования приложений).
В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения. С 1990-х годов наиболее распространёнными операционными системами являются системы семейства Microsoft Windows и системы класса UNIX (особенно Linux и Mac OS).
Основные функции:
-
Выполнение по запросу программ (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти и др.).
-
Загрузка программ в оперативную память и их выполнение.
-
Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).
-
Управление оперативной памятью (распределение между процессами, организация виртуальной памяти).
-
Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, оптические диски и др.), организованным в той или иной файловой системе.
-
Обеспечение пользовательского интерфейса.
-
Сохранение информации об ошибках системы.
Дополнительные функции:
-
Параллельное или псевдопараллельное выполнение задач (многозадачность).
-
Эффективное распределение ресурсов вычислительной системы между процессами.
-
Разграничение доступа различных процессов к ресурсам.
-
Организация надёжных вычислений (невозможности одного вычислительного процесса намеренно или по ошибке повлиять на вычисления в другом процессе), основана на разграничении доступа к ресурсам.
-
Взаимодействие между процессами: обмен данными, взаимная синхронизация.
-
Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений.
-
Многопользовательский режим работы и разграничение прав доступа (см. аутентификация, авторизация).
Существуют две группы определений операционной системы: «набор программ, управляющих оборудованием» и «набор программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который связан с вопросом, в каких случаях требуется операционная система.
Есть приложения вычислительной техники, для которых операционные системы излишни. Например, встроенные микрокомпьютеры, содержащиеся во многих бытовых приборах, автомобилях (иногда по десятку в каждом), простейших сотовых телефонах, постоянно исполняют лишь одну программу, запускающуюся по включении. Многие простые игровые приставки — также представляющие собой специализированные микрокомпьютеры — могут обходиться без операционной системы, запуская при включении программу, записанную на вставленном в устройство «картридже» или компакт-диске.
-
Операционные системы нужны, если: вычислительная система используется для различных задач, причём программы, решающие эти задачи, нуждаются в сохранении данных и обмене ими. Из этого следует необходимость универсального механизма сохранения данных; в подавляющем большинстве случаев операционная система отвечает на неё реализацией файловой системы. Современные системы, кроме того, предоставляют возможность непосредственно «связать» вывод одной программы с вводом другой, минуя относительно медленные дисковые операции;
-
различные программы нуждаются в выполнении одних и тех же рутинных действий. Например, простой ввод символа с клавиатуры и отображение его на экране может потребовать исполнения сотен машинных команд, а дисковая операция — тысяч. Чтобы не программировать их каждый раз заново, операционные системы предоставляют системные библиотеки часто используемых подпрограмм (функций);
-
между программами и пользователями системы необходимо распределять полномочия, чтобы пользователи могли защищать свои данные от несанкционированного доступа, а возможная ошибка в программе не вызывала тотальных неприятностей;
-
необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере (даже содержащем лишь один процессор), осуществляемой с помощью приёма, известного как «разделение времени». При этом специальный компонент, называемый планировщиком, делит процессорное время на короткие отрезки и предоставляет их поочерёдно различным исполняющимся программам (процессам);
-
оператор должен иметь возможность, так или иначе, управлять процессами выполнения отдельных программ. Для этого служат операционные среды — оболочка и наборы утилит — они могут являться частью операционной системы.
Таким образом, современные универсальные операционные системы можно охарактеризовать, прежде всего, как:
-
использующие файловые системы (с универсальным механизмом доступа к данным),
-
многопользовательские (с разделением полномочий),
-
многозадачные (с разделением времени).
Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов самой операционной системе. В составе операционной системы различают три группы компонентов:
-
ядро, содержащее планировщик; драйверы устройств, непосредственно управляющие оборудованием; сетевая подсистема, файловая система;
-
системные библиотеки;
-
оболочка с утилитами.
Большинство программ, как системных (входящих в операционную систему), так и прикладных, исполняются в непривилегированном («пользовательском») режиме работы процессора и получают доступ к оборудованию (и, при необходимости, к другим ресурсам ядра, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что система (точнее, её ядро) управляет оборудованием.
В определении состава операционной системы значение имеет критерий операциональной целостности (замкнутости): система должна позволять полноценно использовать (включая модификацию) свои компоненты. Поэтому в полный состав операционной системы включают и набор инструментальных средств (от текстовых редакторов до компиляторов, отладчиков и компоновщиков).
Архиватор — программа, осуществляющая упаковку одного и более файлов в архив или серию архивов, для удобства переноса или хранения, а также распаковку архивов. Многие архиваторы используют сжатие без потерь.
Простейшие архиваторы просто последовательно объединяют содержимое файлов в архив. Архив должен также содержать информацию об именах и длине оригинальных файлов для их восстановления. Большинство архиваторов также сохраняют метаданные файлов, предоставляемые операционной системой, такие, как время создания и права доступа.
Программа, создавая архив, обрабатывает как текстовые файлы, так и бинарные файлы. Первые всегда сжимаются в несколько раз (в зависимости от архиватора), тогда как сжатие бинарных файлов зависит от их характера. Одни бинарные файлы могут быть сжаты в десятки раз, сжатие же других может и вовсе не уменьшить занимаемый ими объем.
Сжатие данных обычно происходит значительно медленнее, чем обратная операция.
Характеристики архиваторов:
-
По степени сжатия.
-
По скорости сжатия.
Характеристики архиваторов — обратно зависимые величины. То есть, чем больше скорость сжатия, тем меньше степень сжатия, и наоборот.
Нахождение для любого входного файла программы наименьшего возможного размера, печатающей этот файл, является алгоритмически неразрешимой задачей, поэтому «идеальный» архиватор невозможен.
Антивирусная программа (антивирус) — любая программа для обнаружения компьютерных вирусов, а также нежелательных (считающихся вредоносными) программ вообще и восстановления зараженных (модифицированных) такими программами файлов, а также для профилактики — предотвращения заражения (модификации) файлов или операционной системы вредоносным кодом.
Целевые платформы антивирусного ПО:
На данный момент антивирусное программное обеспечение разрабатывается в основном для ОС семейства Windows от компании Microsoft, что вызвано большим количеством вредоносных программ именно под эту платформу (а это, в свою очередь, вызвано большой популярностью этой ОС, также как и большим количеством средств разработки, в том числе бесплатных и даже «инструкций по написанию вирусов»). В настоящий момент на рынок выходят продукты и под другие платформы настольных компьютеров, такие как Linux и Mac OS X. Это вызвано началом распространения вредоносных программ и под эти платформы, хотя UNIX-подобные системы всегда славились своей надежностью. Например, известное видео «Mac or PC» шуточно показывает преимущество Mac OS над Windows и большим антивирусным иммунитетом Mac OS по сравнению с Windows[1].
Помимо ОС для настольных компьютеров и ноутбуков, также существуют платформы и для мобильных устройств, такие как Windows Mobile, Symbian, iOS, BlackBerry, Android, Windows Phone 7 и др. Пользователи устройств на данных ОС также подвержены риску заражения вредоносным программным обеспечением, поэтому некоторые разработчики антивирусных программ выпускают продукты и для таких устройств.
Классифицировать антивирусные продукты можно сразу по нескольким признакам, таким как: используемые технологии антивирусной защиты, функционал продуктов, целевые платформы.
По используемым технологиям антивирусной защиты:
-
Классические антивирусные продукты (продукты, применяющие только сигнатурный метод детектирования)
-
Продукты проективной антивирусной защиты (продукты, применяющие только проактивные технологии антивирусной защиты);
-
Комбинированные продукты (продукты, применяющие как классические, сигнатурные методы защиты, так и проактивные)
По функционалу продуктов:
-
Антивирусные продукты (продукты, обеспечивающие только антивирусную защиту)
-
Комбинированные продукты (продукты, обеспечивающие не только защиту от вредоносных программ, но и фильтрацию спама, шифрование и резервное копирование данных, и другие функции)
По целевым платформам:
-
Антивирусные продукты для ОС семейства Windows
-
Антивирусные продукты для ОС семейства *UNIX (к данному семейству относятся ОС BSD, Linux, Mac OS X и др.)
-
Антивирусные продукты для мобильных платформ (Windows Mobile, Symbian, iOS, BlackBerry, Android, Windows Phone 7 и др.)
Антивирусные продукты для корпоративных пользователей можно также классифицировать по объектам защиты:
-
Антивирусные продукты для защиты рабочих станций
-
Антивирусные продукты для защиты файловых и терминальных серверов
-
Антивирусные продукты для защиты почтовых и Интернет-шлюзов
-
Антивирусные продукты для защиты серверов виртуализации
Говоря о системах Майкрософт, обычно антивирус действует по схеме: - поиск в базе данных антивирусного ПО "сигнатур" вирусов - если найден инфицированный код в памяти - или оперативной и/или постоянной - запускается процесс карантина и процесс блокируется - зарегистрированная программа обычно удаляет вирус, незарегистрированная просит регистрации, и оставляет систему уязвимой.
Для использования антивирусов необходимы постоянные обновления так называемых баз антивирусов. Они представляют собой информацию о вирусах - как их найти и обезвредить. Поскольку вирусы пишут часто, то необходим постоянный мониторинг активности вирусов в сети. Для этого существуют специальные сети, которые собирают соответствующую информацию. После сбора этой информации производится анализ вредоносности вируса, анализируется его код, поведение, и после этого устанавливаются способы борьбы с ним. Чаще всего вирусы запускаются вместе с операционной системой. В таком случае можно просто удалить строки запуска вируса из реестра, и на этом в простом случае процесс может закончиться. Более сложные вирусы используют возможность заражения файлов. Например, известны случаи, как некие даже антивирусные программы, будучи зараженными, сами становились причиной заражения других чистых программ и файлов. Поэтому более современные антивирусы имеют возможность защиты своих файлов от изменения и проверяют их на целостность по специальному алгоритму. Таким образом, вирусы усложнились, как и усложнились способы борьбы с ними. Сейчас можно увидеть вирусы, которые занимают уже не десятки килобайт, а сотни, а порой могут быть и размером в пару мегабайт. Обычно такие вирусы пишут в языках программирования более высокого уровня, поэтому их легче остановить. Но по-прежнему существует угроза от вирусов, написанных на низкоуровневых машинных кодах наподобие ассемблера. Сложные вирусы заражают операционную систему, после чего она становится уязвимой и нерабочей.