Смекни!
smekni.com

Создание базы данных функциональных аналогов Windows-программ для ОС Linux и разработка методики подбора ПО (стр. 2 из 5)

· HKEY_LOCAL_MSSHINE – эта ветвь, в которой содержится информация, относящаяся к операционной системе и оборудованию. Данная ветвь включает в себя наибольшее количество информации в системном реестре Windows/

· HKEY_USER – содержит подразделы с информацией обо всех профилях пользователей данного компьютера.

· HKEY_CURRENT_CONFIG – содержит подразделы с информацией обо всех профилях оборудования, используемого в данном сеансе работы. Профили оборудования позволяют выбрать драйвера поддерживаемых устройств для заданного сеанса работы.

Второй ступенью в иерархической системе реестра являются так называемые разделы, или ключи (Keys). В Windows нет какого-либо единого стандарта в обозначении ключей системного реестра, поэтому их имена были назначены разработчиками исходя из типа данных, представленных в нутрии ключа. Ключи отображаются в программе «Редактор» реестра в виде подпапок ветвей HKEY_. Функционально ключи можно разделить на две условные категории:

· Определяемые системой, то есть те, имена которых назначены операционной системой.

· Определяемые пользователем – имена этих ключей могут быть изменены администратором компьютера, и такие изменения не приведут к каким-либо фатальным последствиям.

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

1.3 Каким образом устанавливаются программы в ОС Linux

В ОС Linux существует два способа установки программного обеспечения:

1. Установка из исходных текстов: Этот способ заключается в том, что программа распространяется не в собранном виде, а в виде исходных кодов. Данный метод называется традиционным потому, что он был первым способом установки программ до появления менеджера RPM или аналогичных ему (apt–get). Как правило, исходный текст располагается в архиве. Обычно файл, содержащий исходный текст, имеет двойное расширение: например, tag.gz или tar.bz2. Это означает, что данный файл сжат двумя архиваторами: сначала tar, а потом gzip. Распаковывать архив нужно по принципу стека: сначала внешним архиватором, а потом внутренним. Следующий этап – это непосредственная установка программы. После успешного завершения распаковки, нужно перейти в каталог, содержащий исходные тексты и ввести три команды:

/configure – конфигурирует устанавливаемую программу для работы с системой. Также она проверяет, может ли устанавливаемая программа работать в данной системе. После успешного завершения будет создан файл Makefile. В котором указаны необходимые параметры для работы программы make.

make – на этом этапе программа компилируется, то есть создаются бинарные исполняемые файлы из исходных текстов.

make install – устанавливает программу и файлы справочной системы в соответствующие каталоги.

Одним из плюсов этого типа установки является его быстродействие.

2. Программа RPM: Установка программного обеспечения в дистрибутивах Red Hat и Mandrake производится с помощью программы rpm. RPM (Red Hat Package Manager) – это менеджер пакетов Red Hat, который предназначен работать, как открытая пакетная система, доступная для использования кем угодно. Она позволяет пользователям брать исходный код для нового программного обеспечения и упаковывать его в форме исходного и двоичного кода, так что двоичные файлы могут быть легко установлены и отслежены, а исходный код легко построен. Эта система также сопровождает базу данных всех пакетов и их файлов, что может быть использовано для проверки пакетов и запроса информации о файлах или пакетах. В отличие от привычных мастеров Install Shield, которые используются для установки программ для Windows, пакеты RPM (файлы с расширением.rpm) не являются выполняемыми файлами, то есть программами. В пакетах содержатся файлы (как в архиве), которые нужно установить, а также различная информация об этом пакете: какой пакет необходим для работы этого пакета, с каким пакетом конфликтует, информация о разработчике, а также информация, указывающая, какие действия нужно выполнять при установке этого пакета, например, какие каталоги нужно создать. Менеджер пакетов RPM используется во многих дистрибутивах Linux (Red Hat, Mandrake, ASP, Black Cat.) и является довольно легкой и гибкой в использовании системой, что обуславливает его популярность. Перед установкой программы менеджер RPM проверит зависимости пакета, то есть, установлены ли в вашей системе другие пакеты, которые необходимы новой программе или конфликтуют с ней. Если установлены все нужные программе пакеты (или для работы программы вообще не нужны никакие дополнительные пакеты), а также, если новая программа не конфликтует ни с одним уже установленным пакетом, менеджер RPM установит программу. В противном случае вы получите сообщение, что для работы программы нужен какой-то дополнительный пакет или программа конфликтует с уже установленным пакетом. Если нужен дополнительный пакет, просто установите его. А вот, если программа конфликтует с уже установленным пакетом, то нужно будет выбрать, какой пакет вам больше нужен: уже установленный или новый. Проще всего установить ПО, представленное в виде rpm-пакета, содержащего исполняемые файлы.

Основные недостатки:

· Макропакеты между дистрибутивами могут существенно различаться;

· Раздробленность и несовместимость различных версий. Так, существуют проекты по разработке RPM 4 (rpm.org), RPM5 (rpm5.org), а также большое количество патчей на RPM в дистрибутивах. В частности, это приводит к:

o Несовместимости spec-файлов между дистрибутивами (spec-файл ALT Linux чаще всего невозможно собрать на Red Hat или SuSE без значительных исправлений);

o Несовместимости названий пакетных зависимостей при попытке установить пакет от другого дистрибутива (например, зависимости в RPM сборки Connectiva создаются по другим правилам, нежели в Mandriva);

Преимущества над другими средствами управления и установкой программного обеспечения:

· Лёгкость удаления и обновления программ;

· Популярность: очень многие программы собираются именно в RPM, поэтому нет необходимости собирать программу из исходных кодов;

· «Неинтерактивная установка»: легко автоматизировать процесс установки / обновления / удаления;

· Проверка целостности пакетов с помощью контрольных сумм и GPG-подписей;

· DeltaRPM, аналог patch, позволяющий обновить установленное программное обеспечение с минимальной затратой трафика;

· Возможность аккумуляции опыта сборщиков в spec-файле;

· Относительная компактность spec-файлов за счёт использования макросов;

1.3.1 Пакеты

Основные виды форматов пакетов:

· Бинарные (двоичные) пакеты – готовые откомпилированные пакеты, которые закачиваются для конкретной системы.

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

1.3.2 Скриптовый язык

Язык программирования, разработанный для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере. Простые скриптовые языки раньше часто называли языками пакетной обработки (batch languages или job control languages). Сценарии обычно интерпретируются, а не компилируются (хотя часто сценарии компилируются каждый раз перед запуском). В прикладной программе, сценарий (скрипт) – это программа, которая автоматизирует некоторую задачу, которую без сценария пользователь делал бы вручную, используя интерфейс программы.

Оболочка операционной системы – интерпретатор команд операционной системы, обеспечивающий интерфейс для взаимодействия пользователя с функциями системы.

Bash – усовершенствованная и модернизированная вариация командной оболочки Bourne shell. Одна из наиболее популярных современных разновидностей командной оболочки UNIX. Особенно популярна в среде GNU/Linux, где она часто используется в качестве командной оболочки по умолчанию. Сама по себе оболочка bash не выполняет никаких прикладных задач. Но она обеспечивает выполнение всех приложений: нахождение вызываемых программ, их запуск и организацию ввода / вывода. Кроме того, оболочка отвечает за работу с переменными окружения и выполняет некоторые преобразования (подстановки) аргументов. Но главное свойство оболочки, которое делает ее мощным инструментом пользователя – это то, что она включает в себя простой язык программирования. Как давно доказано в математике, любой алгоритм можно построить из пары-тройки основных операций и одного условного оператора. Реализацию условных операторов (а также операторов цикла) и берет на себя оболочка. Она использует все остальные утилиты и программы (и те, которые имеются в составе операционной системы, и те, что устанавливаются отдельно) как базовые операции поддерживаемого ею языка программирования, обеспечивает передачу им аргументов, а также передачу результатов их работы другим программам или пользователю. В результате получается очень мощный язык программирования. И в этом основная сила и одна из существенных функций оболочки.

2. Составление базы данных программ-аналогов

2.1 Методика подбора

Большинство программ для Windows создаются по принципу «все в одном» (каждый разработчик сам реализует все в своем продукте). Так же этот принцип называют «Windows-way». Идеология UNIX/Linux – один компонент или одна программа должны выполнять только какую-то одну задачу, но зато выполнять её хорошо («UNIX-way»). Программы под Linux напоминают конструктор LEGO (например, если существует программа для проверки орфографии, то её используют при разработке текстового редактора, или если уже существует мощная консольная программа для скачивания файлов, то проще написать к ней графический интерфейс. Этот принцип очень важен и его нужно учитывать при поиске аналогов Windows-программ в Linux. Акцент делается на свободно распространяемое программное обеспечение. На несколько программ Windows можно привести один их общий Linux аналог, и наоборот – на одну программу Windows можно приводить сразу несколько Linux аналогов.