LINUX.ORG.RU
решено ФорумTalks

GNU GPL 3 + программа в машинных кодах. Возможно ли?


0

1

Предположим, что какой-то хакер написал компьютерную программу. И ему захотелось поделиться с ней, выложив ее под лицензией GNU GPL 3. Только вот беда - он такой крутой хакер, что все свои программы создает не иначе как редактируя бинарник с помощью HEX-редактора. Никаких интерпретаторов или компиляторов. Фактически, только чистый машинный код, без исходников.

А лицензия GNU GPL 3 требует исходников.

Незадача =) Спрашивается, что делать в такой ситуации??

Может быть лицензия GNU GPL 3 позволяет и такой случай, или я просто чего-то не понимаю?

Или может быть, это сработало бы с более старой версией лицензии, GNU GPL 2?

И если нет, то какие тогда открытые/свободные лицензии могли бы подойти?

Перемещено mono из development


Ответ на: комментарий от nanoolinux

«ты прикалываешься? или серьёзно?» Нет, серьезно. Мне интересно, к чему может привести такой случай.

aaz893
() автор топика
Ответ на: комментарий от aaz893

gpl нужен что-бы все имели доступ к исходникам. если нет исходников - gpl теряет смысл, т.к. любой, кто имеет бинарник имеет и исходник, т.к. бинарник и является исходником.

nanoolinux ★★★★
()
Ответ на: комментарий от nanoolinux

ты прикалываешься? или серьёзно?

Конечно прикалывается. Ситуация абсолютно нереальная, и он сам это понимает.

Хотя сейчас, конечно, начнет убеждать всех тут в обратном, любому человеку хоть с небольшим количеством мозгов будет очевидно что ситуация искуственная.

morse ★★★★★
()
Ответ на: комментарий от morse

«Конечно прикалывается. Ситуация абсолютно нереальная, и он сам это понимает.» Ну почему же? Вполне даже реальная. Я даже пример видел в «Ассемблере для чайников». Так что не надо, я ничего не придумываю.

aaz893
() автор топика
Ответ на: комментарий от nanoolinux

«gpl нужен что-бы все имели доступ к исходникам. если нет исходников - gpl теряет смысл»

Нет, не теряет. Ведь еще далеко не факт, что автор программы хочет, чтобы в его программе кто-то что-то менял. Приведу аналогию. Если Вы скачаете из Интернета текст какого-то романа, который распространяется бесплатно, то означает ли это, что автор романа не будет против, если текст его романа будут изменять?

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

aaz893
() автор топика
Ответ на: комментарий от mono

плюсану. тем более тс ещё не сделал домашку по математике.

nanoolinux ★★★★
()

ну можешь комментарии к своей программке приложить, в отдельном файле.

Типа «а вот по адресу 00ccddff у нас следующий код FA B3 DC F1 CD делает вот это...»

а вообще не вижу проблемы

Harald ★★★★★
()

А в чём проблема? GPL3 можно навесить ведь не только на код, но скажем и на картинку. Делай с ней что хошь после этого.

Evgueni ★★★★★
()

А почему вы спрашиваете?

goingUp ★★★★★
()

он такой крутой хакер, что все свои программы создает не иначе как редактируя бинарник с помощью HEX-редактора

А «крутой хакер» - это эвфемизм?

Спрашивается, что делать в такой ситуации??

Сохранить машинные коды в plain text?

cipher ★★★★★
()
Последнее исправление: cipher (всего исправлений: 1)
Ответ на: комментарий от mono

«Я думаю этому бреду не место в Dev.» Прошу меня простить, но в чем бред? Да, ситуация очень редкая. Но разве это как-то делает ее бредовой?

«тем более тс ещё не сделал домашку по математике.» Не понял?

«ну можешь комментарии к своей программке приложить, в отдельном файле.» Я ничего не писал. Меня этот вопрос интересует чисто теоретически.

«а вообще не вижу проблемы» Вы видели программы в машинном коде под копилефт-лицензией? Я - нет. Вот и хочу выяснить, фантастика ли это или нет.

aaz893
() автор топика
Ответ на: комментарий от Evgueni

«GPL3 можно навесить ведь не только на код, но скажем и на картинку. Делай с ней что хошь после этого.»

Да, разве? Будьте так добры, не могли бы скинуть пруфлинк?

aaz893
() автор топика
Ответ на: комментарий от mono

Да, ситуация очень редкая. Но разве это как-то делает ее бредовой?

Ее нереалистичность.

В универе на 3м курсе программил в машинных кодах под 8080 на специальных стендах. Там по-другому ну просто никак. Ситуаций вполне похожая.

cipher ★★★★★
()
Ответ на: комментарий от nanoolinux

ты прикалываешься? или серьёзно?

А что тут такого? Я в своё время, например, писал подпрограммы для z80 в машинных кодах. Ещё в журналах типа «Радио» и «Наука и жизнь» в машкодах публиковались прошивки для всяких 86-рк и Микрош, а затем и для микроконтроллеров.

lyset ★★★
()

В данном случае бинарник и является исходником. Аналогично коду на JS.
Выкладывать исходник необходимо, если хакир распространяет обфусцированый бинарник. Т.е. нашел у себя виру, понял, что он под GPLv3 - запросил у автора исходники. Он тебе прислал чистый бинарник (с комментариями?). Сидишь, куришь код.

trex6 ★★★★★
()

А лицензия GNU GPL 3 требует исходников.

В чём проблема? Опубликуй листинг машинных кодов,
или листинг в синтаксисе какого-нибудь ассемблера.
Это и будет текстом программы.
Никто не будет заморачиваться «отмывать» твой бинарный код, так как это
нерационально. Хотя, это и делается часто с программами на Си под GPLv3.
Все заморочки и хитрости 80x86/AMD64 уже давно известны специалистам.
В частности тем, кто читает мануалы от Intel под грифами Top Secret.
На крайний случай, они повышают своё образование методом реверс-инжиниринга.

pacify ★★★★★
()
Последнее исправление: pacify (всего исправлений: 2)
Ответ на: комментарий от aaz893

На что? Вам кто-то мешает наложить GPL3 на что-то кроме кода?

Evgueni ★★★★★
()
Ответ на: комментарий от morse

расскажи это рилтеку с глюкавым РХЕ, прошивку которых в конце 90-х приходилось переписывать наполовину в машкодах в хекс редакторе.

Jetty ★★★★★
()
Ответ на: комментарий от mono

«В таком случае, мы обязательно должны рассмотреть применимость GPL к перфокартам.»

Простите, не понял Вашу иронию. Я как-то никак не могу сделать сделать подобный вывод из своего вопроса. Я чего-то не понимаю?

aaz893
() автор топика
Ответ на: комментарий от lyset

для спектрума никогда не видел, что бы програма печаталась в журнале исключительно в машиных кодах. был ещё исходник например на асме с коментариями.

допустим у тебя есть такая таблица. ты же не станеш утверждать, что существуют люди, которые такую же таблицу только, скажем, для amd64, знают наизусть и пишут программы, сидя в каком-нибудь ghex2 и набирая исключительно цифры и буквы abcdef?

nanoolinux ★★★★
()
Ответ на: комментарий от aaz893

Я подчеркиваю нереальность описанной ситуации по состоянию на 23 ноября 2012 года.

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

mono ★★★★★
()
Ответ на: комментарий от cipher

Ты тоже не понял моей аллегории. Я имею в виду, что программировнаие в машинных кодах сейчас так же востребованно как и перфокарты.

mono ★★★★★
()

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

ivanlex ★★★★★
()
Ответ на: комментарий от aaz893

The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.

из гпл3. тебе только остаётся разобраться, можно ли хекс-представление бинаря подогнать под это определение

xsektorx ★★★
()

Чтобы понять, что такое «исходный код», достаточно просто вчитаться в сам термин. В данном случае, сама программа - и есть исходник.

В самом тексте лицензии тоже есть определение:

The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.

Тоже всё ок.

Deleted
()
Ответ на: комментарий от nanoolinux

А я видел, в старых советских журналах. Например сам набирал Сокобан. С пол листа машинного кода в hex-формате с контрольными суммами, и пару строчек на Бэйсике, что бы передать управление машинному коду. С старых светских журналах часто так делали.

ivanlex ★★★★★
()
Ответ на: комментарий от mono

программировнаие в машинных кодах сейчас так же востребованно как и перфокарты.

Ты прав, но позволю себе немного позанудствовать. Те стенды стоять в моей альма-матер до сих пор. На них до сих пор проходят лабы по организации ЭВМ, программы по управлению несколькими лампочками до сих пор пишутся в машинных кодах под реликт 8080.

cipher ★★★★★
()
Последнее исправление: cipher (всего исправлений: 1)
Ответ на: комментарий от xsektorx

тебе только остаётся разобраться, можно ли хекс-представление бинаря подогнать под это определение

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

Deleted
()

Скриншоты исходников предлагали уже?

Ygor ★★★★★
()
Ответ на: комментарий от nanoolinux

допустим у тебя есть такая таблица.

Подобная таблица у меня есть, только гораздо лучше: команды организованы в ней в двумерную таблицу 16х16 по старшим/младшим полубайтам опкода. Кодить с такой таблицей одно удовольствие - ты сам себе ассемблер.

пишут программы, сидя в каком-нибудь ghex2 и набирая исключительно цифры и буквы abcdef?

Для amd64 - вряд ли, а для микроконтроллера какого-нибудь прошивку - запросто. Или gpl у нас не подходит для прошивок?

lyset ★★★
()

открытые/свободные лицензии
Фактически, только чистый машинный код, без исходников.

/0

Homura_Akemi
()
Ответ на: комментарий от mono

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

ivanlex ★★★★★
()
Ответ на: комментарий от ivanlex

написанная на ассемблере (или как вы выразились, в машинных кодах), но между тем, ОС распространяется под GPL.

У ассемблера в отличает от всякого машкода, исходник в виде *.asm как раз таки есть.

antares0 ★★★★
()

Если действительно интересно - спроси FSF.

Pavval ★★★★★
()
Ответ на: комментарий от antares0

Это был просто пример. Но есть такие программы, которые пишутся сразу непосредственно в машинном коде. Да, таких мало, они под узкоспециализированные задачи или технику, но они все же есть.

ivanlex ★★★★★
()
Ответ на: комментарий от aaz893

Вообще, идея GPL требует, чтобы автор предоставил пользователю те же права и возможности для изменения программы, которыми обладает он сам. Так что если у автора нет исходников в традиционном смысле, то и предоставлять пользователю ему нечего.

lyset ★★★
()
Ответ на: комментарий от ivanlex

предлагаю не путать «в машинных кодах» и «на ассемблер». существуют ассемблеры с холдемом и макросами и зачатками ооп.

nanoolinux ★★★★
()
Ответ на: комментарий от lyset

а для микроконтроллера какого-нибудь прошивку - запросто

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

Кодить с такой таблицей одно удовольствие - ты сам себе ассемблер.

я не сомневаюсь в твоих навыках и профессионализме, но это мазохизм, writeonly.

nanoolinux ★★★★
()

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

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от mono

Тебя, кроме образования, ещё и в эмбеддед уже ткнули, так что изволь признать, что сморозил глупость.

Ты ведь не думаешь, что сейчас всё заканчивается на планшетах, смартфонах и ноутбуках, а микроконтроллеры нигде не используют(в бортовом оборудовании, системах безопасности и т.д.)? С их помощью ведь не только мигать светодиодами можно.

Lighting ★★★★★
()

Не ко всему можно применить лицензии типа GPL. Изображения и звукозаписи же не выкладывают под GPL - у них там какие-то другие лицензии типа Creative Commons или как-то так.

Давай вообще поставим вопрос так: ты нарисовал в MS Paint эпический пейзаж и хочешь выложить его под GPL 3 - что считать исходниками? То же самое.

Biga
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.