
Курсовая_РеактОС_Речицкий_2013
.pdf
Лицензия GNU GPL на свободное программное обеспечение, создана в рамках проекта GNU, ее вторая версия была выпущена в 1991 году г. Лицензия
была разработана и поддерживается ондом свободного программного
обеспечения (Free Software Foundation, FSF), зарегистрированным в г. Бостон,
штат Массачусетс, США. Лицензия разрешает свободное использование,
модифицирование, копирование исходных кодов программных продуктов,
попадающих под ее область |
действия (в том числе и в коммерческих целях). |
В случае использования |
их в своих разработках и распространения |
производного объектного кода разработчик обязан в дальнейшем предоставлять исходные коды производных продуктов по первому требованию и лицензировать их под той же лицензией.
Мировая судебная практика подтвердила легитимный статус лицензии
GNU GPL в ходе судебных разбирательств SCO против IBM6, SCO против
Novell7, Red Hat против SCO8.
Анализ положений лицензии GNU GPL показывает, что данный документ представляет собой договор смешанного типа, сочетающий в себе положения авторского договора и договора купли-продажи.9
GPL, как и EULA (end-user license agreement — «лицензионное соглашение с конечным пользователем, договор между владельцем компьютерной программы и пользователем еѐ копии, наиболее характерным примером подобного лицензирования является Microsoft Windows10), можно описать с помощью юридических понятий российского гражданского права. В
соответствии с нормами Гражданского кодекса РФ, GPL - это договор присоединения, условия которого определены одной из сторон в стандартной
6http://en.wikipedia.org/wiki/SCO_v._IBM
7http://www.groklaw.net/staticpages/index.php?page=20040319041857760
8http://www.nixp.ru/news/Суд-поддержал-жалобу-Red-Hat-против-SCO.html
9GNU General Public License. «Анализ ―свободных‖ лицензий на предмет их применимости в условиях российской правовой системы». http://www.altlinux.ru/media/otchet_dlia_publikacii/part4.html#mozTocId391958
10http://en.wikipedia.org/wiki/End-user_license_agreement
11
форме и могут быть приняты другой стороной не иначе, как путем присоединения к предложенному договору в целом. Момент вступления в силу
GPL для пользователя четко указан в лицензии: если пользователь внес изменения или осуществил распространение экземпляров программного обеспечения, лицензируемого по GPL, он тем самым подтвердил свое присоединение к лицензии в целом, включая условия, определяющие порядок копирования, распространения и модификации.
Например, EULA вступает в силу и становится обязательным для пользователя, если он вскрыл упаковку программного продукта или установил программное обеспечение на свой компьютер. Такой способ выражения намерения заключить договор описан в многократно описан учебных пособиях по гражданскому праву и называется в юридической теории «конклюдентные действия», то есть действия, выражающие волю лица заключить сделку, но не в форме устного или письменного волеизъявления, а поведением, по которому можно сделать заключение о таком намерении.
Принципиальное отличие GPL от EULA заключается в запрещении EULA
ряда действий (копировать, распространять и модифицировать), в то время как
GPL разрешает и поощряет их при соблюдений определенного минимума условий.
В целом на основании статей 421, 432 части первой и статьями 1235,
1236, 1270, 1286 части четвертой Гражданского кодекса Российской Федерации и письма Минэкономразвития РФ от 05.05.2009 N Д05-2235 можно сделать вывод, что использование свободного программного обеспечения с соблюдением условий соответствующей версии лицензии GNU GPL
соответствует требованиям законодательства Российской Федерации об авторском праве и является правомерным.
Тем не менее, при применении GPL в России могут возникнуть некоторые сложности, которые подразделяются на два блока. Первые лежат в области международного частного права (Гражданско-правовые отношения с участием
12

иностранных лиц или гражданско-правовые отношения, осложненные иным иностранным элементом. Ст. 1186 Части третьей Гражданского кодекса РФ), а
также связаны с различиями в авторском законодательстве России и США.
Вторые носят характер скорее практический - в частности, это вопрос статуса русского перевода GPL, который может иметь существенное значение при защите интересов разработчиков свободного программного обеспечения в суде11.
Поэтому, в отличие от США, в России электронные каналы распространение дистрибутива операционной системы лицензированной по
GNU GPL должны обязательно дополняться распространением этой операционной системы на материальном носителе, в сопровождении оригинального отпечатанного текста лицензии на английском языке, а также одним из ее рекомендованных неофициальных переводов на русский язык. При этом, в случае возникновения расхождений в текстах на русском и английском языках, преимущественное значение будет иметь текст на английском языке.
Приказом Росстандарта от 6 декабря 2011 года N 718-ст утвержден и введен в действие с 1 января 2012 года ГОСТ Р 54593-2011. Стандарт распространяется на свободное программное обеспечение.
ГОСТ Р 54593-2011 устанавливает общие положения в области создания,
распространения и использования свободного программного обеспечения, в
том числе для государственных и муниципальных нужд.
Настоящий стандарт также предназначен для применения организациями,
предприятиями и другими субъектами научной и хозяйственной деятельности независимо от форм собственности и подчиненности, а также органами государственной власти Российской Федерации на всех этапах жизненного цикла свободного программного обеспечения.
11 http://old.computerra.ru/2002/438/17257/
13
В документе в общих чертах обозначены достоинства внедрения свободного программного обеспечения в корпорациях и государственном секторе. Определены основные термины, касающиеся открытого, свободного и
проприетарного ПО, открытых стандартов, протоколов и спецификаций. Представлены цели, задачи, классификация и критерии свободного программного обеспечения, а так же, должна включать в себя инфраструктура разработки и использования СПО.
Например, в качестве достоинств открытого ПО упомянута безопасность, надежность, финансовая привлекательность, обеспечение технологической независимости разработки, уход от привязки к конкретному производителю, независимость в выборе аппаратной платформы, низкая начальная стоимость оборудования, раннее обнаружение дефектов в программном обеспечении и возможность их быстрого исправления, отсутствие обязательной платы за право использования продуктов, стимулирование развития отечественной отрасли разработки программ, расширение возможности участия отечественных разработчиков в выполнении работ и оказании услуг для государственных и муниципальных нужд. В качестве примеров успешных свободных приложений отмечены дистрибутивы GNU/Linux, http-сервер Apache, OpenOffice.org, Firefox и FreeBSD. Упомянут успешный опыт использования СПО в государственных учреждениях Франции, Бразилии, Испании и Китая.
Однако стоит отметить, что в Российской Федерации федеральным законом о техническом регулировании № 184-ФЗ от 27 декабря 2002
года разделены понятия «технический регламент» и «стандарт», в связи с чем,
все стандарты должны утратить обязательный характер и применяться добровольно.
14
2.3 Исключения ReactOS относительно лицензий связанных
бинарных продуктов
GNU GPL обычно запрещает совмещение несвободного программного обеспечения с программным обеспечением под лицензией GPL, например
ReactOS. Несмотря на это (а также относительно других подобных политик),
официальная позиция проекта ReactOS в отношении связывания с несвободными модулями выглядит следующим образом: ReactOS может использоваться и распространяться с несвободным программным обеспечением, таким, как коммерческие драйверы устройств и коммерческие приложения. Это исключение не отменяет никакие другие обязанности лицензиата по GPL.
Это исключение рассматривается проектом как компромисс. Мы не поощряем использование несвободного программного обеспечения по этическим принципам. Мы призываем использовать оборудование, не требующее использования несвободного программного обеспечения для нормальной работы, и поддерживаем и рекомендуем компании, которые обеспечивают предоставление свободных драйверов, программ и инструментов. Кроме того, проект призывает разработчиков продолжать создание свободных драйверов для аппаратных устройств, для которых в настоящее время существуют только несвободные драйверы.
2.4 Авторские права, принадлежащие третьим сторонам
Проект ReactOS зависим от законов об авторском праве при защите своего кода, и, одновременно, он уважает чужие авторские права.
Ниже приводятся политики проекта ReactOS в отношении авторского права.
Копирование кода ПО третьих сторон абсолютно не допустимо, за исключением случаев, когда копируемый код находится в общественном достоянии или распространяется под свободной программной лицензией,
15
позволяющей его сочетание с программой под лицензией GPL, такой например,
как ReactOS (то есть, код GPL-совместим). Всегда следует полагать, что лицензиия отсуствует, за исключением тех случаев, когда она явно предоставляется.
Исходный код с несвободными лицензиями не может быть включен в состав ReactOS. Это касается файлов заголовков, файлов поддержки и файлов исходного кода. Такой код может быть использован для изучения, однако, при этом предполагается, что у изучающего имеется лицензия на владение этим кодом. Например, в случае отсутствия явных договорѐнностей, а также при наличии действительной лицензии, возможно изучение и обучение на примерах несвободного кода.
Значимым побочным эффектом несвободной лицензии является невозможность копирования и вставка кода из несвободной системы в ReactOS.
Кроме того, простое перенабирание существующего кода представляет собой копирование и является нарушением авторских прав. Для создания кода,
который работает аналогично имеющемуся образцу кода, разработчику разрешается обратная разработка программы для изучения и понимания существующего кода, с учѐтом условий лицензирования. Разработчик, однако,
должен создать новый код с нуля, основываясь на полученных им обобщенных знаниях.
Разработчикам рекомендуется НЕ пытаться копировать стиль написания несвободного кода. Хотя стиль написания может не подпадать под авторское право, однако стиль написания свободного кода, подобный или полностью идентичный стилю написания несвободного кода, вызывает недоверие к этому новому коду.
На комментарии из исходного кода также распространяется авторское право, и они НЕ могут быть скопированы, даже в совсем другую оригинальную работу, кроме случаев добросовестного использования.
16
Исходный код, полученный в рамках соглашения о неразглашении (NDA),
представляет собой особый случай, требующий изучения самого соглашения о неразглашении. Перед использованием знаний, полученных от изучения такого кода, следует обсудить специфику соглашения о неразглашении с администраторами проекта ReactOS.
В любом случае, проект ReactOS требует от своих участников придерживаться условий лицензий всего программного обеспечения,
используемого при разработке ReactOS. Предпочтительной является стратегия полного избегания использования любых несвободных лицензий.
Добросовестное использование (fair use). Защищенные авторским правом материалы несут с собой определенные безвозвратные права на добросовестное использование. Одним из них является право на изучение защищенной авторским правом работы в образовательных целях. Именно поэтому посторонние, не защищѐнные соглашением о неразглашении комплекты разработчика (development kits) изучаются для того, чтобы участники проекта могли создавать совместимое программное обеспечение.
Обратная разработка (reverse engineering). Многие несвободные пакеты ПО содержат в своих лицензиях пункты, запрещающие их обратную разработку. Создатели проекта ReactOS придерживаются точки зрения, что эти лицензионные ограничения действуют лишь в той степени, в какой они запрещают преднамеренное преобразование объектного кода в соответствующий исходный код с последующим заявлением о праве собственности на этот исходный код. Обратная разработка в той еѐ части,
которая имеет место быть каждый раз, когда разработчик отслеживает
(трассирует) код в ядре операционной системы с помощью отладчика с целью поиска проблем со своим кодом, является допустимым добросовестным использованием. Любой исходный код, непосредственно полученный путем обратной разработки, должен рассматриваться так же, как и любой другой
17
несвободный исходный код - полезен для изучения и понимания системы, но не разрешѐн для включения в состав ReactOS.
Дизассемблирование объектного кода рассматривается как форма обратной разработки. Листинги дизассемблированного кода имеют те же самые лицензионные ограничения, что и сам объектный код.
"Разработчики с запятнанной репутацией" (Tainted Developers).
Существует правовая теория, которая иногда высказывается при выполнении работы, аналогичной уже опубликованной ранее и защищѐнной авторским правом. Существует опасение, что если создатели новой работы видели оригинальную работу, то они будут не в состоянии создать подобную работу без нарушения авторского права на оригинал. Позиция проекта такова, что эта теория является недействительной по ряду причин. Как правило, нет причины,
по которой разработчик, видевший несвободный код, не может написать код для ReactOS, похожий исключительно с точки зрения общей логики работы.
Координаторы проекта прилагают все усилия для того, чтобы кодовая база отвечала требованиям всех авторских прав и лицензий на протяжении всего кода, являющегося частью системы. Однако из-за размера и сложности системы, невозможно гарантировать, что подобное нарушение никогда не произойдет. На сайте проекта представлена специальная форма приема заявлений о подобных нарушениях. Координаторы проекта обязуются немедленно удалить любой код, содержащий подобные нарушения, из кодовой базы после сообщения о таком нарушении, при условии предоставления соответствующих документальных свидетельств и проведения подтверждающего анализа администратором проекта.
18
2.5 Средства разработки
ReactOS требует для своей разработки несколько сторонних SDK. Каждый из них преподносит уникальные правовые вопросы. При разработке ReactOS
используются следующие SDK:
- Microsoft Platform SDK (в т.ч. связанные с ним SDK и SDK компонентов):
Этот SDK находится по адресу http://www.microsoft.com/msdownload/platformsdk/sdkupdate/. Он содержит файлы заголовков, библиотеки, документацию и другие файлы поддержки, а
также образцы исходного кода для программ, которые иллюстрируют использование API, определенного в SDK. Это основное средство разработки,
используемое для создания стороннего ПО, работающего в операционных системах Microsoft и совместимых с ними.
-Microsoft Driver Development Kit (DDK): специальный SDK,
предназначенный для разработки ПО режима ядра (включая драйверы устройств).
- Microsoft Installable File system Kit (IFS): SDK специального назначения,
предназначенный для разработки определенных компонентов режима ядра,
известных как файловые системы. Этот комплект распространяется под ограниченной лицензией и стоит приблизительно $1000.
Ограничения лицензий SDK. Некоторые из SDK, которыми часто пользуются участники проекта, распространяются под несвободными лицензиями. Некоторые из этих лицензий включают в себя различные ограничения на использование программного обеспечения, разработанного с использованием этого SDK. В частности, Microsoft ввела ограничения относительно того, на каких операционных системах могут быть использованы драйверы, созданные с помощью их DDK. Эти ограничения действуют только в отношении тех драйверов, которые непосредственно включают в себя предоставленные Microsoft файлы заголовков или библиотек в виде объектного либо исходного кода. Однако, такого рода ограничения не действительны по
19
отношению к документации, идущей с этими SDK, а к исходным кодам (в
частности, к файлам заголовков) можно обращаться для целей их изучения и обеспечения совместимости, о чѐм уже говорилось выше.
Проект ReactOS придерживается точки зрения, что на некоторые компоненты этих SDK авторское право не распространяется. Проект считает,
что имена символических констант, типов структур данных и т.п., не являются материалом, законодательно защищѐнным авторским правом, поскольку они являются функциональными элементами и не включают в себя творческое выражение. Поэтому проект отстаивает позицию, что разработчики могут называть их собственные соответствующие структуры данных, объявленные константы, перечисленные типы, и т.д. аналогично обнаруженным в защищенных авторским правом работах.
Кроме того, имена структур данных и компонентов должны быть идентичны для обеспечения совместимости с посторонним объектным кодом,
и, следовательно, аналогичны тем, которые можно найти в SDK от Microsoft.
С целью достижения полной совместимости ReactOS с Windows,
структуры данных в ReactOS должны точно соответствовать тем, которые ожидаются сторонним ПО. Хотя существует запрет на прямое копирование любых данных из файла, защищенного авторским правом, но ReactOS
позволяет воспроизведение (пересоздание) структур данных, совместимых с теми, которые были найдены в несвободных SDK.
20