OSDev http://osdev.su/ |
|
Контейнер исполняемого кода, основанный на ZIP http://osdev.su/viewtopic.php?f=18&t=782 |
Страница 1 из 1 |
Автор: | sh2ezo [ 13 авг 2013, 19:56 ] |
Заголовок сообщения: | Контейнер исполняемого кода, основанный на ZIP |
docx и прочие новые форматы офиса основаны на zip, который содержит внутри себя xml и ещё какие-то файлы. Вот я и подумал, почему бы не запихнуть таким же образом в zip исполняемый код. что хотелось бы: 1. возможность описания как бинарников, так и скриптов(т.е. указывается, например, тип контента, а также среда, в которой должен исполняться код) 2. возможность запихнуть внутрь кучу версий программы для разных систем/сред/процессоров(т.е., например, запихнули туда версию для линя, винды, а также колибри, после чего везде запускаем и везде запускается, но нет никаких dotNet'ов и т.п.) Решил поддержку такого формата запихнуть себе в ядро, но, когда задумался над тем, как всё это будет описываться и лежать внутри zip'а, застопорился и подумал, что надо погуглить, есть ли уже подобное. В гугле не нашёл ответа. Знает кто-нибудь о существовании чего-то подобного? |
Автор: | pavia [ 13 авг 2013, 20:37 ] |
Заголовок сообщения: | Re: Контейнер исполняемого кода, основанный на ZIP |
В том же docx описание хранится в xml. MSI и JAR посмотри, а вообще в место JAR скорее всего надо смотреть JNLP. А вообще эти форматы мне видятся очень бредовыми. Пока сам досконально не обдумывал вопрос так как есть и за и против. 1) Плюс любой новичок в кодинге может выполнить работу. Интеграция с другими продуктами на высоте. 2) Минус, не предсказуемые ошибки интеграции. О будущей работе майкрософт позаботился зарания. 3) Плюс. Уменьшает занимаемое место, до 10 раз. 4) Минус сжатие. Увеличивает время обработки. zip насколько помню плохо паралелится. |
Автор: | phantom-84 [ 13 авг 2013, 20:57 ] |
Заголовок сообщения: | Re: Контейнер исполняемого кода, основанный на ZIP |
sh2ezo писал(а): Знает кто-нибудь о существовании чего-то подобного? Не интересовался. Я когда-то хотел хранить базовый образ для RAM-диска в виде архива, но exe-шники никогда.Основная проблема - это большой объем (даже с учетом упаковки). У Эппл что-то такое было, когда они переходили на Интел-архитектуру. Да, docx (и др.) прикольный формат. Особенно мне понравилось править свойства вручную и перепаковывать с большей степенью сжатия. В некоторых форматах используются запароленные архивы. Интересно, в исходниках соотв. программ пароли указываются в виде обычных символьных строк? Вот разрабы напрягутся, если выдернуть какой-нибудь такой пароль и вывесить его на самом видном месте |
Автор: | sh2ezo [ 13 авг 2013, 22:04 ] |
Заголовок сообщения: | Re: Контейнер исполняемого кода, основанный на ZIP |
Спасибо за ответы. Глянул JNLP. Это вообще не то, ибо это описатель для загрузки/запуска контента из сети. Конечно, такой способ, как там, можно взять за основу описателей контента внутри zip, но там лишь поверхностное описание, т.е., например, базы, точки входа, а также секции там не описываются. Скрипты можно описывать запросто, т.е. набили zip скриптами для каждой операционки, засунули jnlp-подобный описатель и отдали юзерам. Также глянул JAR. Там файл манифеста по полезному содержимому схож с jnlp, но там ещё есть некоторая инфа. pavia писал(а): 1) Плюс любой новичок в кодинге может выполнить работу. Интеграция с другими продуктами на высоте. 2) Минус, не предсказуемые ошибки интеграции. О будущей работе майкрософт позаботился зарания. 3) Плюс. Уменьшает занимаемое место, до 10 раз. 4) Минус сжатие. Увеличивает время обработки. zip насколько помню плохо паралелится. Также к плюсам можно отнести возможность шифрования, т.е. без пароля запуск и дизассемблирование будут невозможны. msi, насколько я понял, содержит только инфу о том, что и как установить. Вот пример того, что я имел в виду: Вложение:
|
Автор: | Yoda [ 14 авг 2013, 12:42 ] |
Заголовок сообщения: | Re: Контейнер исполняемого кода, основанный на ZIP |
ZIP архив включает в себя два понятия - сжатие данных и формат архива. И то и другое имеет открытый формат, более того, сжатие даже стандартизировано. Для сжатия используется метод Deflate, стандартизированный в документах RFC 1950 и RFC 1951 и используемый во всех ZIP-совместимых архиваторах, архиваторе GZIP и многочисленных библиотеках и архиваторах, поддерживающих форматы ZIP и GZIP. Формат архива ZIP можно узнать из почти любого архиватора, распространяемого в исходниках. UPD Про шифрование расслабься. Если архив может без участия пользователя распаковать ОС, значит может и злоумышленник. MSI использует другой формат архива и другой алгоритм сжатия данных. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |