FreeBSD

Материал из Bryansk Linux Users Group.

Перейти к: навигация, поиск

Содержание

История

Новый логотип FreeBSD

Проект FreeBSD родился в начале 1992 года и частично вырос из проекта "Неофициальный набор исправлений для 386BSD" или, точнее, из patchkit, возглавляемого Нейтом Вильямсом, Родом Граймсом и Джорданом Хаббардом. Кроме того, в разработке участвовали Дэвид Гринмэн и Джулиан Элишер, хотя официально они присоединились к проекту только через месяц после начала его реализации. Поскольку организация работы через patchkit уже не могла спасти положение, главной целью проекта было создание промежуточного варианта 386BSD, в котором была бы исправлена большая часть ошибок. Возможно, кто-то сейчас еще может вспомнить рабочие названия проекта типа 386BSD 0.5 или 386BSD Interim, которые отражали текущее положение дел.

Примерно в это время Билл Джолитц отказался от дальнейшей поддержки и развития системы, в результате чего проект модернизации 386BSD превратился в то, что мы знаем теперь под названием FreeBSD (имя было придумано Дэвидом Гринмэном). Джордан Хаббард обратился в Walnut Creek CDROM (США) в надежде открыть дополнительные каналы распространения для еще не созданной операционной системы. Компания Walnut Creek CDROM не просто поддержала идею распространения FreeBSD на CD - она еще помогла с компьютерной техникой и скоростным подключением к Internet. Первый CD-диск с FreeBSD появился в декабре 1993-го - это был FreeBSD 1.0, версия которого тоже распространялась по Сети. Система была основана на ленте 4.3 BSD Lite (Net/2) из Беркли и дополнена компонентами из 386BSD и от Free Software Foundation. Для первой версии успех был довольно значительным, и вскоре, в мае 1994-го, на свет появилась очень удачная версия 1.1.

Однако затем на горизонте стали сгущаться тучи. Компания Novell - наследник AT&T - начала тяжбу за запрещение использования фрагментов кода в ленте Berkeley Net/2, которые вели свое происхождение из AT&T. Университет Беркли был вынужден выпустить "облегченный" вариант, названный BSD4.4-Lite, и порекомендовать всем пользователям Net/2 переключиться на него. Поэтому в конце июля 1994 года FreeBSD project прекращает поставку FreeBSD, но, в соответствии с лицензионным соглашением, имеет право на выпуск еще одной версии до наступления "часа Х". В итоге появляется FreeBSD 1.1.5.1 - результат года работы на Net/2. Эта версия обладала лучшей производительностью, чем все предыдущие, имела более высокую надежность и сама по себе была прекрасным продуктом.

Но теперь разработчикам предстояло фактически начать все заново, основываясь на новом и неполном наборе BSD 4.4-Lite. Из-за различных юридических ограничений команда Berkeley CSRG удалила большое количество кода, используемого для создания загружаемой работоспособной системы, и фактически порт на Intel x86 оказался очень неполным. FreeBSD Project вновь начал работу в декабре 1994-го, и уже в январе 1995 года FreeBSD версии 2.0 появилась в Сети и на CD. Несмотря на некоторые шероховатости, система имела большой успех, и вскоре за ней последовала более быстрая и удобная в установке FreeBSD 2.0.5, выпущенная в июне 1995 года.

В конце этого года на свет появилась версия 2.1, очень стабильная, во многом усовершенствованная, которая по всем параметрам превосходила версию FreeBSD 1.1.5.1. За два года была проделана огромная работа по превращению неполного набора BSD 4.4-Lite в работающую, надежную и удобную операционную систему. Нельзя не восхищаться командой разработчиков, к которой к тому времени присоединились многие прекрасные программисты-энтузиасты. Чуть позже 2.1 превратилась в 2.1.5, затем в 2.1.6. В обоих случаях повышена стабильность, добавлены дополнительные драйверы, исправлены найденные ошибки. В феврале 1997-го в системной библиотеке была обнаружена неточность в обработчике переменной окружения PATH_LOCALE, и тогда команда разработчиков FreeBSD удалила версию 2.1.5/2.1.6 со всех FTP-серверов и выпустила версию 2.1.7 (security-release). Затем вышла версия 2.2 и начались работы над FreeBSD 3.0, где намечается повышение качества работы виртуальной машины (VM), что позволит улучшить эмуляцию DOS и Windows-приложений.

Кроме того, совсем недавно был начат грандиозный проект по построчному перебору всего кода FreeBSD (около 120 Мбайт). Цель проекта - избавиться от проблем с security, исправить обнаруженные ошибки и улучшить общий стиль. Дерево исходного кода было разбито на отдельные части, которые просматриваются различными командами программистов; все исправления неоднократно перепроверяются независимыми специалистами. Все это позволяет надеяться, что FreeBSD станет более защищенной системой. Кстати, проанализировав список рассылки BUGTRAQ за последние полгода, можно заметить, что коммерческие ОС типа Solaris, IRIX, не говоря уже о NT, существенно превосходят FreeBSD по количеству ошибок в программах, критичных для безопасности. Дополнительная информация о FreeBSD Audit Project.

Таким образом, разработка FreeBSD не представляет собой закрытый процесс, а напротив, поддерживает многолетние традиции сотрудничества специалистов из разных стран мира, работающих над одной задачей. Самые активные из разработчиков переходят в команду FreeBSD core team, которая занимается общим направлением и целевой координацией проекта.

На FreeBSD основаны:

Как обновлять FreeBSD

Одной из самых сильных сторон FreeBSD является стройная система обновления. Информация о вышедших версиях программ, адаптированных для сборки под FreeBSD помещается в специальное дерево каталогов - порты (/usr/ports), собственно дерево портов представляет собой список категорий, в каждой из которых есть список программ в виде каталогов, и внутри есть краткое описание (pkg-descr), файл с контрольными суммами архива исходников distinfo, pkg-plist и Makefile с инструкциями системе откуда качать исходники и как их собирать. От вас требуется только зайдя к подраздел и каталог сказать

[root@shaman] /usr/ports/www/squid #  make
[root@shaman] /usr/ports/www/squid #  make install

...и при наличии подключенного интернета исходники будут скачаны, собраны и готовое приложение установлено в систему.

Обновление самого дерева портов удобно делать подобным скриптом:

/root/bin/update

#!/bin/sh                              
cvsup -g -L 2 -h cvsup4.ru.freebsd.org /usr/share/examples/cvsup/ports-supfile > UPDATE.LST&
tail -f UPDATE.LST                     

Здесь cvsup - собственно программа обновления дерева портов, файл cvsup-ports - файл конфигурации, UPDATE.LST - лог-файл с результатами обновления.

Но cvsup (которую необходимо ставить отдельно из портов) начиная с версии 6.x прекрасно заменена на csup.


Вторым, более удобным вариантом установки софта является использование portupgrade (/usr/ports/ports-mgmt/portupgrade), после установки которого пользователь (при наличии полномочий) получает в распоряжение удобные утилиты portupgrade, portinstall, pkg_deinstall.

Как обновляться в метро?

Таким образом обновление сводится к двум операциям: обновления дерева портов и скачка конкретных архивов с исходниками. С точки зрения безопасности очевидно, что дерево портов следует обновлять с оригинального сервера через интернет: в нём контрольные суммы архивов, да и объём (при регулярном обновлении) невелик. А вот сами архивы с исходниками можно (и безопасно) качать из метро, для чего следует исправить /etc/make.conf, добавив нечто:

MASTER_SITE_OVERRIDE=http://10.101.1.114/distfiles/$(DIST_SUBDIR)/ \                     
ftp://10.112.0.6/${DIST_SUBDIR}/ \
ftp://10.196.0.18/gentoo-distfiles/distfiles/${DIST_SUBDIR}/

Теперь после make сначала будет посещён http-сервер 10.101.1.114, затем 10.112.0.6 и только если там не нашлось нужного архива wget будет пытаться скачать архив с исходниками (и все зависимости) с оригинального сайта, указанного в Makefile соответствующего порта.

Данные хосты более не предоставляют distfiles или на момент правки статьи были оффлайн.

#ftp://10.102.2.162/pub/distfiles/$(DIST_SUBDIR)/ \                  
#ftp://10.104.2.82/distfiles/${DIST_SUBDIR}/ \  
#ftp://10.113.1.50/distfiles/${DIST_SUBDIR}/ \                       
#ftp://10.101.3.74/distfiles/$(DIST_SUBDIR)/ \                       
#ftp://10.102.12.6/distfiles/$(DIST_SUBDIR)/ \                       
#http://10.101.2.38/distfiles/$(DIST_SUBDIR)/

Репозитарии (порты) в Метро

Источники

Скачать из Метро

Личные инструменты