|
history of FreeBSD
|
«Две вещи, изменившие миp, были созданы в Беpкли: LSD и Unix. Вpяд ли это случайное совпадение».
(Jeremy S. Anderson)
Как видно из истории развития UNIX систем, в ней прослеживаются две основные ветви: ветвь AT&T и ветвь BSD, к последней, что видно из самого названия, принадлежит FreeBSD.
История развития проекта FreeBSD началась в начале 1993 года, частично как ответвление “Unofficial 386BSD Patchkit” (неофициальный корректирующий пакет), который поддерживался тремя координаторами: Нейтом Уильямсом (Nate Williams), Родом Граймсом (Rod Grimes) и Джорданом К. Хаббардом (Jordan K. Hubbard). Основной их задачей в тот момент был выпуск промежуточной версии 386BSD с целью устранения проблем, существующих в системе, которые невозможно было решить при помощи самого пакета. Изначальным названием для того проекта было “386BSD 0.5″ или “386BSD Interim”.
Фактически владельцем системы 386BSD был Билл Джолитц (Bill Jolitz). В силу того, что в ней накопилось большое множество нерешенных проблем, размеры корректирующего пакета просто пугали. В качестве решения сложившейся ситуации Джолитцу и была предложена выше упомянутая “вычищенная” версия системы. Однако, вместо того чтобы хоть что-то предпринять, Джолитц просто отказался от дальнейшей поддержки проекта без какой бы то ни было аргументации и указаний.
В сложившейся ситуации нужно было что-то предпринять и группа быстро решила продолжить проект уже без Джолитца, дав проекту новое название FreeBSD, которое предложил Дэвид Гринман (David Greenman). С целью выяснения основных задач только что рожденного проекта были произведены консультации с пользователями системы-предшественника. Ситуация складывалась такой, что ощущалась определенная необходимость в существовании проекта, то есть у него было будущее. Исходя из этого Джордан Хаббард обратился в компанию Walnut Creek CDROM с целью создания дополнительного способа распространения ОС, кроме распространения посредством сети Интернет. Заинтересовавшись проектом, Walnut Creek CDROM не только поддержала идею о распространении FreeBSD на компакт-дисках, но, кроме того, предоставила для разработчиков компьютер и высокоскоростной доступ в Интернет, что послужило великолепным подспорьем к развитию проекта.
В декабре 1993 года была выпущена первая версия системы – FreeBSD 1.0. Базируясь на системе 4.3BSD-Lite, разработке Университета города Беркли, штат Калифорния, система включала в себя многие компоненты из 386BSD, а так же компоненты, предоставленные компанией Free Software Foundation. Система сразу добилась неплохих для начала успехов и в мае 1994 года была выпущена новая версия FreeBSD 1.1.
Примерно в этот момент закончилась продолжительная судебная тяжба между Калифорнийским университетом в Беркли и компанией Novell по поводу легального статуса 4.3BSD-Lite. Университет фактически проиграл процесс и был вынужден, по соглашению с Novell, отказаться от использования достаточно больших блоков кода, входящих в 4.3BSD-Lite, которые являлись еще наследием Bell Laboratories (AT&T) UNIX Version 6 и были недавно куплены Novell у компании AT&T. Понимая “драконовость” сделки, Novell не пошла на конфликт с университетом и решила компенсировать, созданные ей же самой неудобства для университета, заявлением, что когда будет выпущена версия 4.4BSD-Lite, Novell не будет претендовать на нее, а наоборот будет поощрять пользователей к переходу с 4.3BSD-Lite на 4.4BSD-Lite. Для проекта FreeBSD эта тяжба вылилась в то, что, поскольку проект содержал наследованный код 4.3BSD-Lite, им разрешалось выпустить последнюю версию FreeBSD 1.1.5.1 и на этом свернуть работу.
Оказавшись фактически у разбитого корыта, группа принялась за почти невозможную задачу возрождения FreeBSD на базе незавершенной 4.4BSD-Lite. Основная трудность заключалась в том, что разработчики 4.4BSD-Lite все же были вынуждены удалить большое количество кода из юридических соображений. Поэтому 4.4BSD-Lite оказалась на столько облегченной (от англ. light – легкий, которое созвучно по произношению с lite), что представляла жалкое зрелище и еще более затрудняла перенос системы на платформу процессоров Intel. Таким образом, вплоть до декабря 1994, года проект занимался только своим переносом и лишь в январе 1995 года была выпущена новая версия FreeBSD 2.0. Несмотря на недостаточную обкатанность новой версии, она, тем не менее, добилась определенного успеха. Результатом продолжения работы над ней стал выпуск в июне 1995 года новой, значительно более надежной версии FreeBSD 2.0.5.
Изначально поставленная при разработке проекта цель на высококачественную поддержку коммуникаций, а также наследование в себе наиболее отработанной реализации стека TCP/IP, позволили, с выходом в августе 1996 года версии 2.1.5, получить заметное признание и популярность среди провайдеров Интернет (особенно у нас в России), а так же среди компаний, выпускающих коммерческие продукты. Конечной точкой развития ветви 2.1 стал выпуск в феврале 1997 года версии FreeBSD 2.1.7.1. Дальнейшими основными направлениями развития системы стали улучшение ее безопасности и исправление критических моментов, обнаруженных в ветви 2.1.
Еще до завершения ветви 2.1, в ноябре 1996 года была начата работа над преемственной ветвью 2.2. Первая полная версия FreeBSD 2.2 была выпущена 16 марта 1997 года. Дальнейшее развитие этой ветви продолжалось до конца 1998 года и завершилась выпуском FreeBSD 2.2.8 30 ноября.
Одновременно с продолжением работ над ветвью 2.2, в январе 1997 года была начата разработка ветви 3.0-CURRENT. С этого времени и поныне единовременно развивается две ветки FreeBSD – STABLE, предназначенная для широкого применения, и CURRENT, ориентированная главным образом на разработчиков и энтузиастов. В апреле 1997 года в разрабатываемую версию 3.0 была интегрирована поддержка SMP (Symmetric MultiProcessor – поддержка многопроцессорных систем). В январе 1998 года была модернизирована поддержка Plug-n-Play устройств, а 31 августа был осуществлен переход на улучшенный формат двоичных модулей – ELF. Сентябрь того же года отмечен включением интерпретатора языка программирования Perl5 в комплект стандартных компонент системы, а так же внедрением новой технологии работы со SCSI устройствами – CAM SCSI (Common Access Method SCSI – общий метод доступа SCSI). Выпуск версии FreeBSD 3.0-STABLE произошел 15 октября 1998 года. Ветвь 3.x завершилась выпуском версии 3.4 20 декабря 1999 года. В январе 1999 г. обособляется ветка 4.0-CURRENT, обретшая статус стабильной в марте 2000 г. Одновременно происходит очередное ветвление – появляется 5.0-CURRENT, воплощающая перспективы FreeBSD, которая, в нарушение описанной закономерности, довольно долго (вплоть до версии 5.5), не именовалась стабильной. Да, собственно, до состояния таковой не дошедшая.
Выход в свет 5-й ветки FreeBSD был, пожалуй, самым революционным событием со времен ее появления как самостоятельной операционной системы. Именно в ней, начиная самой первой пререлизной версии, предназначенной для разработчиков (июнь 2002 года), был заложен тот потенциал, который обусловил ее применимость в качестве настольной операционки для конечного пользователя. Это и последовательно модульный подход, позволяющий обходиться без пересборки ядра для поддержки важных для пользователя особенностей, и файловая система устройств, облегчающая работу с устройствами “горячего подключения” (такими, как USB-накопители, сканеры, цифровые камеры), и эффективная работа с ATA RAID (а в дальнейшем и с винчестерами Serial ATA), и многое другое.
11 июля 2005 г. выходит первый 6.0-RELEASE. Шестая ветка FreeBSD не была столь богата инновациями. Хотя многие из них оказались очень важны для конечного пользователя. Среди них – поддержка высоких разрешений в т.н. графической консоли, обратно портированная из DragonFlyBSD, возможность работы с популярными файловыми системами Linux – ReiserFS и XFS (правда, в режиме “только для чтения”). Наконец, уже ранние бета-версии 6-й ветки демонстрируют значительное повышение быстродействия, особенно – операций с файлами. Ведь не секрет, что за новшества 5-й ветки пришлось расплачиваться снижением скорости работы по сравнению с 4-й, в ряде случаев – весьма существенным. Последней стабильной версией шестой ветки является 6.4-STABLE, вышедшей в ноябре 2008.
5 апреля 2006 года The FreeBSD Foundation объявила о выходе пакетов Java JDK и JRE 1.5 для FreeBSD 5.4 и 6.0 и подала заявку Sun Microsystems на сертификацию и возможность использования торговой марки Sun JDK and JRE. 11 июля 2006 г. пользователи FreeBSD уже могли загрузить сертифицированные бинарные сборки, в том числе и для AMD64 платформы.
В августе 2008 г. вышли бинарные сборки Java JDK и JRE 6.0 для платформ FreeBSD 6.x и 7.x.
Логичным продолжением развития FreeBSD стал выпуск 7 версии ОС в феврале 2008, в котором разработчики обещают рост производительности от 3 до 15 раз по сравнению с 6 версией. В седьмую версию были включены экспериментальная поддержка Sun ZFS, XFS, улучшенная поддержка SMP (обработка одного процесса вплоть до 8 процессорами), которые активно разрабатывались в 5 и 6 ветках, новый планировщик ULE, который стал основным по умолчанию в 7.1-STABLE (вышедший 5 января 2009 г.) и много других важных улучшений и нововведений. 4 мая 2009 годавышла стабильная версия FreeBSD 7.2-STABLE с поддержкой 13 версии ZFS, улучшениями в jail и многих других вкусностей.
Вместе с релизом FreeBSD 7, прошлый год ознаменовался и выходом Current версии FreeBSD 8. 26 июня исходные коды FreeBSD 8 были “заморожены” для подготовки релиза. Сам релиз был выпущен 21 сентября 2009 года. Здесь можно посмотреть на основные изменения, которые коснутся 8 ветки.
Замечательное актуальное дерево развития BSD вы можете найти в дереве исходников системы (/usr/src/share/misc/bsd-family-tree) либо по адресу:
http://www.freebsd.org/cgi/cvsweb.cgi/src/share/misc/bsd-family-tree.
Что еще можно почитать:

cvs.freebsd-ufa.org
wiki.freebsd-ufa.org