Те, кому довелось читать "Собор и Базар" Эрика Реймонда, конечно, вспомнят приведённую им бессмертную фразу Линуса Торвальдса: "Я просто очень ленивый человек, которому нравится получать пользу от того, что делают другие люди". Фраза эта, использованная Реймондом для логического завершения раздела про неоценимую важность существования пользователей для любого open source-проекта, стала одновременно и характеристикой этому сообществу. Постулат Реймонда "если пользователи станут вашими сотрудниками, то вам обеспечены улучшения кода…" сегодня трактуется многими как основополагающий принцип модели разработки, принятой на вооружение open source-сообществом. Вот только можно ли действительно ставить знак равенства между группой (пусть и очень большой) независимых разработчиков и эффективностью такого тонкого момента в разработке кода, как обнаружение в нём ошибок, способных сказаться на безопасности его работы?
Для того, чтобы не распылять внимание и заметить проблему, давайте возьмём только два продукта: операционные системы Linux и MS Windows. По отзывам многих экспертов (в т.ч. Theo de Raadt, основатель OpenBSD) сложность низкоуровневых процедур, лежащих в основе этих систем, на сегодняшний день примерно одинакова. Однако, в арсенале создателей Microsoft наличествует одна совершенно незаменимая вещь: беспрекословное подчинение работника и начальника. Решившись на реализацию новой стратегии, руководство компании может заставить рядовых разработчиков идти в нужном направлении, уделяя внимание вещам может быть и скучным, но полезным в рамках общего движения к намеченной цели. Вспомните, как это было зимой с инициативой Trustworthy computing - когда вся Microsoft рыла код своих продуктов в поисках дыр и ошибок, засиживалась на - наверняка скучнейших для большинства - семинарах по методам написания безопасного кода. К Linux такой подход неприменим в принципе: само понятие независимого разработчика конфликтует со строгим подчинением. А значит, теоретически есть возможность длительного существования внутри Linux дефектных кусков кода, внимания на которые не обращают.
Впрочем, довольно игры слов: на существование этой проблемы с недавних пор указывают и отдельные личности, и целые организации. В свежем интервью ZDNet Криспин Кован (Crispin Cowan), ведущий специалист WireX Communications, занимающейся Linux-разработками, очертил масштабы происходящего. По словам Кована, 90% кода (!) лежащего в основании Linux, обойдены вниманием и часто детально просматривались только автором. Ковану вторят многочисленные исследователи психологии open source-сообщества, выделяющие в качестве главного фактора мотивации личную заинтересованность участников. Люди пишут код потому что это им интересно - и стоит ли удивляться, что есть и неинтересные большинству участки кода? Лучшее тому подтверждение - последние нашумевшие ошибки в open source-продуктах PHP, zlib и OpenSSH.
Вне зависимости от того, как создан код - он требует тщательного аудита. Вышеупомянутый Криспин Кован предпринял, наверное, одну из самых замечательных попыток в этом направлении, сумев привлечь инвестиции (DARPA) и создав сайт Sardonix Audit Portal. Но тем удивительней результат: записаться в добровольные аудиторы на Sardonix можно, но какие-то попытки мотивировать их работу отсутствуют начисто. Как заинтересовать участников open source-сообщества? Возможно, необходимо оплачивать их труд? Ставить цели и обещать призы? Есть идеи?
Обсудите материал в форуме