Очень часто мы видим холивар о том, что безопаснее – свободное или проприетарное ПО. (Как вариант – что безопаснее, linux или windows.) Обычно, в таких спорах приводятся примеры крупных “заражений”, частота обнаружения ошибок, сроки выхода патчей и прочая статистическая лабуда. Но, скажем прямо, все эти цифры можно повернуть в нужную сторону (как и любую статистику). Так как же объективно оценить защищено СПО или нет?
Естественно, что глупо полностью игнорировать исследования, однако, нужно “включать голову”, читая любые материалы. Например, несколько дней назад, компания Coverity, развивающая инструментарий для автоматического анализа кода на предмет наличия проблем безопасности и ошибок, представила отчет об анализе 936 млн строк кода на C/C++, охватывающих 740 наиболее активно разрабатываемых открытых проектов (252 млн строк кода) и 493 проприетарных продуктов (684 млн строк кода). Судя по этому отчету, в СПО фиксируется 0,59 ошибок на тысячу строк кода, а в проприетарных продуктах — 0,72. Т.е. качество кода СПО выше, чем у проприетарных продуктов, но это “средняя температура по больнице” – она мало говорит о качестве того или иного проекта.
Равномерность “распределения ошибок” в СПО, вызывает большие сомнения. Для ключевых СПО-проектов, таких как базовые библиотеки и сетевое/серверное ПО необходим более тщательный, комплексный подход к разработке и проверке кода. Когда ПО создаются не разрозненными компаниями и разработчиками, а полноценными командами, координирующими свои действия. И такой механизм давно уже есть, это так называемые “Foundation” – OpenStack Foundation, The Apache Software Foundation, Eclipse Foundation и множество других.
Однако, все эти организации занимаются разработкой ПО, которое работает над базовыми компонентами системы. Фактически, из низкоуровневых системных компонентов, только код ядра linux (“под крылом” Linux Foundation) проходил тщательную всестороннюю проверку, а другие библиотеки и подсистемы разрабатывались внутри компаний или отдельными энтузиастами. Таким образом, качество кода, приходившего в апстрим очень различалось в зависимости от того, как к процессу написания кода относились в соответствующей компании.
И вот теперь Linux Foundation вышла с новой инициативой. Организация готова взять на себя координацию усилий по разработке не только ядра, но и других важных компонент Linux-систием. Эта инициатива получила название “Core Infrastructure Initiative” и её уже поддержали множество компаний, включая Google, Amazon, Microsoft, Intel, IBM, Cisco, Dell, Facebook, Fujitsu, NetApp, Rackspace и VMware. Каждая из них пообещала выделить не менее 100 тысяч долларов на поддержку открытых проектов, задействованных в ключевых областях компьютерной индустрии, а общая сумма в ближайшие три года должна составить 3.9 млн долларов. Нужно подчеркнуть, что необходимость финансовой поддержке не связана с низким качеством СПО-кода, а наоборот – это некая попытка “подтянуть” культуру разработки отдельных компании к качеству разработки известных СПО-проектов.