Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Взгляд на системы с открытым исходным кодом
PAUK-NET.RU - Бесплатный ADSL портал Чувашии > Информационные технологии > Статьи
К.Ст
Открытый код (Open Source).

Движение Open Source зародилось в академических кругах Computer Science. Собственно, первоначально никакого движения не было — а была лишь обычная, принятая в науке, практика свободного обмена результатами своей работы. Благо ARPANET, а затем и Интернет предоставил к тому практически неограниченные возможности.

В первой половине 80-х годов Ричард М. Столлмен, сотрудник MIT AI (в миру он более известен как RMS), боролся с прикручиванием принтера от HP к своей системе. И боролся безуспешно — поскольку товарищи от Хьюлетта и Паккарда отказались предоставить ему «исходники» на свое firmware, что привело Столлмена к убеждению — закрытые исходники ― тормоз прогресса, и все программное обеспечение (ПО) должно быть открытым и свободным.

К середине 80-х годов прошлого тысячелетия RMS создает Фонд свободного программного обеспечения (FSF — Free Software Foundation), начинает проект GNU — воспроизведение функциональности Unix "с чистого листа", но в свободном исполнении, а главное — формулирует принципы Free Software: свобода использования, свобода изучения и модификации, свобода распространения.

Ричард М. Столлмен так определил критерии свободного программного обеспечения:
* Программу можно использовать с любой целью («нулевая степень свободы»)
* Можно изучать, как программа работает и адаптировать её для своих целей («первая степень свободы»). Условием этого является доступность исходного текста программы.
* Можно распространять копии программы — в помощь товарищу («вторая степень свободы»).
* Программу можно улучшать и публиковать свою улучшенную версию — с тем, чтобы принести пользу всему сообществу («третья степень свободы»). Условием этого является доступность исходного текста программы.

Открытый доступ к исходным текстам программ является ключевым признаком свободного ПО, поэтому предложенный несколько позднее Эриком Реймондом термин «open source software» (ПО с открытым исходным текстом) некоторым представляется даже более удачным для обозначения феномена свободного программного обеспечения, чем изначально предложенный Столлменом «free software». Хотя стоит отметить, что Столлмен настаивает на различии этих двух понятий, так как open source обладает только одной, а не всеми четырьмя свободами, присущими Свободному ПО.

В 1992 году молодой финский программист Линус Торвальдс написал новое ядро операционной системы Linux и выложил коды в сеть для доработки совместно с международным сообществом программистов и хакеров.

Кроме того, Линус оказался создателем уникального метода разработки масштабных проектов Open Source, того самого, который Эрик Реймонд позднее назовет методом «большого базара». Это стало возможным благодаря Интернету.

Собственно, рождение Linux дало толчок к окончательному оформлению движения Open Source, несколько обособившегося от сообщества Free Software ― хотя и по сей день это существенно пересекающиеся множества. Но, если апологеты последнего, во главе с RMS, декларируют, что все программное обеспечение должно быть свободным, исходя из моральных и идеологических соображений, то для сторонников Open Source характерен более прагматический подход. Их принцип ― открытое программное обеспечение следует использовать потому, что оно лучше проприетарного. В том числе ― вследствие публичной экспертизы, невозможной для закрытых проектов.

В настоящее время Open Source ПО получило широкое распространение и используется в Министерстве юстиции Бельгии, в котором уже половина компьютеров работает под управлением GNU/Linux, и полицией Франции, которая к 2014 году планирует полностью перейти на Ubuntu Linux. О переходе на программное обеспечение с открытым исходным кодом объявило также Патентное ведомство Нидерландов. Перевести все компьютеры этого учреждения на свободное ПО планируется до конца 2009 года.

Потенциальные преимущества «открытого кода».

* Функциональность. Свободный обмен идеями приводит к тому, что продукт аккумулирует в себе все лучшее, что наработано множеством участников проекта. Общественная экспертиза способствует самоконтролю участников за своим вкладом в проект.

*Скорость внесения улучшений. Все изменения вносимые в проект тестируются множеством участников, что существенно сокращает сроки внесения полезных изменений.

* Отсутствие ошибок. Практически невозможно создать ПО без ошибок, но когда на код смотрят тысячи глаз, то ошибке невозможно спрятаться, в случае злонамеренности, её невозможно спрятать.

* Безопасность. Открытое ПО практически не подвержено атакам вирусов, так как дыры в безопасности устраняются сообществом в течение нескольких часов. Написание вирусов становиться безсмысленным занятием.

Следует заметить, что преимущества Open source не проявляются автоматически при соблюдении правил. Есть много примеров неуспешных Open source проектов. Основная причина этого ― люди, их нравственно-психологическая мотивация и профессионализм.

Культура с «закрытым кодом».

То обстоятельство, что современное человеческое общество и компьютерная сеть являются информационными системами, позволяет проводить между ними глубокие аналогии. Ключевым элементом компьютерных сетей является операционная система, ядро которой, содержит в себе алгоритмы и исходные данные, необходимые для функционирования и взаимодействия прикладных программ. Аналогом операционной системы в человеческом обществе является культура. Ядро культуры содержит упорядоченную систему базовых ценностей, определяющих объективную (а не декларируемую) нравственность и соответствующие ей стереотипы отношения к явлениям внутреннего и внешнего мира, которые проявляются в поведении людей в реальных жизненных обстоятельствах. Большая часть ядра доминирующей в современном обществе библейской культуры является системой с «закрытым исходным кодом», в которой информация по умолчанию зачастую подавляет информацию по оглашению. Можно предположить, что это сделано с целью эксплуатации «авторских прав» разработчиков и владельцев «исходных кодов» в корыстных целях. Но, как известно то, что создал один человек, может понять другой. «Исходные коды» библейской культуры и их авторы были раскрыты в конце 80-х группой людей, известных в сети Интернет под именем «Внутренний Предиктор СССР».

Все виды информационных систем с «закрытым кодом», независимо от элементной базы и языков программирования на которых они реализованы, обладают объективно существующим значительным недостатком: они утрачивают устойчивость по предсказуемости в определенных обстоятельствах. Начиная с определенного уровня сложности системы, внесение в нее изменений и поддержка работоспособности становится нетривиальной задачей. Очень непросто обеспечить согласованные действия массы людей, часто не знакомых друг с другом, работающих в различных местах и часто говорящих на разных языках. Закрытость кодов или их фрагментов приводит к росту противоречий внутри системы и она на сленге программистов начинает «сыпаться». Часто возникающие проблемы начинают решать методом локальных «заплаток», что приводит к дальнейшему усложнению системы и утратой ею устойчивости вплоть до окончательной потери работоспособности. Аналогично описанному алгоритму, существуют риски обрушения культуры построенной на принципах «эзотеризма», когда ресурсов «посвященных» не хватает, чтобы «латать дыры», т.е. решать проблемы в темпе их возникновения. Наступает «цейтнот» и система «падает». В отличие от компьютерных систем, нажать клавишу «reset», без непредсказуемых последствий практически нереально.

Культура с «открытым кодом».

К счастью, в компьютерных системах, разработчиками ПО найдены методы решения подобных проблем. Наиболее эффективным из них является концепция «открытого кода», о котором говорилось ранее. В области культуры, аналогом «открытого кода» является Концепция Общественной Безопасности (КОБ), разработанная авторским коллективом ВП СССР.

КОБ является ядром новой культуры с «открытым кодом», которая потенциально способна обеспечить устойчивость по предсказуемости биосферы планеты «Земля», включая людей. Принадлежность КОБ к классу систем с «открытым кодом» можно проиллюстрировать «копирайтом» предваряющим публикации КОБ и по смыслу совпадающего с открытым ПО: «© Публикуемые материалы являются достоянием Русской культуры, по какой причине никто не обладает в отношении них персональными авторскими правами. В случае присвоения себе в установленном законом порядке авторских прав юридическим или физическим лицом, совершивший это столкнется с воздаянием за воровство, выражающемся в неприятной "мистике", выходящей за пределы юриспруденции. Тем не менее, каждый желающий имеет полное право, исходя из свойственного ему понимания общественной пользы, копировать и тиражировать, в том числе с коммерческими целями, настоящие материалы в полном объеме или фрагментарно всеми доступными ему средствами. Использующий настоящие материалы в своей деятельности, при фрагментарном их цитировании, либо же при ссылках на них, принимает на себя персональную ответственность, и в случае порождения им смыслового контекста, извращающего смысл настоящих материалов, как целостности, он имеет шансы столкнуться с "мистическим", внеюридическим воздаянием.»

Следует отметить, что и в истории развития компьютерных систем, построенных на принципах Open Source, и КОБ ― много общего. Так движение Open Source зарождается в конце 1980-х гг. когда наиболее дальновидным программистам и пользователям становятся очевидны серьёзные недостатки, имеющиеся у проприетарного ПО. В то же самое время в России (ещё во времена СССР) первые идеи КОБ появляются в текстах «Разгерметизации», на тот момент ещё неизвестные широкой публике.

Значительные изменения в ПО происходят в 1992 году, когда Линус Торвальдс создаёт ядро новой системы Линукс. В России ― в это же самое время большим тиражом (10 000 экз.) выходит книги ВП СССР Концепция общественной безопасности под эпическим названием ― «Мёртвая Вода». Т.е. мы имеем и хронологическое совпадение развития двух систем.

Их также объединяет и тот факт, что повсеместное распространение этих систем совпало ростом доступности сети Интернет. Особо следует отметить, что быстрому распространению Линукса способствовало выкладывание исходных кодов ядра системы в сеть для всеобщего доступа и последующего использования, копирования и тиражирования. Аналогичным образом складывалась ситуация и с распространением КОБ, авторский коллектив которой изначально выступал за её свободное распространение в обществе и отрицал концепцию «авторских прав».

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

Содержательная сторона открытости кодов в том, что их авторы не скрывают от общества методов работы и создания информационных продуктов. При появлении программных продуктов Open Source любой пользователь получает возможность изучения кодов выбранной им программы на предмет наличия недокументированных функций и, в случае обнаружения таковых, всё сообщество узнаёт о них в течение нескольких часов, т.е. так называемые скрытые «троянские кони» в системах с открытым кодом исключены. Аналогично стержнем Концепции общественной безопасности является методология, освоив которую каждый может не только входить в любую систему знаний, но и создавать новое знание.

Несомненным преимуществом систем с открытым кодом является мотивация их создателей, поскольку они не ставят задачи «монетизации» результатов своего труда, а руководствуются принципами ― дать обществу всё лучшее, что создано ими, и что воспринято обществом как безусловное благо.
Amp
Выпуск первых публичных версий ядра linux ни на что значительно именно в тот момент времени не мог повлиять. Эта была студенческая поделка. Интересная поделка с потенциалом, который надо было развивать. Одно только ядро погоды не делало. Только в 94-м году оно "доросло" до версии 1.0. Стремительно развитие по-моему после 94-95-го года пошло. Начали появляться redhat-и и прочие.

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

Четкое ощущение, что статья про сферических коней в вакууме. Не хватает фотографии Столлмана в рамочке.
Лэндэр
Цитата(Amp @ Feb 24 2009, 22:58) *
Четкое ощущение, что статья про сферических коней в вакууме. Не хватает фотографии Столлмана в рамочке.

Столлмана-то нет, но Сталин в рамочке явно присутствует.
В том-то и дело, что пока всякие авторские коллективы ВП СССР разрабатывают всякие КОБы, программисты работают и пишут системы и с открытым и закрытым кодом.
Цитата(Amp @ Feb 24 2009, 22:58) *
Открытый исходный код, открытые спецификации, документация - это все хорошо и прекрасно. Но про открытый код надо уяснить одну простую вещь - сообщество, которое его пишет и развивает, никому и ничего не должно. Со всеми вытекающими. Все эти описанные потенциальные преимущества ПО с открытым кодом в большинстве случаев так и остаются потенциальными. А названные недостатки модели разработки закрытого ПО можно смело применять к любому ПО, в том числе и opensource.

Это точно. Иногда в программе через месяц не может разобраться даже тот, кто её написал, хотя вроде всё задокументировано.
kardan
Цитата
Это точно. Иногда в программе через месяц не может разобраться даже тот, кто её написал, хотя вроде всё задокументировано.


это не отменяет пользы от исходного кода. вы пытаетесь доказать что закрытый код ничем не лучше открытого, но при общих вероятных недостатках открытый код как минимум более прозрачен. а от багов никто не застрахован, даже программа PHP, которую можно читатать вдоль и поперек и при закрытой разработке (при наличии программы у вас) и при опенсурсной. а вообще это давно холивар... и победителя лучше не искать.
каждый выбирает то, что ему нужно. я - за опенсурс и открытые спецификации, так как считаю что это позволяет разнообразить ПО и облегчить разработку, начиная ее не с нуля.
Amp
Мне лично все равно какой код у программы - открытый или закрытый. Если она работает так, как мне надо (при общей адекватности разработчиков), это все отходит на второй план. Хорош тот код, который развивается или может развиваться, причем с использованием наименьшего количества костылей. Уберите сейчас у OpenOffice оставшихся разработчиков - проект никто уже думаю поднять не сможет. Он загнется, ладно хоть пока за ним стоит sun и опенофисокапец таким образом откладывается на неопределенный срок.

С другой стороны - интересно наблюдать за развитием opensource-программы, ночами делать какой-нибудь svn update, собирать, смотреть, вертеть, отписываться в багтрэкер проекта. Закрытая модель разработки такого удовольствия не даст smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.