Opensource и качество

Материал из YourcmcWiki
Перейти к: навигация, поиск
Автор

Виталий Филиппов
Дополнительный нижний колонтитул

Opensource и качество, или не плодите софт в неволе

Варианты названия:

  • Opensource и качество, или почему проприетарщина уныла
  • Opensource и качество, или «я в неволе не размножаюсь»
  • Opensource и качество, или софт в неволе не плодится!
  • Opensource Свободное ПО и качество, или не плодите софт в неволе.

Содержание

Тезисы

Почему так часто оказывается, что закрытое ПО имеет различные проблемы, и их так сложно, или вовсе невозможно, исправить? Причина кроется в изначальной модели бизнеса и цели разработки, которой является не создание качественного продукта, а продажи и зарабатывание денег на потребителях. Потребителю ни в коем случае не доверяют, исходники закрываются (а то сопрут!!!), не дай бог, навешивается реклама, DRM и руткиты, публичный багтрекер, конечно же, отсутствует, служба техподдержки инструктируется отвечать по шаблону, а в блогах тусуются позитивные заряженные веществами евангелисты, от которых ничего не добьёшься. Результат — ни решить проблемы, ни повлиять на дальнейшую жизнь проекта.

А теперь призыв — посмотрите в сторону OpenSource! Это же бесплатное решение многих проблем с качеством вашего продукта, а заодно, например, и многих ваших же проблем с качеством инструментов! Конечно, OpenSource тоже не должен пониматься как в карго-культе — «открыли исходники и качество резко возросло» — открытость должна быть в головах, а не на бумаге.

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

Информация о докладчике

Виталий Филиппов, ведущий веб-разработчик в компании CUSTIS. Также выступал на конференциях Highload-2009 (блиц-доклад), SECR-2009, РИТ-2010 (два блица: раз, два), ADD-2010, ADD-2011, DevConf-2011, WhaleRider-2011.

OpenSource
и качество, или не плодите софт в неволе %% ⌘⌘

Виталий Филиппов, CUSTIS

ПО? Качество? О чём это мы? ⌘⌘

  • О ПО, какое оно? Особенности, закрытое, открытое.
  • Типичное представление об OpenSource СПО.
  • Зоопарк свободных лицензий Elephant-red.svg
  • Свободное ПО и бизнес. Handshake icon.svg
  • Проблемы закрытого ПО
  • Свободное ПО и качество ↑↑↑

ПО — продукт особенный ⌘⌘

  • Бинарники и исходники
  • Постоянная работа с личными данными
  • Сильная завязка на платформы, форматы, протоколы
McSource.png Binaries.jpg

А также… ⌘⌘

Bug-feature.jpg
  • Часто — является уникальным IDA Logo.jpg
  • Сложность продукта ⇒ обязательное наличие БАГОВ!
  • Умирание без поддержки
  • Но в то же время простота сборки
  • …и нулевая стоимость копирования.

Программы окружили нас! ⌘⌘

AEM ECU.jpg

Даже если вы не работаете за компьютером, вы окружены :-)

  • Мобильные устройства
  • Вся бытовая техника
  • Самолёты, поезда
  • Автомобили (ECU, сигналки)
  • Продолжите список сами :)

Типичное представление об СПО %% ⌘⌘

Halyava2.jpg

Обычно думают так… ++ ⌘⌘

  • Linux, Android
  • «Не для простых смертных»
  • Исходники, копилефт
  • RMS, FSF, вирус — не вирус

Часто забывают о… ⌘⌘

Richard stallman laptop 3.jpg
  • OpenSource Свободное ПО
  • Свободное Некоммерческое
  • Как появилось свободное ПО?
  • Зоопарк свободных лицензий
  • Связь открытости и качества (???)
  • Linux GNU/Linux

Малоизвестные факты

Richard stallman laptop 3.jpg

Термин «OpenSource» не зря зачёркнут на титульном слайде. Термин «OpenSource ПО» часто путают с термином «Свободное ПО». Открытые исходники ещё не означают свободу — в конце концов, их можно приоткрыть, как это делает МелкоСофт — на «посмотреть», и то только при выполнении различных ограничений.

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

Многие не помнят, как появилось свободное ПО. Вернее, не помнят, что под минималистичными лицензиями оно существовало всегда в рамках университетских научных и академических разработок, а распространилось благодаря усилиям Ричарда Столлмана, созданию Фонда Свободного ПО, проекта GNU и Copyleft-лицензии GPL.

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

Наконец, часто свободу ПО рассматривают просто как философию, систему убеждений и идеалов, но при этом забывают о том, что она обычно способствует улучшению качества продукта, и не думают, почему так происходит.

А ещё, кстати, как говорит Столлман, многие неправильно произносят слово «GNU», и звучит оно в их устах, как «Linux». Дистрибутивы — не Linux, а GNU/Linux, ибо Linux — только ядро, а GNU — набор базовых системных программ. У GNU есть и своё ядро (кстати, микроядро!) GNU Hurd, но его никак не допилят :-)

Закрытое ПО ⌘⌘

  • Модель «производитель-потребитель»
  • «Лицензирование», закрытые лицензии: Вам Запрещено Всё
  • Недоверие к пользователю, как начало порчи отношений
  • Изощрённые способы защиты и монетизации
  • Частая монополия и бесплатная «первая доза»
  • СЕРВИСЫ: худший (но честный) вид закрытого ПО

Закрытое ПО — разъяснения

Закрытое (собственническое, proprietary) ПО — прямой перенос стандартной, капиталистической, собственнической модели ведения бизнеса — «производитель-потребитель» на программное обеспечение. Достаточно неприятно то, что многие воспринимают это как норму, а многие не знают, что бывает иначе.

Так как каждому пользователю отдаётся по копии, а копии эквивалентны оригиналу, получается, что при продаже копии производитель не передаёт права владения копией. Этот парадокс был замечен и разрешён сразу же — решили, что производитель «лицензирует» своё ПО — то есть, заключает договор, по которому пользователю передаются какие-то права, не включающие в себя владение самим ПО.

Отсюда — закрытые лицензии. Ограниченные до безумия, обычно они накладывают ограничения только на пользователя, а производитель не имеет никаких обязательств, либо имеет, но очень ограниченные. Может быть и хуже — могут быть явно прописаны пункты, разрешающие сбор данных о пользователе. Лицензия длинная, её никто не читает. Такой тип софта называется Spyware.

Ближайшая аналогия — гарантийные обязательства. В гарантийке обязательно окажется какой-нибудь хитрый пункт и продукт у вас не примут :-) если не окажется сразу, продукт сначала отправится на экспертизу, которая будет длится ровно максимальный срок, установленный законами; если не окажется и после этого, продукт, наверное, всё-таки примут, но будут ремонтировать несколько месяцев (а в случае с устройством вы ещё и потеряете все данные, которые на нём были). Это к тому, что на свои обязательства очень легко «кладут» не только производители ПО.

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

Пока что, к счастью, всё развивается по первому сценарию — все защиты от копирования успешно взламываются. Отсюда и нехороший термин «пиратство». Пиратство подразумевает корабль, абордажные крючья, и, конечно же, море-окиян. Нелицензионное распространение софта столь же обоснованно можно назвать изнасилованием (ц) кто-то.

Отсюда и недоверие к потребителю. Мало того, что он «пиратит», так он ещё и создаёт проблемы своего тупостью — звонит в поддержку, задаёт идиотские вопросы, ничего не понимает… А то, что вы сами делаете его таким — это ничего? Ведь в нашем общества мечта продажника — человек, который зашёл, увидел и купил что-то, не думая. Это недоверие — лишний стимул «избушке» повернуться к пользователю сами знаете каким местом.

Одним из последних трендов, кроме того, является SaaS — Software as a Service. Любопытно, но если рассматривать это именно как ПО — это худший вид закрытого ПО, когда вы не контролируете вообще ничего — ПО вам никто даже не даёт потрогать. Вы только отправляете входные данные и получаете результат. Все данные попадают в руки другой компании; а например, если она американская, она их может выдать ФБР даже без судебного постановления.

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

И ещё немного про DRM

Вот за что «пиратам» точно нельзя сказать спасибо — так за то, что они популяризовали Шиндовш в Этой Стране (c). Это не единственный пример «бесплатной первой дозы», официальный вариант — это бесплатные копии для школ и университетов. Если человек вырастет и ничего не увидит, кроме несчастной винды, он на ней так и останется.

Попытки выдумать новые варианты защиты (DRM — Digital Rights Management) не прекращаются, но всё больше становится понятно, что защита эффективна, только если компьютер властвует над пользователем, а не наоборот. Например, из последнего — новое творение мелкомягких включает программу наклейки «Шиндовш 8 компатибле», в которую почему-то, во-первых, попал стандарт UEFI (идиотская мини-операционка вместо BIOS’а), а во-вторых, попало требование возможности UEFI Secure Boot без дополнительных разъяснений о возможности его отключения или замены ключей загрузки. Ну вы уже поняли, Secure Boot — это та же тивоизация, только перенесённая на компьютер :-) попытка превратить твой, анонимус, компьютер в быдло-игровую-консоль.

Все эти разработки подкрепляются попытками подмены морали, в которые могут поверить непосвещённые. Пользователю говорят:

  • «Вы стали жертвой нелицензионного программного обеспечения». Три ха-ха. Не мы стали, а вы :)
  • «Это для вашей защиты». В такой реализации защищённости пользователю это не прибавит, так как он не решает, что запускать, а что не запускать — за него решает Большой Брат. Зато, например, прибавится защита от тех, кто не поделился с M$ баблом на сертификат для драйвера (500$ в год).

НЕсвободные лицензии ⌘⌘

«Эта змея была выращена в неволе»

BredInCaptivity.jpg

НЕсвободные лицензии ⌘⌘

Shared Source
Приоткрыто «на посмотреть»
Freeware
«Free as beer». Можно распространять свободно, но вирус :)
Shareware
Можно распространять, но нельзя свободно использовать.
Proprietary
«Bred in captivity»

Что такое свобода? ⌘⌘

4 свободы:

  1. Использовать
  2. Изучать и модифицировать (требует исходники)
  3. Распространять
  4. Распространять модифицированное

Свободные лицензии ++ ⌘⌘

  • Гарантируют пользователю 4 свободы.
  • Public Domain: отказ от прав ** — CC0, Unlicense
  • Permissive: без доп. ограничений — MIT/Apache/BSD и т. п.
  • Weak Copyleft: запрет смены лицензии, кроме компоновки — LGPL, CeCILL-C
  • Strong Copyleft: запрет смены лицензии — GPL, CeCILL
  • Есть ещё сильнее — Affero GPL

Вирус — не вирус %% ⌘⌘

Частое заблуждение:

BadVirusGPL.jpg WhiteFluffyBSD.jpg

…И я уж молчу о том, как боятся AGPL.

Все забыли о появлении FSF (1985) и GPL? ⌘⌘

Burgui.png
СПО было всегда (MIT, PDP-10, 1970—1980)

Потом Буржуи :-) закрыли Lisp-машины

Если GPL-вирус, то закрытые исходники вообще не размножаются (ц)

Семейство Creative Commons ⌘⌘

CC-BY permissive
CC-BY-NC некоммерческая ⇒ несвободная
CC-BY-ND без производных ⇒ несвободная
CC-BY-NC-ND   NC+ND
CC-BY-SA хороший copyleft не для софта
CC-0 хороший Public Domain

И всё бы хорошо… %% ⌘⌘

…Но людская подлость нашла баги в этих свободах!

Баги в свободах ⌘⌘

  • TiVo
    • Коллеги, не покупайте Motorola и Sony Ericsson!
  • Патенты
    • ТРОЛОЛО
    • К счастью, у нас их нет...
  • Законы, запрещающие некоторое ПО

Багфикс: GPLv3.

Патенты %% ⌘⌘

И патентные тролли.

TrollFace.svg

M$ -> Barnes&Noble ⌘⌘

  • 6,339,780 расположение иконки статуса загрузки в зоне браузера, отображающей контент
  • 5,579,517 и 5,758,352 совместимость имён файлов, используемых текущей операционной системой и её устаревшими версиями
  • 5,652,913 хранение факторов доступа ввода/вывода в структуре данных общего пользования
  • 6,791,536 и 6,897,853 симуляция ввода от манипулятора «мышь»
  • 5,778,372 постепенная загрузка браузером изображений, включённых в электронный документ
  • 5,889,522 класс для создания виджетов со вкладками (средствами операционной системы)
  • 6,891,551 использование указателей для изменения размеров области выделения при выделении текста
  • 6,957,233 добавление заметок к нередактируемым документам

TiVo

Фирма TiVo «попала» и теперь чётко ассоциируется не с какими-то непонятными ТВ-приставками, а с несвободой программной обеспечения — блокированием загрузчиков. И хотя на самом деле блокирование придумали не они, применили к Linux’у его они одними из первых. Смысл в том, что исходники свободно распространяются, их разрешено модифицировать и собирать… Но толку от этого никакого нет, потому что в само устройство прошит ключик, которым если не подписать свою сборку, девайс откажется её запускать.

Загрузчики же любили блокировать производители мобильных телефонов и процессоров для мобильных телефонов. У кого был Siemens? Там были процы Qualcomm без аппаратной защиты памяти, и некий ключ, требуемый для разблокировки загрузчика — «S-KEY», который получался через лазанье по флешу (аппаратной защиты памяти-то нет). Также разблокировать можно было через использование Test Point — точки на системной плате телефона, подключённой к ноге конфигурации загрузки процессора. При замыкании её на массу процессор позволял загружаться не с внутренней памяти, а с помощью загрузчика, загружаемого по последовательному интерфейсу. Народные умельцы делали и то, и другое — до сих пор живы Сименс Клуб и база патчей и ELF-приложений http://patches.kibab.com/.

Телефоны Siemens — это вообще отличный пример того, сколько хорошего можно сделать с программным обеспечением даже без свободной лицензии и доступа к исходникам. А что бы было, если бы доступ был? Может быть, производитель столь удобных и популярных в своё время телефонов до сих пор бы не умер?..

Для тех, кто не знает — сообщество пользователей телефонов Siemens расковыряло прошивку настолько, что была создана не только уйма полезных патчей (изменений в ПО телефона), но даже способ загрузки приложений в родном для процессора коде! («эльфов», от ELF) Что, по сути, превращало обычный телефон в отличный и удобный смартфон. Народ, кстати, сделал и поддержку MP3 на x65, отсутствие которой в своё время больно ударило по репутации фирмы. А реальные смартфоны в то время были либо на убогом Symbian, либо на ещё более убогом Windows Mobile (Symbian хотя бы мог жить без вечных хард-ресетов, а винда — нет). Например, на S75v52 доступно 386 патчей и 111 эльфов. А сколько бы было доработок, если бы руководство компании смогло поменять свои устаревшие взгляды и платформа была открыта?..

Блокирование загрузчиков же продолжается и по сей день, хотя разные компании делают его в разной степени. У большинства даже заблокированные загрузчики всё равно разблокируются программно. Но есть и устройства, защита которых так и не взломана — среди них телефоны Motorola и некоторые Sony Ericsson. Хотя, может быть, моторола, будучи купленной гуглом, изменится к лучшему?

Note.svg Лично я призываю всех бойкотировать телефоны и планшеты Motorola и Sony Ericsson! Учитывая, что они и по характеристикам далеко не лучшие, это не будет большой жертвой :)

HTC, например, наконец-то вообще объявила, что больше не будет блокировать загрузчики на Android-устройствах.

Проблемы свободы ПО ⌘⌘

  • SaaS. Фикс: AGPLv3.
  • JavaScript. Фикс: распространять свободно.
  • Скрипты в целом. Фикс: LGPLv3.

Баги в лицензиях ⌘⌘

  • Связанные с конкретным законодательством.
    • Пример — хотя бы мы, Россия :) но и Европа тоже.
    • CeCILL: GPLv2, адаптированный к Европе и Франции.
  • Рекламные баги: BSD, PHP. Fix: FreeBSD, X11, Apache
  • «GPL + разрешение компоновки»
  • MPL, CDDL: «хитрые ограничения»
  • Clear BSD: явно не дают прав на патенты
  • Старые APSL (вообще несвободные)

Баги в лицензиях — разъяснение

  • Рекламные баги: BSD (Berkeley Inc) — в NetBSD 1997 было 75 штук, PHP («php» во всех названиях). Фиксы: FreeBSD, X11, Apache.
  • CeCILL: GPLv2, переписанная французскими юристами и адаптированная к французскому и европейскому вообще праву. Конкретика здесь — в области гарантий, области действия, и неупоминания «соответствующих законов». Есть небольшое подозрение, что и к нашим законам лицензия могла бы быть более применима, но вот незадача, для использования в русских судах лицензию нужно писать на русском :)
  • Есть лицензии «GPL + разрешили линковаться с проприетарщиной» — люди не вкурили LGPL.
  • MPL, CDDL: «хитрые ограничения», из-за которых та же фаерфоксина выпускает под MPL+GPL+LGPL. А именно, если вы поправите, то они могут использовать это в своих проприетарных «Larger Works» (ну нетскейп же); + разрешает перелицензировать бинари.
  • Clear BSD: явно прописано, что не дают прав на патенты.
  • Старые APSL: вообще несвободные. Центральный контроль, возможность отзыва, запрет личного пользования.

«Хорошие» лицензии ⌘⌘

  • ПО: AGPLv3, GPLv3, LGPLv3, Apache v2.
  • Public Domain: CC0.
  • Медиа: CC-BY-SA.
  • Лицензии для мнений/решений/лицензий (for works of opinion and judgment): CC-BY-ND.

Свободное ПО и бизнес %% ⌘⌘

Ошибочно мыслятся врагами! ⌘⌘

А это не так!

  1. СПО выгодно компаниям!
  2. 75 % кода ядра Linux пишется компаниями.
    Red Hat, IBM, Novell, Intel…
  3. Да и считать пользователей врагами — ошибка!

Выгода от СПО ⌘⌘

  • Кроме монополистов с закрытым продуктом ☠☠☠
  • Велосипеды ↓↓ Крутые вещи ↑↑
  • Пользователь — ваш друг!
  • Защита от монополистов и прочих пи…
  • Стоимость используемого ПО
  • Качество инструментов разработки ↑↑↑

Разъяснение

Свободное ПО и бизнес зачастую кажутся людям врагами. Мол, цель СПО — полная бесплатность, а что же тогда кушать программистам? Так вот: это Совершенно Ошибочное Мнение, и вызывается оно бесплатностью копий.

Note.svg СПО действительно чуть-чуть соперничает разве что с «капиталистическими принципами», создание общественного достояния считается «лучше», чем некоторые способы зарабатывание денег. Это что-то из области коммунизма-социализма :)

СПО выгодно компаниям. Конечно, кроме тех, которые со своим закрытым продуктом владеют монополией на заданном сегменте рынка. Плюсов от использования СПО много, но в первую очередь оно позволяет гораздо быстрее и с меньшими затратами создавать крутые вещи из кучи готового и небольшого собственного вклада. Тот же Android использует очень много свободных сторонних библиотек и инструментов и, вероятно, не был бы возможен без их существования — затраты на реализацию всего того же с нуля или лицензирования у множества компаний, вероятно, были бы огромны, и на рынке смартфонов были бы монополисты. Да и iPhone и другие продукты Apple, в общем-то, тоже использует свободное ПО, и тоже вносят в него существенный вклад. Пример — свободный (под permissive лицензией) компилятор LLVM, который сейчас активно разрабатывается.

И это ещё не всё. Важнейшим свойством СПО является то, что оно позволяет компаниям считать пользователей своими друзьями, а не просто потребителями или врагами, как это часто происходит сейчас, повернуться к ним лицом (а не …), получать обратную связь и вклад в работу. СПО — это как раз то, что невозможно «украсть». Вот хочешь, хочешь — а не сопрёшь! Считать обычных людей своими врагами — это ошибка, потому что «их» несоизмеримо больше, чем «вас». А в мире СПО пользователи и разработчики зачастую совпадают. И даже если они разрабатывают свободный софт, конкурирующим с вашим, всё равно — считать их своими врагами значит настраивать мир против себя.

Производство, использование и работа со свободным ПО может являться и хорошей защитой от «акул капитализма» с их имперскими замашками и нехорошими методами конкуренции. К сожалению, ничто пока что не способно защитить от патентных троллей в тех странах, где они есть. Но обезопасить себя от мучительной смерти в случае, если Большой Вендор сделает свой закрытый аналог вашего продукта, вы частично можете, потому что у вас есть конкурентное преимущество — ваш продукт свободный, а их нет. Ваш продукт получит широкую базу пользователей, а им придётся загонять людей насильно. Причём вы заблуждаетесь, если думаете, что тот же Мелкософт — ваш союзник. Он ваш союзник, только если вы сами — Мелкософт. Простой пример этому — Borland со своими визуальными средами разработки, успешно убитый C#-ом и Windows Forms. Создавать средства разработки под закрытую платформу — занятие неблагодарное, потому что владелец этой платформы может легко вытеснить вас с этого рынка, и вы никак этому не сможете помешать…

И это я до сих пор не упомянул о прямой стоимости использования закрытого ПО — например, компания-разработчик нуждается как минимум в: операционной системе, среде разработки, баг-трекере, системе контроля версий, офисной коммуникационной среде, почтовом сервере, офисных приложениях. Всё это можно купить, но, во-первых, зачем? Может быть, лучше отдать эти деньги более талантливым разработчикам и не зависеть от вендора? А во-вторых, и это даже более важно — свободные инструменты разработки могут быть гораздо более удобны, качественны и безопасны, чем закрытые. Почему? Очень просто: они пишутся программистами для программистов. А уж как писать что-то для себя, программисты знают лучше всех.

Короче говоря, у компаний есть инициатива, а у сообщества есть ресурсы. Сочетание может получиться весьма термоядерное, что нам сейчас демонстрирует Google.

Большой пример вклада компаний в свободный продукт — это ядро Linux, примерно 75 % вклада в которое сейчас делают разработчики из различных компаний, и делают не «по приколу», а потому, что Linux выгоден для бизнеса. TOP-10 компаний, осуществивших вклад в ядро Linux в районе середины 2.6-ых ядер:

  • Red Hat: 12,3 %
  • IBM: 7,6 %
  • Novell: 7,6 %
  • Intel: 5,3 %
  • Independent consultant: 2,5 %
  • Oracle: 2,4 %
  • Linux Foundation: 1,6 %
  • SGI: 1,6 %
  • Parallels: 1,3 %
  • Renesas Technology: 1,3 %

Модели бизнеса %% ⌘⌘

Заказная ⌘⌘

Каждый проект создаётся на заказ.

  • 50 % экспорта софта из России

Сервисная ⌘⌘

Продаются дополнительные услуги — обучение, поддержка…

  • Red Hat, Novell, Canonical, MySQL
  • Firefox & Google

Гибридная ⌘⌘

Free + Non-Free

Parallels Virtuozzo, RHEL, VirtualBox, MySQL, OpenDarwin/Mac OS X, Zend Server…

Облачная ⌘⌘

Продаём работу ПО в своём облаке серверов.

Citrix, SugarCRM, Amazon EC2.

Продажа устройств ⌘⌘

ПО свободно. Продаются устройства.

GalaxyNexus.png Sparkfun.gif

Фонды и пожертвования ⌘⌘

Фонд спонсирует разработку. Кто-то спонсирует фонд.

FSF-Logo.svg Apache Software Foundation Logo.svg Wikimedia-logo.png Wikimedia

Ещё? %% ⌘⌘

Придумайте свою! :-)

Подробно о моделях бизнеса

Сначала по поводу обычного, закрытого, бизнеса. У них одна бизнес-модель:

«Гони бабло и вали отсюда. Не работает? Вали отсюда. Хочешь деньги назад? Читай лицензию и вали отсюда. Хочешь посмотреть что оно делает? Вали отсюда».

В противовес этому, в мире свободного ПО моделей ведения бизнеса много :-)

Заказная модель бизнеса

Каждый проект является специфическим и создаётся под конкретного клиента.

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

Заказная разработка — это ни в коем случае не искусственная мера, а жизненная необходимость — крупные компании всегда имеют обширный набор сформировавшихся процессов, плохо ложащихся на универсальный софт. По статистике, 50 % ПО, продаваемого за рубеж даже из России, разрабатывается на заказ. Из Индии и т. п., я думаю, больше :-)

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

Достаточно почитать про SAP на Lurkmore и посмотреть демотиваторы :-)

Алгоритм внедрения SAP:

  1. Запросите у совета директоров произвольную, но большую сумму денег. (Вариант: $300 миллионов.)
  2. Отдайте половину денег консультантам и попросите их подобрать подходящий для вашей компании пакет ERP. Консультанты проведут шестимесячное обследование вашего бизнеса и в итоге рекомендуют SAP, партнером которого по случайному совпадению они являются.
  3. Сформируйте команду из представителей всех управленческих служб и непрерывно проводите с ними совещания.
  4. Перестройте все бизнес-процессы так, чтобы они соответствовали заложенной в программу модели.
  5. Отдайте консультантам вторую половину денег.
  6. Проинсталлируйте программу.
  7. Непрерывно обучайте пользователей.
  8. Три раза плюньте через левое плечо.
  9. Запустите программу.
  10. Если предприятие все еще держится на плаву, немедленно переходите к шагу 1, потому что вам пора делать апгрейд.
  11.  ????? (сноска: вы никогда не доберетесь до этого пункта!)
  12. PROFIT!!!

Сервисная модель бизнеса

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

То есть, продаётся не «воздух» (не копии ПО), а работа сотрудников.

Примеры:

  • Red Hat, Novell, Canonical — корпоративная поддержка дистрибутивов GNU/Linux. На Novellе, между прочим, сейчас работает Лондонская биржа.
  • MySQL AB, а теперь Oracle, также предлагает поддержку.
  • Поддержка предлагается и к СУБД Ingres.
  • Что Mozilla Foundation, что Opera Software ASA, берут деньги с гугла за поисковые запросы, от них пришедшие. Opera, правда, не свободная, и даже не открытая.

Гибридная модель бизнеса

Под гибридной моделью понимается то, что компания предлагает два продукта или две версии продукта — свободную и проприетарную. Первая используется в целях симбиоза с сообществом, вторая для получения прибыли. Доработки из проприетарная части могут время от времени выпускаться обратно в свободный продукт.

Что характерно, есть и закрытый софт, имеющие бесплатную версию — например, интерактивный дизассемблер IDA. Версия с номером на 0.5 меньшим последней у них бесплатна. Поверьте мне, её функций вам хватит точно так же, ибо их там просто безумное множество :-)

Примеры:

  • Компания Parallels разрабатывает свободный проект OpenVZ, но продаёт Virtuozzo и другие системы управления хостингом. Virtuozzo используется почти на всех хостингах, предлагающих услугу VDS (виртуальный выделенный сервер).
  • VirtualBox свободен, но пакет расширений бесплатен только для домашнего использования.
  • MySQL свободен, но есть платная Enterprise-версия, имеющая из коробки соответствующие полезные функции.
  • У Apple есть проект OpenDarwin, в то время как Mac OS X продаётся.
  • Red Hat также имеет платную корпоративную версию — RHEL (Red Hat Enterprise Linux), и несколько других платных продуктов, работающих под Linux.
  • Zend предлагает как открытые, так и закрытые версии Zend Server’а.

Облачная модель

ПО, как правило, сложное, устанавливается в «облаке» серверов, за пользование ими взимается плата.

Учитывая то, что «в облако» обычно ставится именно технически сложное ПО, его тоже можно смело открывать — чтобы кто-то что-то мог «спереть», ему нужно воссоздать всю инфраструктуру, а она далеко не простая. В то же время сообщество поможет добавить нужные фичи и будет лучше к вам относиться, что позволит даже конкурировать с продуктами другой, более крупной, компании… Которая сделает аналогичное облако, но с закрытым ПО :-)

Примеры — Citrix, SugarCRM, Amazon EC2.

Продажа устройств

Само ПО открыто. Продаются устройства, работающие на нём.

Здесь за примерами ходить не надо не то что далеко, а вообще никуда — Android-смартфона сейчас нет только у собаки, а Android — свободное ПО, распространяется под лицензией Apache.

Правда, Android частично можно отнести и к гибридной модели, и к сервисной. К гибридной — потому что кроме самой системы есть набор несвободных Google’овских приложений (Android Market, Gmail и т. п.), стоящих денег; за их использование производители отчисляют Google лицензионную плату с каждого устройства. К сервисной — потому что немаловажная фича Android-смартфонов — тесная интеграция с гугловскими сервисами.

Ну, есть и ещё одно небольшое замечание — исходники 3-ей версии Андроида так и не были открыты — лицензия Apache не запрещает закрытое производное ПО. Но, к счастью, Гугл снова «торт» и открыл Android 4.0.

Если хотите увидеть примеры помельче, тоже пожалуйста: Sparkfun. Компания разрабатывает мелкую любительскую электронику, и в общем-то всё ПО, которое они к ней пишут, вполне свободно.

Фонды и пожертвования

Создаётся некоммерческая организация — Фонд. Она спонсирует разработку различных свободных проектов. Те, кому это выгодно, спонсируют сам Фонд.

Примеры:

  • Free Software Foundation (привееет, Столлман!)
  • Apache Software Foundation. То, что веб-сервер Apache установлен на подавляющем большинстве веб-сайтов, думаю, знают все.
  • Wikimedia Foundation. Википедию тоже, не поверите, знают все. А я, кстати, занимаюсь доработкой MediaWiki для CUSTIS, и отправляю доработки обратно авторам из викимедии.
  • Python Software Foundation

И опять — хотите помельче? Ну, во-первых, множество свободных программ принимает пожертвования (и принимает их успешно), а во-вторых, есть такая вещь, как Kickstarter, который от обычных пожертвований отличается тем, что собирает их ради конкретной цели разработки.

Свободное ПО и качество

Свободное ПО и качество ↑↑ ⌘⌘

  • Цель закрытого ПО — срубить денег.
  • Цель свободного ПО — создать полезный продукт.

Раз мы хотим качество, значит, есть проблемы?

Срубить денег vs создать полезное

Не надо думать, что единственной целью создания закрытого ПО всегда является исключительно получение прибыли на продаже лицензий. Многие закрытые программы точно так же изначально создаются любителями своего дела и тоже с целью создания полезного продукта, на котором кроме того ещё и МОЖНО заработать. Проблема в том, что успешные компании, производящие ПО, с ростом всё более и более бюрократизируются, а неуспешные — просто умирают или продаются и забирают с собой в могилу продукт. (Примеры!! Oracle/Sun, Google/толпа проектов.) А бюрократизация приводит к усложнению огранизации, процессов и обратной связи, росту количества менеджеров и росту издержек, уходу создателей от разработки или вообще из компании, потере интереса разработчиков до среднестатистического, за который платят, а следовательно — падению их производительности, иссяканию новых идей, подмене изначальной цели (создать нечто полезное, на чём можно и заработать) только желанием заработать и постепенному скатыванию в говно. Кстати, всякие Agile-методологии, по сути, частично призваны именно бороться с бюрократизацией.

Нет, всё это, опять-таки не значит, что любая закрытая программа обязательно скатится в говно. Это значит, что удержаться от скатывания в говно закрытому софту труднее, чем свободному. Говно — это «асимптотически равновесное состояние» закрытого софта :)

Отличие от других сфер: сесть и начать творить можно в любой момент. Кон Коливас.

Это всё не значит, что если ПО свободное, оно сразу лучшего качества, чем несвободное. Но по крайней мере, если вы вдруг обнаружите недостатки качества свободного ПО, вы хотя бы можете их исправить. А в случае закрытого — у вас даже нет шанса. «Система, которая не может сломаться, плоха тем, что её невозможно починить, если она всё-таки сломается». :)

Отношения с пользователями: закрытое ⌘⌘

  • Тупые юзеры!!! Пусть техподдержка шлёт их в...
  • Пиратят софт!!! А мы навесим DRM и обфускаций!
  • Отдельные ещё и хотят на что-то повлиять!

Отношения с пользователями: СПО ⌘⌘

  • Открытость нужна в головах, а не на бумаге!
  • Пользователь — ваш друг.
  • Тупые юзеры исчезают.
  • Публичный багтрекер, вики, мэйллист — лёгкость Feedback’а.
  • Симбиоз с сообществом.

Репутация ⌘⌘

  • «Мы делаем людям полезное»
  • В вашем продукте нет ваших закладок
  • Количество и качество пользовательской базы
  • СПО — именно о качестве, а не о том, чтобы что-то быстро разработать и продать
  • Открытые инструменты разработки

Бесплатные ресурсы ⌘⌘

  • Бесплатные тестеры
    • Закон Линуса
    • Самое лучшее тестирование — тестирование для себя
  • Бесплатные патчеры (даже если патч ещё не принят)
  • Бесплатные программисты ...???
  • Обучение своих, и выбор технологий
  • Защита от «умирания»

Security Via Obscurity ⌘⌘

А также Adware, Spyware и прочие закладки и контроль.

  • Реклама (которую, видимо, уже не осуждают?)
  • Шпионские модули
  • Отрубание совместимости
  • Stuxnet & Иранские Ядерные Центрифуги

Почему в закрытом ПО есть эти проблемы? ⌘⌘

Ответ простой: Монополия. До отдельных пользователей никому нет дела.

Меня это не касается! %% ⌘⌘

У вас есть машина?

CodeGrabbers.jpg

С сигналками всё плачевно ⌘⌘

Вы думаете, там есть криптография? Заблуждаетесь :)

  • У большинства — статический диалог O_o
  • 2-й уровень — Common PRNG
  • Если и не, то есть «Service Mode»
  • «А у меня Black Bug» (?)

Сигналки — разъяснение

Закрытая разработка программного обеспечения поощряет принцип «Security Through Obscrurity», который известен уже очень давно, но почему-то продолжает создавать всем проблемы. По-русски принцип называется «безопасность через сокрытие» и смысл его состоит в том, что если никто не знает, как оно работает, то никто, вероятно, не сможет это взломать. Короче говоря, «ключ под ковриком» — безопасно, потому что никто не знает, где он лежит. Но при этом достаточно один раз подсмотреть, как вы достаёте ключ, чтобы скомпрометировать безопасность всей двери, не говоря уже о том, что взломщик в первую очередь посмотрит именно под коврик :)

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

На картинке выше изображены примеры устройства под названием «кодграббер» — «мануфактурный алгоритмический кодграббер». Это устройство в корпусе обычного брелка сигнализации может практически мгновенно взламывать большую часть распространённых сигнализаций, продаётся в интернете и стоит от 80 до 150 тысяч рублей. Мануфактурный значит, что для взлома частично используются коды, полученные в результате утечек с завода-изготовителя. Но что там утечки — у большинства сигнализаций статический диалог — перехватил, повторил и дело в шляпе.

Что-что? «А у меня Black Bug»? Да, он относительно продвинутый, с меткой, беспроводными сложнообнаруживаемыми реле «hook-up», «wait-up» и динамическим диалогом («система посылает случайное число, которое метка должна преобразовать в соответствии с определенным нелинейным алгоритмом и отправить обратно»). Но, во-первых, у старых релюх тот же статический диалог, во-вторых, неизвестно, насколько криптостоек динамический…

А в-третьих, тупостью реализации, какой-нибудь маленькой уязвимостью, которую случайно не заметит кто-нибудь из разработчиков или тестировщиков в силу того, что они не Папа Карло (ограниченности своего рабочего времени), очень легко запороть любую безопасность.

Пример способа взлома Black Bug — прочитано на просторах интернета.

Отходим от машины, метка выходит из зоны приёма, ББ смотрит, что все дверки закрыты и ставит машину в охрану.

Автовладелец идёт спать, снимает пиджак с меткой, вешает его в шкаф….

Угонщиков двое. Один около двери квартиры, второй около машины. У обоих в руках чемоданы (из комплекса 608 и 702 грабберов). Чемоданы включаются. Чемодан угонщика у квартиры начинает принимать посылки присутствия метки и транслировать их на расстояние до 4-х км на второй чемодан (если радиус действия ключа НЕ исчисляется сантиметрами. Так что если хотите прочитать его код, сначала дерните ключ у владельца). Чемодан угонщика у машины воспринимает сигнал и воспроизводит его в эфир на частоте работы брелок-Black Bug (433,92 Мг). Black Bug видит, что метка в эфире и снимает машину с охраны.

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

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

Далее в прикуриватель втыкается генератор шума. Генерация, соответственно, производится в штатную проводку. Ретрансляторы выключаются, машина уезжает.

После открытия двери, и нажатии на педаль тормоза карточка опрашивается снова. Не увидев метку, Black Bug посылает код на блокировку в штатную проводку. Hook-Up реле его не поймет из-за шума генератора.

И знаете в чём главная беда? В том, что у вас вообще нет шанса проверить безопасность такой системы. Потому что кто ж вам расскажет, как она сделана? Секрет ведь. Но те, кому надо, всё равно его узнают, а надо в первую очередь злоумышленникам. А тем, кто мог бы оказать помощь в исправлении системы, наоборот никто ничего не говорит. Так-то.

Пыщь, пыщь, трололо? %% ⌘⌘

TrollFace.svg

Виталий Филиппов, CUSTIS
Mymailru.gif
http://wiki.4intra.net/
http://yourcmc.ru/wiki/Opensource_и_качество