SamForum.org  
SamLab.ws
Заблокированные пользователи

Вернуться   SamForum.org > Дневники > Toluca
Важная информация

Рейтинг: 5.00. Голосов: 2.

Portable - это как? (часть I)

Запись от Toluca размещена 30.09.2010 в 10:50
Обновил(-а) Toluca 30.09.2010 в 22:35

Начну с забитой фразы. Последнее время большую популярность приобрел так называемый портативный (Portable) софт. Его главная особеннось - полная работоспособность без установки. Этота статья направлена на обзор некоторых принципов создания портативного софта и (внимание) признаков псевдопортативности и безопасности сыра в мышеловке.



Говорить постараюсь структурированно и непредвзято (но честно и со своими предпочтениями). А так же без спец-терминов (т.к. сам в них не силен).

Встретив на нескольких ресурсах практически полную копию этого материала с попыткой дополнить бредятиной с делением портативок на запускаемые с CD, с флешки, портативные с предварительной установкой (и другие термины из лексикона домохозяек), я решил дополнить самостоятельно.

Еще, так сказать, на заре популярности портативного софта началась эволюция интересов пользователей. Эволюция выражалась в вопросах среди комментариев:
- "Как это делается? Прикольно!"
- "А это безопасно? А то переустанавливать половину стационарного софта и чистить реестр прошлый раз было не прикольно!"
- "Киким именно методом это сделано? Безопасно ли это? Как насчет следов в реестре и файлах?"

Как видно, прогресс был. Пользователь постепенно понял, что то, что оно запустилось, не значит, что оно портативно. Назревает необходимость дать вменяемое определение понятию "Портативный софт".

Для начала разберемся с базой:
Говорим здесь для определенности о семействе Windows, а именно о более-менее актуальных версиях: 2000, XP, 2003, Vista, 7, 2008.

В указанном семействе ОС. Важным является понятие Portable Executable, что мало связано с понятием портативного софта.
Фактически этим понятием объяты почти все файлы с расширением EXE, DLL и некоторые другие.
Почему они названы Portable? Причина быдет ясна в такой схеме.

Пояснение для уровня "что-то слышал о программировании". Есть два отдельных программных продукта, которые реализовывают две практически никак не связанные функции. Например первая - набор и хранение платежных поручений, вторая - резервирование данных.
Структура программ этих практически одинакова:


I.
Plat.EXE (главный исполняемый файл)
CalculatingSome.DLL (служебные DLL)
DisplayingSome.DLL
7Z.DLL

II.
Bk.exe
SizeMeter.DLL
Notyfy.DLL
7Z.DLL


Для начала определимся откуда берутся эти все DLL. Ответ - модульное программирование. Дело в том, что даже если программу разрабатывает один человек (что бывает не часто), он просто не в состоянии держать постоянно в памяти и в среде разработки ВЕСЬ проект программы. Значительно удобнее написать отдельным модулем часть занимающуюся некими вычислениями (CalculatingSome.DLL), часть красиво выводящую на экран некие данные (DisplayingSome.DLL).

Что самое важное - этими модулями (DLL, EXE) можно делиться, обмениваться, используя сторонние наработки в своих проектах, т.е. не изобретать постоянно велосипед.

В указанном примере такой общей DLL есть 7Z.DLL. Обеим программам может понадобиться что-то архивировать. Как думаете, захочет ли разработчик придумывать алгоритмы шифрования, причем достаточно надежные и функциональные? Нет.
Есть отлично работающий 7Z.DLL, который как и любой Portable Executable имеет интерфейсы (точки) входа (вызова), работает в любой ОС семейтсва Windows и на выходе дает предсказуемый результат.

Вот поэтому EXE, DLL и являются Portable изначально, т.к. они при правильном обращении выполнябт свою роль для любой программы, правильно обратившейся к ним.

А теперь огромное НО!
Работоспособность отдельных частей ПО при переносе на другую машину совсем не значит работоспособность самого ПО.
Яркий пример из истории портирования - долго гулявший по просторам рунета Adobe Photoshop CS3 Micro. Очень мозговитые люди вылечили исполняемый файл Photoshop.exe так, что он забыл о проверке лицензии. Не очень мозговитые люди подменили этот файлик в своей установке программы. Совсем безмозглые люди выдрали папку C:\\Program Files\\Adobe\\Photoshop себе на флешку и просто на пробу запустили его. И увидев, что программа запустилась, воскричали "portable".


Что выяснилось дальше. данная программа хоть и выглядела работоспособной делала как минимум такие бяки на компе доверчивого пользователя:
- Мусор в реестре.
- Мусор в профиле пользователя.
- Практически обязательный слет регистрации с установленных пакетов той же фирмы (вот уж радость кому-то, у кого на компе хвастались такой поделкой).
- Невозможность работы с текстом.

Аналогично гуляли псевдопортаблы Finereader 10.

Какие ошибки были допущены?
1. Программа - это далеко не всегда (почти никогда) папка с кучей файлов. Это - записи реестра (регистрация, настройки, связь с конфигами других программ), записи конфигов ОС, дополнительные файлы во множестве мест системных каталогов и профилей пользователей.
2. Вырванная из подходящего окружения (где все настроено для ее работы, т.е. где она установлена) прогрмма ведет себя непредсказуемо (т.к. такой ситуации разработчик часто не предполагает), а именно: создает свои записи в реестре и конфиках, файлы в ситемных каталогах, причем часто перезаписывая уже имеющиеся.

Продолжение

(С) NickOn [NickOnToluca]
Размещено в Без категории
Просмотров 6861 Комментарии 1 Редактировать метки Отправить другу ссылку на эту запись
Всего комментариев 1

Комментарии

  1. Старый комментарий
    Аватар для schta
    спасибо., интересно. читаю дальше
    Запись от schta размещена 30.09.2010 в 12:54 schta вне форума
 
Реклама



Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd. Перевод: zCarot

Время генерации страницы 0.19541 секунды с 16 запросами