Исследование выявило высокое качество кода open-source

Консалтинговая группа, изучающая исходный код операционных систем, установила, что качество основных сетевых компонентов Linux во многих случаях выше, чем у конкурирующего закрытого ПО.

Компания Reasoning, которая реализует услуги автоматического контроля ПО, изучила часть кода Linux и пяти других операционных систем, сравнивая количество и уровень ошибок программирования. В частности, Reasoning проверяла ключевую сетевую технологию TCP/IP и обнаружила в ее Linux-реализации меньше ошибок.

«Реализация TCP/IP в ядре Linux отчетливо демонстрирует более высокое качество кода по сравнению с коммерческими операционными системами общего назначения», — говорится в отчете, опубликованном на прошлой неделе. Reasoning анализировала также код двух специализированных сетевых продуктов и установила, что Linux лучше одного из них.

Уровень дефектов в Linux составил 0,1 на 1000 строк кода. Для операционных систем общего назначения этот показатель колеблется между 0,6 и 0,7 на 1000 строк кода, а у двух встроенных операционных систем он составил 0,1 и 0,3 на 1000 строк кода.

Выводы Reasoning подтверждают точку зрения сторонников open-source, таких как Эрик Реймонд (Eric Raymond), которые утверждают, что проблемы решаются быстрее, когда код может изучать больше людей. Их аргумент: «Если глаз достаточно, то не страшны никакие баги».

Директор Reasoning Скотт Трапп (Scott Trappe) согласен с этим: «Приложения open- source… позволяют любому видеть исходный код. Исходный код крупных систем open- source, таких как ядро Linux, веб-сервер Apache и т.п., читают десятки или сотни людей — чтобы понять, как он работает, внести изменения или найти ошибки. Благодаря открытому процессу разработки эти независимые наблюдатели могут сообщить об обнаруженных дефектах и даже предложить соответствующие поправки».

«К сожалению, для жизненного цикла большинства коммерческих продуктов это слишком долгий процесс разработки», — добавил Трапп.

Reasoning отказалась назвать операционные системы, с которыми она сравнивала Linux, но сказала, что две из трех ОС общего назначения — это версии Unix. Сравнение проводилось с версией ядра Linux 2.4.19. Для сравнения продуктов компания имеет доступ к исходному коду проприетарного ПО, который обычно бывает засекречен.

В число наиболее популярных версий Unix входят Solaris от Sun Microsystems, IBM AIX и Hewlett-Packard HP-UX. Они конкурируют с дистрибутивами Linux таких компаний, как Red Hat и SuSE, а также с Microsoft Windows.

Microsoft, ярый сторонник проприетарного ПО, отказалась от своих прежних нападок с юридических позиций на лицензию General Public License (GPL), которой подчиняются Linux и многие другие проекты open-source. Компания утверждала, что «вирусная» лицензия ПО с открытым исходным кодом может заражать другие, соприкасающиеся софтверные проекты, превращая и их в проекты open-source.

Теперь Microsoft видит больше преимуществ в открытии своего кода; компания начала допускать правительства некоторых стран к исходному коду Windows для ознакомления и даже создания собственных версий продуктов.

Reasoning обращала внимание на такие ошибки программирования, как память, помеченная как свободная, на самом деле используется; память, помеченная как используемая, должным образом не инициализирована; и попытки сохранить данные, выходящие за рамки отведенного для них пространства. Эта последняя проблема часто связана с переполнениями буфера — серьезной уязвимостью, которая при определенных условиях позволяет атакующим получить контроль над компьютером.

Трапп сказал, что его компания не занималась измерением производительности разных версий TCP/IP. Это трудно сделать из-за различий в аппаратуре, такой как аппаратные ускорители работы сети, используемые сетевыми продуктами.

 Стивен Шанкленд,CNET News.com



Сетевые решения. Статья была опубликована в номере 02 за 2003 год в рубрике software

©1999-2024 Сетевые решения