В Linux. 2 Приобретение и инсталляция Linux. 3 Учебник по Linux 4 Администрирование системы. 5 The X window System. 6 Работа в сети

Вид материалаУчебник

Содержание


1.5 Относительно Copyright для Linux.
1.6 Проектирование и философия Linux.
Подобный материал:
1   2   3   4   5   6   7   8   9   10   ...   73

1.5 Относительно Copyright для Linux.


Общедоступная Лицензия GNU (the GNU General Public License) или кратко GPL. GPL была разработана для проекта GNU ассоциацией Free Software Foundataion. Она устанавливает некоторые положения относительно распространения и модификации "свободнораспространяемых программ". В данном случае "свобода" относится именно к Свободе, а не к стоимости. GPL всегда был источником недопонимания и мы надеемся, что этот обзор поможет вам понять цели и задачи GPL и его влияние на Linux. Полная копия GPL включена в Приложение C.

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

Прежде всего следует объяснить, что "свободнораспространяемые программы", под лицензией GPL это не public domain. Программы public domain это программы не защищенные с помощью copyright и, фигурально выражаясь, принадлежат "почтенной публике" обществу. Программы, защищаемые GPL, наоборот, защищают авторские права автора или авторов. Это значит, что программы защищены стандартными международными законами copyright, и что автор программ официально обозначен. Так что из факта свободного распространения программ не следует, что они public domain.

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

GPL также позволяет людям брать и модифицировать программы, а также распространять свои собственные версии программ. Однако всякая производная работа, основанная на программах, защищенных должна быть под защитой GPL. Другими словами, компания не может, взяв и модифицировав Linux, продавать его под ограничительной лицензией. Любые программы, производные от, должны быть также защищены GPL.

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

Сначала это может звучать как противоречие. Как это так, продавать с выгодой для себя программы, когда GPL позволяет любому иметь их бесплатно? Например, предположим, что какая-то компания решила собрать большое число свободнораспространяемых программ на CD-ROM и заняться их распространением. Эта компания должна вернуть деньги для покрытия расходов на производство и дистрибуцию CD-ROM, компания может также решить сделать на этих продажах прибыль. Это разрешается в соответствии с GPL.

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

Позволить компаниям распространять и продавать свободнораспространяемые программы - вещь очень хорошая. Не всякий имеет доступ к Internet, чтобы скачать программы, вроде Linux, бесплатно. (прим. переводчика: Правда, сама IP-связь для многих в нашей стране очень и очень даже не бесплатно во много раз дороже, чем это обходится "среднему американцу". О качестве связи и говорить не хочется). GPL позволяет компаниям продавать и распространять программы среди тех, кто не имеет свободного доступа к программам. Например, многие организации продают Linux на дискетах, лентах или CD-ROM по почтовым заказам и делают на этом свою прибыль. Разработчики Linux могут никогда не увидеть какую-либо прибыль для себя от этих продаж. Вот каким образом регулируются отношения между разработчиками и дистрибуторами, когда программы находятся под лицензией GPL. Другими словами, Линус не спутайте автора с названием ОС Linux знал, что компании могут захотеть продавать Linux, и что он может не увидеть и пенни от этих продаж.

В мире свободнораспространяемых программ важным элементом являются деньги. Цель свободнораспространяемых программ это всегда создание и распространение фантастических программ; чтобы любой мог их свободно достать и использовать. В следующем разделе мы обсудим, как это соотносится с разработкой Linux.

1.6 Проектирование и философия Linux.


Когда новый пользователь сталкивается с Linux, часто возникают ложные ожидания. Linux уникальная операционная система, и важно понимать его философию и особенности проектирования, чтобы эффективно его использовать. Даже если вы умудренный годами UNIX-гуру, вы найдете в последующем интересное для себя.

В фирмах, разрабатывающих коммерческие UNIX, вся система создается под жестким контролем качества, существует система управления написанием программ, внесением изменений, документированием, информированием о выявленных ошибках и их устранением. Разработчикам запрещено по собственному желанию добавлять какие-то свойства или менять критически важные коды по своему желанию. Они могут вносить изменения только, как реакцию на выявленные ошибки, документировать вносимые изменения так чтобы можно было систему при необходимости "вернуть назад". Каждый разработчик закреплен за одной или несколькими частями системного кода, и только этот разработчик имеет право исправлять замеченные ошибки.

Внутри фирм департаменты контроля качества осуществляют жесткое тестирование всякой новой версии операционной системы. Разработчики обязаны под контролем устранять выявленные ошибки. Существует сложная система статистического анализа, определяющая, сколько ошибок должно быть устранено, чтобы объявить переход к новой версии.

Подход, используемый создателями коммерческого UNIX при написании и сопровождении кодов, весьма сложен и это вполне обоснованно. Фирма должна иметь постоянные и хорошо детализированные подтверждения тому, что следующая версия операционной системы созревает для выпуска на рынок. Отсюда сбор и анализ статистики о работе этой системы. Это очень большая и трудоемкая работа - создавать коммерческий UNIX. Часто настолько большая, что требуются сотни, если не тысячи программистов, специалистов по тестированию, писателей документации, административного персонала. Разумеется, никакие два производителя коммерческого UNIX не похожи друг на друга, но общие принципы именно таковы, как описаны выше.

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

Linux первоначально создавался группой энтузиастов в Internet со всего мира. Любой, в Internet и за его пределами, имеющий достаточные знания и навыки, имеет возможность принять участие в совершенствовании и отладке ядра, переносе в Linux новых программ, написании документации, помощи новичкам. Нет определенной организации, отвечающей за развитие системы. Большей частью Linux-сообщество общается через группы по интересам USENET. Существует ряд соглашений для принимающих участие в разработках: например, любой, желающий, чтобы его код был включен в "официальное" ядро, должен написать Линусу Торвальдсy, который проведет тестирование и включит код в ядро (если предлагаемый код вписывается в систему и не противоречит ее принципам скорее всего он будет включен).

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

Естественно, не все ошибки выявляются и не все проблемы решаются между выпусками версий. Но когда создается впечатление, что существенные и часто проявляющиеся ошибки устранены и система ведет себя достаточно "стабильно", выпускается новая версия. Это не попытка выпустить безошибочную версию, а желание выпустить версию UNIX, с которой можно работать. Linux прежде всего ориентирован на разработчиков.

Все, у кого есть новые программы, которые они хотели бы добавить в систему, обычно делают их доступными для других в альфа-версии, т.е. на стадии тестирования теми отважными или еще не уставшими пользователями, которые хотят сокрушать возникающие проблемы первоначального кода. Поскольку Linux-сообщество в большой степени кучкуется вокруг Internet, альфа-программы выкладываются на один или более Linux FTP-сервера (смотрите Приложение B) и посылается письмо в одну из Linux-групп USENET, о том как можно получить и тестировать представленный код. Пользователи, которые скачивают и тестируют эти альфа-программы, могут по почте сообщать результаты, указывать ошибки, задавать вопросы автору.

После решения начальных проблем с альфа-кодом, код приобретает статус бета-версии, при котором он обычно уже достаточно стабилен, хотя и небезгрешен (он работает, но не все еще его ветви полностью работоспособны). Иначе код попадает в разряд "готового", когда он считается полным и правильным. Относительно новых кодов ядра необходимо просить Линуса включить их в стандартное ядро или добавить как факультативную опцию ядра.

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

Вас может несколько удивить столь неупорядоченная система привлечения добровольцев, программирования и отладки UNIX. Может ли она дать вообще положительный результат? Как оказывается, это один из самых эффективных и успешных проектов, когда-либо существовавших. Полностью все ядро было написано без привлечения каких либо частей ранее существовавшего кода. Большая работа была проделана добровольцами по переносу свободно распространяемых программ в Linux. Были написаны библиотеки, создана файловая система, драйверы для многих популярных устройств.

Обычно программная система Linux распространяется в виде дистрибутива (distribution), содержащего средства инсталляции и раскрутки системы. Большинству пользователей трудно самим собрать систему из разрозненных частей. Но не существует некоего стандартного дистрибутива: их много, каждый со своими преимуществами и недостатками. О различных дистрибутивах Linux речь пойдет в Разделе 2.1.