stringtranslate.com

Закон Линуса

В разработке программного обеспечения закон Линуса — это утверждение, что «при достаточном количестве глаз все ошибки неглубоки». Закон был сформулирован Эриком С. Рэймондом в его эссе и книге «Собор и базар» (1999) и назван в честь Линуса Торвальдса . [1] [2]

Более формальное утверждение звучит так: «При наличии достаточно большой базы бета-тестеров и соразработчиков почти каждая проблема будет быстро описана, а исправление станет очевидным для кого-то». Представление кода нескольким разработчикам с целью достижения консенсуса относительно его принятия — это простая форма обзора программного обеспечения . Исследователи и практики неоднократно демонстрировали эффективность процессов обзора при поиске ошибок и проблем безопасности. [3]

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

В книге «Факты и заблуждения о программной инженерии» Роберт Гласс называет этот закон «мантрой» движения за открытый исходный код , но называет его заблуждением из-за отсутствия подтверждающих доказательств и потому, что исследования показали, что скорость обнаружения дополнительных ошибок не линейно зависит от количества рецензентов; скорее, существует небольшое максимальное количество полезных рецензентов, от двух до четырех, а дополнительные рецензенты сверх этого числа обнаруживают ошибки с гораздо меньшей скоростью. [4] Хотя приверженцы закрытого исходного кода также продвигают строгий, независимый анализ кода во время разработки программного проекта, они сосредоточены на глубоком анализе несколькими людьми, а не в первую очередь на количестве «зрительных яблок». [5]

Сохранение ошибки безопасности Heartbleed в критическом фрагменте кода в течение двух лет рассматривалось как опровержение изречения Рэймонда. [6] [7] [8] [9] Ларри Сельцер подозревает, что доступность исходного кода может привести к тому, что некоторые разработчики и исследователи будут проводить менее обширные тесты, чем они бы делали с закрытым исходным кодом, что облегчает сохранение ошибок. [9] В 2015 году исполнительный директор Linux Foundation Джим Землин утверждал, что сложность современного программного обеспечения возросла до такого уровня, что для повышения его безопасности желательно выделение определенных ресурсов. Относительно некоторых из крупнейших в мире уязвимостей программного обеспечения с открытым исходным кодом в 2014 году он говорит: «В этих случаях глаза на самом деле не смотрели». [8] Масштабные эксперименты или рецензируемые опросы для проверки того, насколько хорошо мантра работает на практике, не проводились. [10]

Эмпирическое подтверждение справедливости закона Линуса [11] было получено путем сравнения популярных и непопулярных проектов одной и той же организации. Популярные проекты — это проекты с верхними 5% звезд GitHub (7481 звезда или больше). Выявление ошибок измерялось с использованием вероятности корректирующего коммита, отношения коммитов, определенных как связанные с исправлением ошибок. Анализ показал, что популярные проекты имели более высокий коэффициент исправления ошибок (например, популярные проекты Google имели на 27% более высокий уровень исправления ошибок, чем менее популярные проекты Google). Поскольку маловероятно, что Google снизил свои стандарты качества кода в более популярных проектах, это является показателем возросшей эффективности обнаружения ошибок в популярных проектах.

Смотрите также

Ссылки

  1. ^ Рэймонд, Эрик С. «Собор и базар». catb.org .
  2. ^ Рэймонд, Эрик С. (1999). Собор и базар. O'Reilly Media . стр. 30. ISBN 1-56592-724-9.
  3. ^ Пфлигер, Чарльз П.; Пфлигер, Шари Лоуренс (2003). Безопасность в вычислительной технике, 4-е изд. Прентис Холл PTR. стр. 154–157. ISBN 0-13-239077-9.
  4. ^ Glass, Robert L. (2003). Факты и заблуждения в программной инженерии. Addison-Wesley . стр. 174. ISBN 0-321-11742-5. ISBN  978-0321117427 .
  5. ^ Ховард, Майкл; ЛеБланк, Дэвид (2003). Writing Secure Code, 2nd. Ed. Microsoft Press . С. 44–45, 615, 726. ISBN 0-7356-1722-8.
  6. ^ Байфилд, Брюс (14 апреля 2014 г.). «Опровергает ли Heartbleed утверждение «Открытый исходный код безопаснее»?». Datamation .
  7. ^ Фелтен, Эдвард В.; Кролл, Джошуа А. (2014). «Требуется помощь по безопасности в Интернете». Scientific American . 311 (1): 14. Bibcode : 2014SciAm.311a..14F. doi : 10.1038/scientificamerican0714-14. PMID  24974688.
  8. ^ ab Kerner, Sean Michael (20 февраля 2015 г.). «Почему все ошибки Linux (безопасности) не являются неглубокими». eSecurity Planet . Получено 21 февраля 2015 г.
  9. ^ ab Seltzer, Larry (14 апреля 2014 г.). «Имел ли открытый исходный код значение для Heartbleed?». ZDNet .
  10. ^ Арсено, Кевин; Гербер, Алан С.; Грин, Дональд П. (январь 2006 г.). «Сравнение экспериментальных и соответствующих методов с использованием крупномасштабного эксперимента по мобилизации избирателей». Политический анализ . 14 (1): 37–62. doi :10.1093/pan/mpj001. ISSN  1047-1987.
  11. ^ Амит, Идан; Фейтельсон, Дрор Г. (2020). «Метрика качества кода вероятности корректирующего подтверждения». arXiv : 2007.10912 [cs.SE].

Дальнейшее чтение