Закон Линуса
В разработке программного обеспечения закон Линуса — это утверждение, что «при достаточном количестве просмотров все ошибки являются поверхностными». Закон был сформулирован Эриком С. Рэймондом в его эссе и книге «Собор и базар» (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 снизил стандарты качества кода в более популярных проектах, это свидетельствует о повышении эффективности обнаружения ошибок в популярных проектах.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Раймонд, Эрик С. «Собор и базар» . catb.org .
- ^ Раймонд, Эрик С. (1999). Собор и базар . О'Рейли Медиа . п. 30. ISBN 1-56592-724-9 .
- ^ Пфлигер, Чарльз П.; Пфлигер, Шари Лоуренс (2003). Безопасность в вычислительной технике, 4-е изд . Прентис Холл PTR. стр. 154–157. ISBN 0-13-239077-9 .
- ^ Гласс, Роберт Л. (2003). Факты и заблуждения программной инженерии . Аддисон-Уэсли . п. 174. ИСБН 0-321-11742-5 . ISBN 978-0321117427 .
- ^ Ховард, Майкл; ЛеБлан, Дэвид (2003). Написание безопасного кода, 2-е. Эд . Майкрософт Пресс . стр. 44–45, 615, 726. ISBN. 0-7356-1722-8 .
- ^ Байфилд, Брюс (14 апреля 2014 г.). «Опровергает ли Heartbleed утверждение о том, что открытый исходный код безопаснее?» . Датаматизация .
- ^ Фельтен, Эдвард В.; Кролл, Джошуа А. (2014). «Требуется помощь по интернет-безопасности». Научный американец . 311 (1): 14. Бибкод : 2014SciAm.311a..14F . doi : 10.1038/scientificamerican0714-14 . ПМИД 24974688 .
- ^ Jump up to: а б Кернер, Шон Майкл (20 февраля 2015 г.). «Почему все ошибки Linux (безопасности) не являются поверхностными» . Планета электронной безопасности . Проверено 21 февраля 2015 г.
- ^ Jump up to: а б Зельцер, Ларри (14 апреля 2014 г.). «Имеет ли значение открытый исходный код для Heartbleed?» . ЗДНет .
- ^ Арсено, Кевин; Гербер, Алан С.; Грин, Дональд П. (январь 2006 г.). «Сравнение экспериментальных и сопоставленных методов с использованием крупномасштабного эксперимента по мобилизации избирателей» . Политический анализ . 14 (1): 37–62. дои : 10.1093/pan/mpj001 . ISSN 1047-1987 .
- ^ Амит, Идан; Фейтельсон, Дрор Г. (2020). «Метрика качества кода вероятности корректирующего фиксации». arXiv : 2007.10912 [ cs.SE ].
Дальнейшее чтение
[ редактировать ]- Цзин Ван; Дж. М. Кэрролл (27 мая 2011 г.). За законом Линуса: предварительный анализ практики экспертной оценки программного обеспечения с открытым исходным кодом в Mozi . Межд. Конф. по технологиям и системам совместной работы (CTS), Филадельфия, Пенсильвания . Цифровая библиотека IEEE Xplore. стр. 117–124. дои : 10.1109/CTS.2011.5928673 .