Выбрать главу

Наверное, рассказ об истории BSD в начале 1990-х годов будет неполным без упоминания о судебных процессах между UNIX System Laboratories (USL, дочерней компании, принадлежащей AT&T и занимавшейся разработкой и рыночным продвижением UNIX) и командой из Беркли. В начале 1992 года компания Berkeley Software Design, Incorporated (BSDi, в настоящее время входит в состав Wind River) приступила к распространению сопровождаемых на коммерческой основе версий BSD UNIX под названием BSD/OS (на базе выпуска Net/2) и добавлений, разработанных Джолицами под названием 386/BSD. Компания BSDi распространяла двоичный и исходный код по цене $995 и советовала потенциальным клиентам пользоваться телефонным номером 1-800-ITS-UNIX.

В апреле 1992 года компания USL предъявила иск компании BSDi, пытаясь воспрепятствовать продаже этих проектов. Как заявлялось в USL, они по-прежнему представляли собой исходный код, который был защищен патентом, полученным USL, и составлял коммерческую тайну. Компания USL также потребовала, чтобы BSDi прекратила использовать вводящий в заблуждение телефонный номер. Со временем иск был выдвинут еще и Калифорнийскому университету. Суд в конечном итоге отклонил все, кроме двух претензий USL, а также встречный иск Калифорнийского университета к USL, в котором утверждалось, что USL не упомянула о том, что в System V содержится код BSD.

В ходе рассмотрения иска в суде USL была куплена компанией Novell, чей руководитель, ныне покойный Рэй Нурда (Ray Noorda), публично заявил, что он предпочел бы конкурировать на рынке, а не в суде. Спор окончательно был урегулирован в январе 1994 года. В итоге от Калифорнийского университета потребовали удалить из выпуска Net/2 три из 18 000 файлов, внести незначительные изменения в несколько файлов и добавить упоминание об авторских правах USL в отношении примерно 70 других файлов, которые университет тем не менее мог продолжать распространять на свободной основе. Эта измененная система была выпущена в июне 1994 года под названием 4.4BSD-Lite. (Последним выпуском университета в июне 1995 года был 4.4BSD-Lite, выпуск 2.) На данный момент по условиям правового урегулирования требуется, чтобы в BSDi, FreeBSD и NetBSD их база Net/2 была заменена исходным кодом 4.4BSD-Lite. Как отмечено в публикации [McKusick et al., 1996], хотя эти обстоятельства привели к замедлению процесса разработки версий, производных от BSD, был и положительный эффект. Он заключался в том, что эти системы были повторно синхронизированы с результатами трехлетней работы, проделанной университетской группой Computer Systems Research Group со времени выпуска Net/2.

Номера версий ядра Linux

Подобно большинству свободно распространяемых продуктов, для Linux практикуется модель ранних (release-early) и частых (release-often) выпусков, поэтому новые исправленные версии ядра появляются довольно часто (иногда чуть ли не каждый день). По мере расширения круга пользователей Linux каждая модель выпуска была настроена так, чтобы не влиять на тех, кто уже пользуется этой системой. В частности, после выпуска Linux 1.0 разработчики ядра приняли систему нумерации версий ядра x.y.z, где x обозначала номер основной версии, y — номер второстепенной версии в рамках основной версии, а z — номер пересмотра второстепенной версии (с незначительными улучшениями и исправлениями).

Согласно этой модели в разработке всегда находятся две версии ядра. Это стабильная ветка для использования в производственных системах, у которой имеется четный номер второстепенной версии, и более изменчивая дорабатываемая ветка, которая носит следующий более высокий нечетный номер второстепенной версии. По теории, которой не всегда четко придерживаются на практике, все новые функции должны добавляться в текущие дорабатываемые серии ядра, а в новых редакциях стабильных серий нужно ограничиваться лишь незначительными улучшениями и исправлениями. Когда текущая дорабатываемая ветка оказывается подходящей для выпуска, она становится новой стабильной веткой и ей присваивается четный номер второстепенной версии. Например, дорабатываемая ветка ядра с номером 2.3.z в результате становится стабильной веткой ядра с номером 2.4.

После выпуска версии ядра с номером 2.6 модель разработки была изменена. Главной причиной для этого изменения послужили проблемы и недовольства, вызванные длительными периодами между выпусками стабильных версий ядра[1]. Вокруг доработки этой модели периодически возникали споры, но основными остались следующие характеристики[2].

• Версии ядер перестали делить на стабильные и дорабатываемые. Каждый новый выпуск 2.6.z может содержать новые функции. У выпуска есть жизненный цикл, начинающийся с добавления функций, которые затем стабилизируются в течение нескольких версий-кандидатов. Когда такие версии признают достаточно стабильными, их выпускают в качестве ядра 2.6.z. Между циклами выпуска обычно проходит около трех месяцев.

вернуться

1

Между выпусками Linux 2.4.0 и 2.6.0 прошло почти три года.

вернуться

2

В результате перенумерации ядра Linux с 2.6.x на 3.x в июле 2011 года, а затем (в апреле 2015 года) в 4.x, обсуждение нумерации ядра на этой странице теперь устарело. Однако изменения коснулись лишь схемы нумерации: она была упрощена (инвариант 2.6 был заменен на 3, а впоследствии на 4). Модель разработки ядра остается неизменной. Как Линус Торвальдс отметил в версии 3.0, в релизе нет ничего особенного (то есть никаких более значительных изменений, чем изменения в Linux 2.6.39 и в каждом из предыдущих выпусков 2.6.x).