Введение

Заявление Эрика С. Реймонда о разработке программного обеспечения 1999 года, названное в честь Линуса Торвальдса.

В разработке программного обеспечения закон Линуса – это утверждение, что «при достаточном количестве внимательных взглядов все ошибки неглубоки». Этот закон был сформулирован Эриком С. Реймондом в его эссе и книге «Собор и базар» (1999) и назван в честь Линуса Торвальдса. Более формальное определение: «При наличии достаточно большой базы бета-тестеров и соавторов почти любая проблема будет быстро выявлена, а решение станет очевидным для кого-либо». Представление кода нескольким разработчикам для достижения консенсуса о его принятии является простой формой проверки кода. Исследователи и практики неоднократно демонстрировали эффективность процессов проверки в поиске ошибок и уязвимостей в системе безопасности.

Действительность

В книге «Факты и заблуждения о программной инженерии» Роберт Гласс называет этот принцип «мантрой» движения открытого исходного кода, но считает его заблуждением из-за отсутствия подтверждающих доказательств и потому, что исследования показали, что скорость обнаружения дополнительных ошибок не масштабируется линейно с количеством проверяющих; скорее, существует небольшое максимальное количество эффективных проверяющих – от двух до четырех, и добавление проверяющих сверх этого числа приводит к обнаружению ошибок с гораздо меньшей скоростью. Специалисты, работающие с закрытым исходным кодом, также продвигают строгий независимый анализ кода в процессе разработки программного проекта, но они сосредотачиваются на глубоком анализе небольшим числом экспертов, а не на количестве «глаз». Продолжительное существование уязвимости Heartbleed в критически важном коде в течение двух лет рассматривалось как опровержение принципа Реймонда. В 2015 году исполнительный директор Linux Foundation Джим Землин утверждал, что сложность современного программного обеспечения возросла до такой степени, что для повышения его безопасности целесообразно выделение специализированных ресурсов. Говоря о некоторых из крупнейших глобальных уязвимостей программного обеспечения с открытым исходным кодом в 2014 году, он отметил: «В этих случаях достаточно внимания не уделялось». Крупномасштабные эксперименты или рецензируемые исследования для проверки практической применимости этого принципа не проводились. Эмпирическое подтверждение принципа Линуса было получено путем сравнения популярных и непопулярных проектов в рамках одной организации. Популярными проектами считались проекты, входящие в 5% лучших по количеству звезд на GitHub (7481 звезда и более). Выявление ошибок измерялось с помощью вероятности корректирующих коммитов – отношения коммитов, идентифицированных как связанные с исправлением ошибок. Анализ показал, что в популярных проектах наблюдался более высокий коэффициент исправления ошибок (например, популярные проекты Google имели на 27% более высокий коэффициент исправления ошибок, чем менее популярные проекты Google). Поскольку маловероятно, что Google снизил стандарты качества кода в более популярных проектах, это указывает на повышение эффективности обнаружения ошибок в популярных проектах.