FreeBSD: физика файловой системы. Операционная система FreeBSD

Установка FreeBSD 10 за пару минут (пошаговая установка)

FreeBSD - бесплатная операционная система. Современная модификация UNIX. Одна из самых надёжных систем, прекрасно подходит для администрирования локальной сети, как сервер доступа, почтового сервера, файлового сервера, сервера имён и остальное. Не даром на её базе со временем была создана Mac OS. Так же есть возможность установить графическую оболочку или использовать готовое решение проекта PCBSD.

1. Выбор дистрибутива, подготовка установочного носителя
2. Начало установки, разметка диска
3. Выбор компонентов и установка

FreeBSD прежде всего сетевая система и для наилучшего быстродействия в ней отсутствует (по умолчанию) графическая оболочка. Вся суть работы в этой системе сводится к правке необходимых файлов, установке программ, включении функций и набору команд.

И когда Вы настроите систему под свои нужды, она Вас не подведёт. Лично я в процессе работы с ней (2 года), не наблюдал никаких сбоев, глюков и нагрузки на оборудование.

Выбор дистрибутива, подготовка установочного носителя

На официальном сайте можно выбрать версию операционной системы, разрядность, а также платформу (amd64, i386, powerpc, sparc)

После выбора платформы, откроется список вариантов установки (CD, DVD, FTP сервера, MS DOS, дискет и даже магнитных лент).

Конечно лучше не "играть с бубном" и скачать дистрибутив для CD или DVD дисков и записать установочный диск с помощью программ: Alcohol120%, UltraISO или любой другой программой для записи установочного диска.

Начало установки, разметка диска

Загружаемся с установочного диска и запускается меню загрузчика FreeBSD. Можно подождать 10 секунд для автоматического запуска программы установки или нажать кнопку Enter или 1.

На экране отобразится много строк определённого оборудования. Просмотреть его можно нажав кнопку Scroll Lock , прокручивать страницы кнопками PageUp и PageDown.

После определения и тестирования оборудования, появится приветственное окно установки FreeBSD. Нажимаем Install


В окне выбора раскладки клавиатуры, оставьте по умолчанию или выберите подходящую раскладку.



doc - документация на систему

games - игры

ports - порты для установки программ

src - ядро системы

Обычно я оставляю только src, так как документация мне не нужна, игры тоже, порты установим и обновим после установки системы, так как самая актуальная сборка обновляется через интернет. Ядро также можно потом доустановить.


Определяемся со слайсами (так называются разделы в FreeBSD) жёсткого диска. Можем выбрать опцию автоматического создания разделов или самим создать нужные нам разделы.


Автоматически редактор разделов создал три области:

ada0p1 512KB freebsd-boot - область загрузчика. Этого вполне достаточно, больше не надо

ada0p2 19GB freebsd-ufs / - корневой раздел операционной системы. Всё оставшееся место под систему и файлы, с которыми будете работать. По сути её нужно всего 1GB памяти, с условием что будут созданы другие разделы и только на них будет проводиться работа.

Для экспертов: Принято помимо одного корневого раздела создавать другие разделы:

/var - содержит временные и постоянно меняющиеся файлы, логи.

/usr - содержит файлы с установленными программами и остальное.

/data - в этом разделе у меня находились файлы сайта, например.

ada0p3 1.0GB freebsd-swap none - файл подкачки. Размер его зависит от количества оперативной памяти. Если её мало, допусти 1GB, то целесообразно выставить файл подкачки в два раза больше. Если оперативной памяти много, то файл подкачки можно выставить равным объёму оперативной памяти, а то и меньше.


Жмём кнопку Finish , подтверждаем принятые изменения Commit и начинается установка системы FreeBSD.


После установки предлагается дважды ввести пароль. Вводимые символы не отображаются.


Выбор компонентов и установка

После этого предлагается настроить сетевую карту(ы), для доступа к сети. В отличии от Linux, где любая сетевая карта называется eth , в FreeBSD сетевая карта может называться по разному, в зависимости от производителя.


Выбираем версию интернет протокола, четвёртая версия IPv4 или шестая IPv6. Потом настраиваете сеть по DHCP или прописываете ip адрес, маску подсети и шлюз.


Настраиваем время, по времени локальной машины или выбираем свой часовой пояс.


Выбираем сервисы, которые будут запускаться при загрузке FreeBSD. Оставьте по умолчанию.


Можно добавить дополнительного пользователя(ей), назначить им права и их директории. Можно сделать всё это потом.


Установка приближается к завершению и Вы можете перед завершением перенастроить или донастроить некоторые параметры.

Краткое описание ОС FreeBSD.

Операционная система FreeBSD

Основные полезности:

  • Основная информация о системе Основной сайт Master FTP
  • Разрабатывается Калифорнийским Университетом Беркли, на основе системы BSD4.4-Lite под лицензией BSD
  • Портированна на архитектуры: x86-совместимые, DEC Alpha, AMD64, AI64, PC-98, UltraSPARC(r), а так же некоторые другие
  • Текущие разрабатываемые ветки FreeBSD 4.x (4.10) и 5.x (5.2.1, готовится к выходу 5.3)
  • Тип FreeBSD"шного elf"a - 9, программная совместимость с Linux(3), Solaris(6), SVR(0),
  • Хорошо разработанная система портов и пакетов (поставляется в дистрибутиве)
  • Разработка ведется при активном использовании системы CVS, можно легко закачать свежую версию системы и портов по CVS
История проекта FreeBSD достаточно хорошо приведена в "FreeBSD Handbook" (а так же в большом колличестве источников в интернете), поэтому я не буду тратить как свое, так и Ваше время на тему истории возникновения, создания и развития проекта

BSD-лицензия

The following is a BSD license template. To generate your own license, change the values of OWNER, ORGANIZATION and YEAR from their original values as given here, and substitute your own.

Note: The advertising clause in the license appearing on BSD Unix files was officially rescinded by the Director of the Office of Technology Licensing of the University of California on July 22 1999. He states that clause 3 is "hereby deleted in its entirety."
Note the new BSD license is thus equivalent to the MIT License, except for the no-endorsement final clause.

Regents of the University of California
= University of California, Berkeley
= 1998

In the original BSD license, both occurrences of the phrase "COPYRIGHT HOLDERS AND CONTRIBUTORS" in the disclaimer read "REGENTS AND CONTRIBUTORS".

Here is the license template:

Copyright (c) ,
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of the nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Перевод этой лицензии на русский язык.

Структурная организация разработки системы FreeBSD

Разработчики *BSD проектов с самого начала разработки внедрили систему CVS, благодаря этому всегда можно скачать свежую версию как системы, так и системы портов. Так же они разработали и внедрили трехуровневую организацию пользователей системы, так как она разрабатывается и обслуживается самими пользователями

User Community
Committers
CORE
  • User Community - Более 75% изменений, вносящихся в систему. В основном, предлагают патчи (исправления) к существующему коду
  • Committers - люди, имеющие право вносить изменения в дерево исходников
  • CORE - ([email protected]) - устанавливают административные права, выбираются из Committers

Ветки. -STABLE & -CURRENT

Так как понятие "FreeBSD" включает в себя ПОЛНУЮ систему, то вполне естественным было бы хранить в одном месте ядро, утилиты и библиотеки. Те, кто не знакомы с CVS, могут ознакомиться с ней (см. ссылки ниже) Откуда появились 2 ветки:
Stable - стабильная система, к ней выпускаются патчи и дополнения, но в нее уже не добавляются новые драйвера, не меняется архитектура и файлы системы в целом, например.
В ветку CURRENT, же могут вносится коррективы в изменения

Вполне логичен вопрос, а где CURRENT и STABLE, когда есть только "RELENG_?.*" и "HEAD" ?
Releng - Это стабильная система, на которую наложены только исправления безопасности и другие критические исправления.
HEAD - Это символическое имя для основной ветви разработки, FreeBSD-CURRENT. Используется по умолчанию, если тег не указан. В системе CVSup - этот тег представляется символом ``.""

Система портов и пакетов

Для удобства в систему FreeBSD была введена система портов. Она представляет собой дерево, состоящие из следующих категорий файлов:

Makefile те файлы, которые распознаются утилитой Make (это не GNU Make), для автоматической компиляции. Она содержит инструкции, необходимые для правильной компиляции программы, зависимости, конфликты, версию. С помощью этих файлов можно скачать пакет, его установить и зарегестрировать в системе, удалить пакет и еще много чего. Для более подробных сведений, просьба почитать Makefile или "FreeBSD Handbook"
pkg-descr краткое описание пакета. Обязательно содержит помимо описания, домашнюю страницу продукта, e-mail-адрес maintain"ера пакета (человека, ответственного за поддержание пакета, его обновление и пр.)
pkg-ptdst файлы, устанавливаемые пакетом
distinfo хэши(обычно, MD5) и размеры всех файлов для проверки целостности
каталог files содержит различные патчи к продукту
каталог work(при компиляции) рабочий каталог, в котором лежат исходные коды, компиллируемая программа и пр.

Да, естественно, компиллировать у себя - проблема еще та: не у всех стоят дома или на работе двухголовые монстры (двухпроцессорные материнские платы), где время сборки стремится к нулю, поэтому разработчики FreeBSD хранят у себя прекомпилированные (не все, см. ниже) на GENERIC-ядре пакеты, что существенно ускоряет установку.
При установки некоторых пакетов, необходимо согласиться с лицензионным соглашением, поэтому Вы все равно будете вынужденны их собирать у себя на машине.

Основные отличия от Linux

Эта таблица из книги "The Complete FreeBSD" ип оказывает основные различия между Linux и FreeBSD.

FreeBSD - ОС, которая разрабатывается только одной командой разработчиков, существует только один дистрибутив FreeBSD. Линукс - это ядро, которое разрабатывается Линусом Торвальдсом. Всё, что не относится к ядру, является частью дистрибутива; дистрибутивов на данный момент существует огромное количество.
FreeBSD является устойчивой системой. Лишь некоторые дистрибутивы Linux подходят для ответственных задач.
Как результат централизованной разработки, установка FreeBSD является относительно ясной и лёгкой. Простота установки Linux зависит от дистрибутива. При переходе от одного дистрибутива к другому придётся заново изучать процедуру установки.
FreeBSD остаётся относительно неизвестной, так как её распространение было ограничено некоторое время из-за исков AT&T. Линукс никогда не испытывала неприятностей из-за судебных исков и долгое время оставалась единственной свободно распространяемой UNIX-like OS.
Как результат неизвестности FreeBSD, для неё доступно очень немного коммерческого ПО. Для Линукс становится доступно всё больше коммерческого ПО.
FreeBSD менее популярна, из-за этого для неё доступно меньше драйверов для последних плат и устройств. Для любого недавно появившегося устройства или платы сразу появляется драйвер под Linux.
Из-за недостатка коммерческого ПО и драйверов, под FreeBSD есть эмуляция Linux, в которой можно запускать любые программы для Linux (говорят, работает даже быстрее). Относительно легко портировать драйверы для Линукс под FreeBSD. Линукс, видимо, просто не нужна эмуляция FreeBSD, поэтому её и нет.
Поступления во FreeBSD рассматривает и допускает в систему основной состав разработчиков. Процесс обновления кода отслеживается и координируется намного тщательнее, чем в Linux. Для большинства пользователей это позитивное явление, поскольку они уверены в том, что код был протестирован специалистами на отсутствие проблем. Любой пользователь имеет возможность поместить свой код в Linux.
Есть обвинения в сторону FreeBSD, что их код обновляется не так часто.

FreeBSD – свободно распространяемая, Unix-подобная операционная система с открытым исходным кодом. Является потомком AT&T Unix , ответвление BSD, образовавшееся в Калифорнийском университете в Беркли. Работает на PC-совместимых системах x86, в том числе Microsoft Xbox, а также на DEC Alpha, Sun UltraSPARC, IA-64, AMD64, PowerPC, NEC PC-98, ARM.

Краткая история операционной системы FreeBSD

Операционная система Unix, зародилась в 1969 году, в научно-исследовательском подразделении, компании AT&T, Bell Labs. В то время, монополия на компьютерную индустрию принадлежала государству, и кампания AT&T не могла продавать свое программное обеспечение. В результате, в 1976, AT&T решила бесплатно предоставить свое программное обеспечение и его исходные коды, университетской среде. Одни в этом случае получили возможность сэкономить значительные средства, и доступ к технологии, вторые, бесплатную площадку для экспериментов и целое поколение специалистов, выросших на их оборудовании. В конце 70-х годов, в компании AT&T, была создана рабочая группа поддержки Unix (Unix Support Group, USG), в последствии преобразованная в систему лабораторий Unix (Unix System Laboratories, USL). В задачи USL, входила раскрутка операционной системы Unix, в качестве коммерческого продукта, что с успехом и делалось, система продавалась предприятиям за большие деньги. Разработка системы продолжалась и в Bell Labs и в USG. Группа по исследованию компьютерных систем (Computer Systems Research Group, CSRG) Калифорнийского университета, участвовавшая в разработке и усовершенствовании системы Unix, стала центральным хранилищем исходных кодов и их улучшений. Группа собирала изменения, оценивала, упаковывала и передавала остальным обладателям действительной лицензии AT&T Unix. Кроме того, CSRG, работала с подразделением министерства обороны США, управлением перспективных исследовательских проектов (Advanced Research Projects Agency, ARPA), с целью реализации в Unix, различных функциональных возможностей, например, стек протоколов TCP/IP. Итоговая коллекция программного обеспечения Калифорнийского университета, получила название BSD (Berkley Software Distribution). Первый выпуск BSD был создан в 1977 году. В конце концов финансирование CSRG прекратилось, после чего, университетом в Беркли, было принято решение, открыть исходный код BSD для широкой публики. Первым дистрибутивом операционной , стала FreeBSD версии 1.0, выпущенная в 1993 году. За основу была взята лента 4.3BSD-Lite (""Net/2""), университета в Беркли, с многочисленными добавлениями из проекта 386BSD, и уже в мае 1994 года, выла выпущена FreeBSD 1.1 RELEASE. Тем временем, между компанией Novell и Калифорнийским университетом в Беркли назревал скандал, связанный с легальностью версии Net/2 из Беркли. Судебное разбирательство тянулось достаточно долго. В итоге, по условиям соглашения, достигнутого в ходе данного процесса, Калифорнийский университет признавал, что большие куски кода Net/2, были «унаследованным» кодом, права на который принадлежали компании Novell, ранее выкупившей эти права у компании AT&T. Взамен Novell давала «добро» на то, что версия 4.4BSD-Lite, будет объявлена как полностью свободной, а пользователям Net/2 будет настоятельно рекомендовано перейти на нее. Данное соглашение так-же касалось и FreeBSD, проекту было дано время, до конца июля 1994 года, для прекращения распространения продукта на основе Net/2. До истечения срока, было разрешено выпустить версию FreeBSD 1.1.5.1. Проекту предстояло почти все пересоздавать практически с нуля, взяв за основу, по сути не законченный проект 4.4BSD-Lite, и в ноябре 1994 года, была выпущена FreeBSD 2.0. Все это довольно запутанно, информация из различных источников как правило довольно противоречива. Очевидно одно, версия 4.4BSD-Lite, является бабушкой текущего кода FreeBSD а так-же прародительницей многих других операционных систем семейства BSD.

Другие BSD системы

4.4BSD-Lite породила не только операционную систему FreeBSD, но и массу других проектов, из которых можно выделить следующие:

NetBSD

- во многом подобна FreeBSD, а их команды делят между собой разработчиков и сам программный код. Основное назначение NetBSD, предоставить надежную и безопасную операционную систему, которая может быть перенесена практически на любую аппаратную платформу с минимальными усилиями. Так NetBSD работает на VAX, PocketPC, высокопроизводительных серверах SPARC и Alpha.

OpenBSD

- ответвилась от проекта NetBSD в 1996 году. Основным отличием от других BSD систем, изначальная ориентированность на повышенную безопасность. Одним из дочерних проектов OpenBSD, является пакет OpenSSH, использующийся практически всеми операционными системами и производителями аппаратного обеспечения.

MacOS X

- Стабильная операционная система с дружественным интерфейсом, использующаяся на компьютерах компании Apple, на процессорах PowerPC и Intel, так-же содержит в себе значительные участки кода BSD.

Операционные системы на основе FreeBSD:

  • DragonFly BSD
  • ClosedBSD
  • DesktopBSD
  • FreeSBIE
  • FreeNAS
  • Frenzy Live CD
  • Debian GNU/kFreeBSD
  • Gentoo/FreeBSD
  • IronPort AsyncOS - защитные устройства
  • Juniper Networks JunOS - роутеры Juniper
  • MidnightBSD
  • Nokia IPSO - защитные устройства Nokia IP
  • PC-BSD
  • PicoBSD
  • RofreeSBIE
  • The Dark Star
  • TrueBSD
  • m0n0wall
  • pfSense
  • Paxym FreeBSD для Octeon Cavium_Networks

Операционные системы на основе NetBSD:

  • OpenBSD – ответвление от NetBSD 1.0, акцент на активной безопасности и интегрированной криптографии
  • BlackBSD
  • Force10 Networks FTOS, операционная система для роутеров/свичей Force10 TeraScale E-Series
  • Debian GNU/NetBSD
  • Gentoo/NetBSD
  • Jibbed
  • PolyBSD/pocketSAN
  • Redback Networks SEOS, операционная система для роутеров серии Redback SmartEdge

Операционные системы на основе OpenBSD:

  • Quetzal
  • Anonym.OS
  • FuguIta
  • BSDAnywhere
  • Gentoo/OpenBSD
  • MirOS MirOS BSD
  • OliveBSD

Операционные системы на основе Dragonfly BSD:

Firefly BSD

Лицензия BSD

Лицензию BSD, можно считать самой свободной в плане ограничений налагаемых на пользователя, по сравнению с другими лицензиями на свободное программное обеспечение. Данная лицензия существует в двух вариантах, оригинальная и измененная. В измененную был добавлен дополнительный, 3-й пункт, гласящий: * * Ни название <Организации>, ни имена ее сотрудников не могут быть * использованы в качестве поддержки или продвижения продуктов, * основанных на этом ПО без предварительного письменного разрешения. Ниже приведен текст оригинальной лицензии BSD. * Copyright 1994-2009 The FreeBSD Project. All rights reserved. * * Разрешается повторное распространение и использование как в виде исходного * кода, так и в двоичной форме, с изменениями или без, при соблюдении * следующих условий: * * * При повторном распространении исходного кода должно оставаться * указанное выше уведомление об авторском праве, этот список условий и * последующий отказ от гарантий. * * При повторном распространении двоичного кода должна сохраняться * указанная выше информация об авторском праве, этот список условий и * последующий отказ от гарантий в документации и/или в других * материалах, поставляемых при распространении. * * ЭТА ПРОГРАММА ПРЕДОСТАВЛЕНА ВЛАДЕЛЬЦАМИ АВТОРСКИХ ПРАВ И/ИЛИ ДРУГИМИ * СТОРОНАМИ "КАК ОНА ЕСТЬ" БЕЗ КАКОГО-ЛИБО ВИДА ГАРАНТИЙ, ВЫРАЖЕННЫХ ЯВНО * ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ ИМИ, ПОДРАЗУМЕВАЕМЫЕ * ГАРАНТИИ КОММЕРЧЕСКОЙ ЦЕННОСТИ И ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. НИ В * КОЕМ СЛУЧАЕ, ЕСЛИ НЕ ТРЕБУЕТСЯ СООТВЕТСТВУЮЩИМ ЗАКОНОМ, ИЛИ НЕ УСТАНОВЛЕНО * В УСТНОЙ ФОРМЕ, НИ ОДИН ВЛАДЕЛЕЦ АВТОРСКИХ ПРАВ И НИ ОДНО ДРУГОЕ ЛИЦО, * КОТОРОЕ МОЖЕТ ИЗМЕНЯТЬ И/ИЛИ ПОВТОРНО РАСПРОСТРАНЯТЬ ПРОГРАММУ, КАК БЫЛО * СКАЗАНО ВЫШЕ, НЕ НЕСЁТ ОТВЕТСТВЕННОСТИ, ВКЛЮЧАЯ ЛЮБЫЕ ОБЩИЕ, СЛУЧАЙНЫЕ, * СПЕЦИАЛЬНЫЕ ИЛИ ПОСЛЕДОВАВШИЕ УБЫТКИ, ВСЛЕДСТВИЕ ИСПОЛЬЗОВАНИЯ ИЛИ * НЕВОЗМОЖНОСТИ ИСПОЛЬЗОВАНИЯ ПРОГРАММЫ (ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ * ПОТЕРЕЙ ДАННЫХ, ИЛИ ДАННЫМИ, СТАВШИМИ НЕПРАВИЛЬНЫМИ, ИЛИ ПОТЕРЯМИ * ПРИНЕСЕННЫМИ ИЗ-ЗА ВАС ИЛИ ТРЕТЬИХ ЛИЦ, ИЛИ ОТКАЗОМ ПРОГРАММЫ РАБОТАТЬ * СОВМЕСТНО С ДРУГИМИ ПРОГРАММАМИ), ДАЖЕ ЕСЛИ ТАКОЙ ВЛАДЕЛЕЦ ИЛИ ДРУГОЕ * ЛИЦО БЫЛИ ИЗВЕЩЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ.
Вступление незапланированное

Он пришел с лицом убийцы,
С видом злого кровопийцы,
И сказал, что он мой критик,
И добра желатель мой.
Что ему, мол, стиль мой низкий
Эстетически не близкий.
Я фуфло, а он Белинский,
Весь неистовый такой.

Тимур Шаов,
Разговор с критиком

К сочинению настоящего вступления меня побудило большое количество откликов на первые три статьи этого цикла. Которые можно разделить на положительные и критические. Вот я и решил ответить на все, так сказать, оптом.

С откликами первой группы все понятно: могу только поблагодарить за поддержку. Конечно, все свои сочинения писались в первую очередь ради собственного удовольствия, однако приятно, что еще кому-то интересно их читать.

На голословную критику я ответил бы так: уважаемые господа, если вы полагаете, что разбираетесь в рассматриваемых вопросах лучше меня (во что я готов охотно поверить), почему бы вам не уделить толику времени, проводимого в форумных флеймах, просвещению широких народных масс? И не сочинять бы то, что нужно, и так, как нужно, на соответствующие темы? Желательно — русским литературным языком, с минимумом идио-мат-тических выражений. Я же с удовольствием возьму на себя роль внимательного читателя, впитывая всю представленную вами полезную информацию. И критика — с позиций русского литературного языка (интуиция мне посказывает, что поводов для оной будет более чем достаточно).

Тем не менее, должен добавить, что очень признателен за всю критику конструктивного характера. На которую надеюсь и впредь.Просто вступление

В настоящей заметке речь пойдет о способе физической организации блоков дискового раздела, обеспечивающем возможность записи, хранения и манипулирования файлами, специфичном для FreBSD вообще и 5-й ее ветки в особенности.

Файловая система FreeBSD принадлежит к Unix-семейству файловых систем и обладает множеством общих для всех них черт. Она носит название UFS, в 5-й ветке используется ее усовершенствованная разновидность — UFS2. Для начала рассмотрим общие принципы устройства той и другой, а потом обратимся к рассмотрению особенностей, свойственных UFS2.

Для файловой системы FreeBSD (и вообще BSD-систем, начиная с 4.2BSD) можно встретить и еще одно наименование — FFS (Fast File System, обозначение «быстрая» введено в сравнении с файловой системой Unix System V — s5). В доступной литературе мне не удалось обнаружить четкой формулировки их взаимоотношения. У меня сложилось впечатление, что FFS — это родовое обозначение файловых систем всех операционок BSD-клана (Free-, Net-, OpenBSD и BSDi), тогда как UFS (и UFS2) — имя конкретной реализации для FreeBSD. Хотя и в NetBSD ныне (начиная с версии 1.6 и выше) наряду с традиционной FFS может использоваться UFS2. В общем, однозначно осветить этот вопрос затрудняюсь, и потому был бы признателен за разъяснение.

Как уже было выяснено ранее , дисковая партиция — это, говоря метафорически, группа смежных цилиндров, разбитых на физические блоки по 512 байт. Партиция, несущая на себе файловую систему UFS, разделяется на три самостоятельные области (от начала группы цилиндров к ее концу) — суперблок, индексную таблицу и область данных. Рассмотрение их целесообразно начать с конца списка, то есть с области данных.Блоки данных

Область данных (она занимает подавляющий объем пространства партиции) образована блоками файловой системы. Подобно физическому блоку, блок файловой системы (именуемый также блоком логическим) представляет собой квант информации, доступный за одну операцию чтения/записи, но уже не дисковой головки, а операционной системы. Очевидно, что логический блок не может быть меньше физического (то есть 512 байт), и размер его обязательно кратен целому числу последних.

Понятие логического блока введено для повышения производительности дисковых операций. Не требует доказательства утверждение, что скорость обмена данными квантами по 1 Кбайт будет выше, чем 512-байтными, 2-килобайтными — еще быстрее, и так далее. И потому с точки зрения быстродействия файловых операций выгоден максимальный размер логического блока файловой системы.

С другой стороны, увеличение размера логического блока ведет к непроизводительному расходу дискового пространства за счет т.н. внутренней фрагментации данных. Ее не следует путать с внешней фрагментацией, для борьбы с которой на файловых системах FAT-семейства были в свое время мобилизованы всякого рода speeddisk"и с комбатантами: вследствие особенностей алгоритмов управления данными файловые системы Unix-семейства настолько мало подвержены внешней фрагментации, что о преодолении оной вообще практически не говорят.

Внутренняя же фрагментация выражается в том, что данные файлов, размер которых меньше блока файловой системы, все равно занимают его целиком. Также целый блок потребуется и для хранения файловых хвостов, то есть остатков сверх объема, кратного размеру логического блока. Для борьбы с фрагментацией в UFS, пардон за тавтологию, введено понятие фрагмента — логической части блока файловой системы, которая может быть записана или считана независимо от остальной его части.

Ясно, что размер фрагмента все равно не может быть меньше физического блока. При этом UFS накладывает на него и встречное ограничение — минимальный размер фрагмента определяется в 1/8 логического блока. Другие же возможные значения — 1/4 и 1/2 блока файловой системы (очевидно, что выделение фрагмента в размере блока равносильно отказу от фрагментации блока вообще, хотя это, как будто бы, не запрещено).Inodes

Каким образом определяется принадлежность блока данных тому или иному файлу? К помощью индексной таблицы, именуемой также таблицей файловых дескрипторов или таблицей inodes. Она образована некоторым (конечным) количеством записей фиксированной длины (128 Кбайт в UFS, 256 — в UFS2), каждая из которых однозначно соответствует одному файлу, как реально существующему, так и только могущему быть созданным.

Такая запись индексной таблицы носит название inode, которое мы и оставим за нею. Ибо все известные мне переводы этого термина, вроде информационных узлов или индексных дескрипторов, выглядят очень коряво. Кроме того, слово «дескриптор» фигурирует еще и в контексте «дескриптор файла», под чем подразумевается идентификатор (уникальный, иначе что же он будет идентифицировать?) файла, используемого неким процессом (что уже к файловым системам не имеет ни малейшего отношения — это сфера подсистемы управления процессами). И эти дескрипторы — не имеют меж собой ничего общего. Так, inode c идентификатором 2 (а это всегда идентификатор корневого каталога файловой системы) и дескриптор файла с номером 2 (а им для любого процесса будет стандартное устройство вывода сообщений об ошибках, /dev/stderr) ни коим образом друг с другом не соотносятся (хотя об этом почему-то не любят говорить вслух).

Однако я отвлекся — вернемся к нашим inodes. Каждый член этой таблицы содержит так называемые метаданные файла. Для реально существующего файла они включают в себя:

  • уникальный идентификатор inode (и, соответственно, файла, метаданные которого он содержит) — это просто счетчик создаваемых файлов в файловой системе);
  • тип файла — это может быть каталог, символическая ссылка, файл устройства, именованный канал или сокет, или же обычный (то есть не относящийся ни к какому из перечисленных типов) файл;
  • размер файла в байтах;
  • количество ссылок на файл (к этому вопросу придется вернуться чуть ниже);
  • адреса логических блоков и их фрагментов, составляющих файл;
  • число занятых им блоков;
  • атрибуты файла — принадлежности, доступа, времени (и это еще не раз будет предметом подробного рассмотрения).

А вот чего в inode не обнаружить никакими силами — так это имени соответствующего ему (или ей? — мне почем-то кажется, что inode, вопреки грамматике, — женского рода). В любой книжке про Unix не устают повторять (и я не отступлю от этой традиции), что имя файла — атрибут не самого файла, а каталога, в который он входит. Поскольку понимание этого потребуется при знакомстве с механизмом Soft Updates в следующей заметке, сделаю маленькое отступление для прояснения вопроса именования файлов во FreeBSD (и вообще в Unix).

При описании содержания таблицы inodes вскользь было упомянуто поле типа файла. Так вот, в Unix все файлы (а все, что в Unix имеется вообще, включая физические устройства, для системы представляется в виде файлов) делятся на две группы — каталоги и прочие. Прочие файлы могут служить для различных целей (хранения данных и исполняемых программ, быть символическими ссылками, описывать устройства или средства взаимодействия процессов — обо всем этом мы поговорим своевременно или несколько позже). Назначение же каталогов — единственное, но оченно важное: быть хранителями имен входящих в них файлов, которым однозначно поставлены в соответствие идентификаторы inodes, хранящих метаданные этих файлов.

То есть имя файла существует только в списке каталога и нигде более в системе. А создание файла — это не только заполнение относящейся к нему записи в индексной таблице и заполнение указанных в ней блоков данных, но и внесение записи вида «идентификатор — имя_файла» в область данных какого-либо каталога. А каталог, как и любые другие файлы, имеет свои метаданные в таблице inodes и свою область данных. И, в свою очередь, имя его вместе с идентификатором inode входит в каталог более высокого уровня, и так — вплоть до корня файловой системы. В поле количества ссылок inode создаваемого файла устанавливается минимально возможное значение, равное единице, поскольку любой файл входит по меньшей мере в один каталог, иначе он просто не будет доступен системе — файлы с нулевым количеством ссылок для нее как бы не существуют (и на самом деле их inodes и блоки данных со временем неизбежно будут перезаписаны физически).

На самом деле один и тот же набор данных и метаданных может быть приписан к произвольному количеству каталогов в пределах одной файловой системы и даже фигурировать под разными именами в одном каталоге — в этом случае количество ссылок на него будет соответствующим. А вот минимальное количество ссылок на каталог равно двум — так как запись о нем существует как в родительском каталоге (..), так и в текущем (. — то есть в самом себе). И каждый вложенный подкаталог увеличивает счетчик ссылок каталога на единицу.

Ссылки, с помощью которых связывается имя файла как элемент каталога с его записью в таблице inodes и блоками образующих файл данных, именуются еще жесткими (hardlinks, хорошим русскоязычным эквивалентом было бы слово «связь», но оно как-то не прижилось). Посредством жестких ссылок одному и тому же набору данных или исполняемой программе можно придать произвольное количество имен, которые никто не запрещает включить в один и тот же или разные каталоги. Единственное условие для этого — все эти имена-дублеры должны находиться в каталогах единой файловой системы, то есть располагаться на одной дисковой партиции. И в одной из последующих заметок станет ясно, почему.

Забегая несколько вперед, отмечу, что жесткие ссылки нужно отличать от ссылок символических (symlinks, часто говорят просто links — почему и резонно было бы сохранит за ними обозначение ссылок, а hardlinks по русски именовать связями). Символические ссылки — файлы особого типа, отдаленно сходные с ярлыками в Windows или shadow в OS/2, которые сами по себе никаких данных не содержат, а просто ссылаются на метаданные и данные другого файла (который может локализоваться и за пределами данной файловой системы).

Для файлов несуществующих свободные записи в таблице inodes просто резервируются. А поскольку количество этих записей — конечно, именно объем индексной таблицы и определяет, сколько файлов реально может быть создано в данной файловой системе. Исчерпание свободных записей в ней приводит к тому, что, вне зависимости от объема свободного дискового пространства, ни одного нового файла создать не удастся.Суперблок

Однако сведений об объеме индексной таблицы внутри нее не обнаруживается. Ибо место их размещения — тот самый суперблок, который идет первым в нашей партиции (вообще-то первым в любой партиции будет загрузочный блок, но реально он занят только в загрузочном же разделе — во всех остальных для него просто зарезервировано место). Кроме этого, в суперблоке же записывается размер блока файловой системы и их суммарное количество, число блоков данных, размер блокового фрагмента и их число в блоке, число блоков, реально занятых файлами, объем партиции, перманентно резервируемый как свободный, и еще множество характеристик файловой системы, о которых сейчас говорить неуместно.

На самом деле описанное выше несколько упрощено. Специфика файловых систем BSD-клана заключается в том, что реально дисковая партиция разбивается на части фиксированного объема (зависящего от объема раздела). Это т.н. группы цилиндров, каждая из которых имеет свою копию суперблока (чем обеспечивается устойчивость к механическим повреждениям диска), свой блок группы цилиндров, оную описывающий (в нем, в частности, содержатся карты свободных/занятых inodes и карты свободных/занятых блоков данных), собственную таблицу inodes и область блоков данных. Это имеет целью размещение inodes и относящихся к ним блоков данных максимально близко друг к другу, что, кроме повышения производительности, влечет за собой и сведение к минимуму той самой внешней фрагментации данных, о которой говорилось выше.Практика форматирования

Таким образом, процесс создания файловой системы сводится к а) выделению суперблока и записи общих параметров файловой системы, б) созданию таблицы inodes (в UFS, в отличие от некоторых современных файловых систем для Linux, все inode создаются раз и навсегда, а не выделяются динамически, по мере надобности), и в) разметке блоков в области данных. Из за все это, подобно незабвенной Катерине Матвевне, отвечает одна-единственная программа, именуемая незамысловато — newfs.

Команда newfs требует единственного аргумента — имени файла форматируемой партиции, например, $ newfs /dev/ad0s1a

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

Опция -b определяет размер логического блока файловой системы. Минимальный размер его — 4096 байт, максимальный, насколько я знаю, определяется только здравым смыслов. А с точки зрения оного, «умолчальное» значение в 16384 байт представляется разумным.

Опция -f устанавливает размер фрагмента блока. Рекомендуется определить его в 1/8 размера блока, что по умолчанию и составит 2048 байта. Значения в 1/4 или 1/2 блока также допустимы, но очень не рекомендуются в документации.

Опция -i очень важна — она-то косвенно и устанавливает количество записей в индексной таблице (то есть максимальное количество файлов в файловой системе). Значение этой опции дается в байтах, отводимых на элемент индексной таблицы, и должно быть кратным размеру блокового фрагмента. Значение по умолчанию — учетверенный объем оного, что определяет средний прогнозируемый размер файла (8096 байт).

Еще одна интересная опция — это -m, значение которой указывается в процентах от суммарного объема дискового пространства отведенного на партицию. И представляет собой объем, резервируемый от записи обычными пользователями (но не root"ом — тот всегда имеет возможность записать свои действия на диск). Он определяется потому, что быстродействие файловых операций в UFS просто катастрофически падает, когда количество свободных блоков в области данных близко к исчерпанию (проверено на практике). И потому некий объем файловой системы резервируется принудительно (по умолчанию — 8%).

С этой опцией связана еще одна, -o, которая определяет алгоритм выделения свободных блоков данных при создании новых файлов. Дело в том, что UFS в состоянии размещать их двумя способами. Первый — методом плотнейшей упаковки с целью минимизации внутренней фрагментации и экономии дискового пространства. И называется он оптимизацией по объему (опция -o принимает значение space). Второй же метод (-o time) обеспечивает быстрейшее выделение свободных блоков с целью увеличения скорости создания файлов (то есть вопреки принципу Леонида Ильича — «экономика должна быть экономной»). Так вот, умолчальное значение -o коррелирует со значением -m: если оно больше или равно 8%, применяется оптимизация по времени, если меньше — по объему. Хотя явным образом можно указать прямо противоположные значения.

Вообще-то, все приведенные выше опции очень важны, интересны и полезны для общего образования, однако пользователю вряд ли придется к ним прибегать: их значения по умолчанию, как и почти все во FreeBSD, разумны и приемлемы в подавляющем большинстве случаев. А вот опция -U при запуске newfs по умолчанию не задействуется. Обеспечивает же она поддержку штуки крайне полезной — механизма Soft Updates, способствующему (парадоксально, но — правда) как повышению быстродействия файловых операций, так и устойчивости файловой системы.

Тема Soft Updates, однако, столь интересна сама по себе, что заслуживает отдельного обсуждения, чем мы и займемся в следующем разделе этой же заметки. А пока под рассмотрим отличия текущей разновидности файловой системы FreeBSD, UFS2, от ее предшественницы — UFS.

Все, что было сказано выше о файловой системе FreeBSD, относилось в равной мере к обеим ее разновидностям. Главная особенность UFS2 — то, что она 64-разрядная и, соответственно, способна работать с дисковыми объемами более терабайта (интересно, скоро это станет актуальным для настольного пользователя? Судя по темпам дискобольства, срок этот не за горами). В этой связи напомню, что длина записи в таблице inodes в UFS2 удвоилась, и равна 256 байт.

Далее, в UFS2 включена поддержка расширенных атрибутов файлов, в частности, ACL, но это существенно для сетевых администраторов. А вот что может заметить пользователь — то, что создание новой файловой системы происходит быстрее (на больших дисковых разделах это действительно заметно, что называется, органолептически). Происходит это за счет т.н. «ленивой» инициализации inodes, хотя динамического их выделения, как, например, в XFS, и нету.

А вообще, с точки зрения пользователя, различий между UFS и UFS2 можно и не увидеть. Тем не менее, отказываться от UFS2 также оснований нет. Тем более, что и newfs, о которой говорилось выше, и sysinstall, о которой разговор впереди, по умолчанию ныне (в 5-й ветке) создают именно ее. Если же требуется создать просто UFS (для совместимости с версиями прежних веток, UFS2 не поддерживающих), это нужно сделать принудительно, указав для newfs опцию -O 1.Парадокс Soft Updates

При всех своих многочисленных достоинствах, файловая система FreBSD не может похвастаться одним — быстродействием. И это не смотря на то, что в основе ее лежит обще-берклианская FFS — быстрая файловая система. Однако эпитет здесь выступает в сравнении с прежней Unix"овой файловой системой — s5, все вариации которой, как говорят знающие люди, отличались исключительной задумчивостью. Если же сравнить производительность файловой системы FreeBSD с родной для Linux Ext2fs — оно окажется не в пользу первой, особенно на операциях с большим количеством мелких файлов.

Почему? Нетрудно ответить: вследствие принятого во FreeBSD по умолчанию режима обращения с измененными файлами. Большинство нормальных файловых систем способны функционировать в одном из трех режимов:

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

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

Так вот, в файловой системе Linux (конкретно — в ext2fs, Linux нынче за родные признает много файловых систем) по умолчанию задействуется полностью асинхронный режим работы, а во FreeBSD — смешанный. Конечно, это определяется при монтировании файловых систем, и с помощью соответствующих опций команды mount (что я покажу в соответствующей заметке) файловую систему FreeBSD можно заставить работать полностью асинхронно. Однако резонные люди не рекомендуют это делать категорически — и, вероятно, имеют к тому основания (одна из причин к тому станет ясной в конце заметки).

И действительно, в умолчальном режиме файловая система FreeBSD (в сравнении с той же ext2fs) демонстрирует замечательную устойчивость. За два с половиной года общения с этой ОС (а из них полтора пришлось на селянские условия, когда неожиданное отключение электричества были вещью более чем обычной) мне ни разу не пришлось столкнуться с проблемами из-за аварийного завершения сеанса работы (в Linux"е такие проблемы, до внедрения журналируемых файловых систем, возникали сплошь и рядом).

Однако цена за это — быстродействие. Вернее, отсутствие оного. И проявляется это особенно наглядно именно при копировании большого количества мелких файлов (процедура, весьма обычная при работе с текстовыми, по преимуществу, материалами). Действительно, при этом в синхронном режиме обновляется огромное количество файловых inodes, тогда как собственно данных изменяется ничтожное по объему количество, и их кэширование доставляет мало радости. В любом случае копирование набранных в текстовом редакторе статеюшечек размером с эту заметку и суммарным объемом в стандартный CD затягивается на вполне чувствительное время (в отличие от Linux"а, где подобная операция выполняется внешне мгновенно — другое дело, что индикатор активности жесткого диска может еще долго подмигивать).

Далее, не смотря на всю свою фактическую устойчивость, файловая система FreeBSD, не будучи журналируемой, сама по себе не имеет механизма гарантии собственной целостности. То есть: при аварийном завершении работы, когда в файловой системе не устанавливается т.н. бит чистого размонтирования (clean byte — это один из важных параметров файловой системы, записываемый в ее суперблоке при корректном выходе из системы), в ходе процедуры последующей загрузки принудительно вызывается программа проверки ее на предмет нахождения противоречий между метаданными и областями данных (и их устранения). А при современных объемах дисков (и, соответственно, файловых систем на них) такая проверка может затянуться на часы. Конечно, это особенно прискорбно для серверов, но и на настольной машине доставляет мало положительных эмоций.

Проблема нарушения целостности существует и в Linux"е (по указанным выше причинам — даже в большей мере). И в Linux"е с нею борются посредством журналирования, то есть опережающей регистрации изменений метаданных (и, в некоторых случаях, даже и данных). Во FreeBSD же борьба за целостность файловой системы велась исторически по двум направлениям. Второе из них — появившаяся в 5-й ветке фоновая проверка целостности файловой системы, допускающая начало нормальной работы сразу после аварийной перезагрузки машины. Поскольку это — одно из принципиальных новшеств, скажу пару слов по сему поводу.

Для проверки целостности файловой системы во FreeBSD используется утилита fsck (одноименная есть и в Linux — для ext2fs, есть аналогичные инструменты и для прочих файловых систем). Она может быть запущена пользователем (вернее, root"ом) из командной строки. Однако схема старта системы предусматривает ее автоматический запуск, если в какой-либо из автоматически монтируемых файловых систем не обнаружен бит чистого размонтирования. А поскольку fsck — побитная операция, во избежание тяжких последствий она обычно проводится на размонтированных файловых системах. Что и было во FreeBSD вплоть до версии, как минимум, 4.6 (более старших из 4-й ветки уже не видел). А вот в версиях 5-й ветки, начиная с первой, более чем годичной давности, developer"ской, проверка диска может выполняться на смонтированной и готовой к работе файловой системе. И, соответственно, в фоновом режиме после полной загрузки системы, параллельно с выполнением обычной работы. Казалось бы — пустячок, а приятно: затрудняюсь сказать, сколько заняла бы полная проверка обычных ныне 80- или 120-гигабайтных винтов.

Однако первым по времени реализации способом борьбы за целостность файловой системы был механизм Soft Updates, обеспечивающий одновременно (вернее, главным образом) и повышение быстродействия файловых операций.

Сам по себе механизм Soft Updates (оставим этот термин без перевода — варианты оного типа «мягких обновлений» не только не блещут литературным изяществом, но и сути дела не проясняют) детально описан в специальной статье Макказика и Ганджера, смысла пересказывать которую я не вижу (благо она имеется в ). В двух же словах суть этого механизма — в сведении к минимуму синхронных операций записи без явно асинхронного манипулирования метаданными, с одной стороны, но и без предварительного журналирования метаданных (как в файловых системах типа ReiserFS или XFS) — с другой.

Реализуется это, опять же говоря довольно грубо (детали реализации моему пониманию недоступны — каюсь) за счет так называемых зависимостей обновления. Что такое эти зависимости — интуитивно ясно из примера создания нового (для простоты — пустого) файла. Для этого требуется:

  • запись в таблице inodes, с заполнением полей типа файла, его идентификатора, счетчика ссылок (со значением 1 — каждый файл должен принадлежать как минимум одному каталогу), ну и прочих там — прав доступа в соответствие с их маской, и так далее;
  • изменение карты свободных/занятых inodes в блоке группы цилиндров (соответствующий новому файлу inode должен быть помечен в ней битом занятости);
  • внесение записи вида «идентификатор — имя_файла» в структуру каталога, в котором новый файл создается, что обеспечивает ту самую единственную ссылку в соответствующем поле inode файла.

С точки зрения целостности файловой системы, эти операции должны быть выполнены именно в этой последовательности. То есть наличие в каталоге имени файла с идентификатором незаполненного (еще не созданного или уже уничтоженного) inode — явный непорядок: именно для исправления такого рода безобразий и запускается программа проверки диска после аварийного завершения сеанса.

Выполнять связанные зависимостями операции обновления в синхронном режиме — долго (каждая потребует своего обращения к диску), в асинхронном — нет гарантии сохранения последовательности (обновления в кэше могут быть записаны тогда, когда бог на душу положит). Так вот, механизм Soft Updates обеспечивает, с одной стороны, контроль за последовательностью выполнения зависимых обновлений (что способствует целостности состояния файловой системы), с другой — группирует их в единую атомарную операцию синхронного обращения к диску, за счет сокращения числа коих и растет производительность. В этом, насколько я понимаю, и состоит объяснение парадокса Soft Updates — неожиданного увеличения и надежности, и быстродействия.

В общем, постарался объяснить, как смог и как сам понял — за подробностями к упомянутой статье. В дополнение только замечу — во избежание недоразумений: механизм Soft Updates не только не гарантирует сохранности пользовательских данных, не сохраненных по раздолбайству юзера перед крахом системы, но и не преследует такой цели. Его призвание — следить, чтобы файловая система всегда представала по возможности в непротиворечивом виде. Впрочем, то же можно сказать и о любой журналируемой файловой системе — ни одна из них не страхует от ошибок пользователя...

Теперь посмотрим, как же Soft Updates можно использовать. Если создавать файловые системы через sysinstall — все просто: там по умолчанию включение этого механизма уже давно (версии примерно с 4.3) предусмотрено для всех файловых систем, кроме корневой. Последнее аргументируется соображениями безопасности, которые (для настольной машины) не кажутся мне убедительными — так что я включаю ее и здесь. Хотя именно для корневой файловой системы Soft Updates не особо нужна: при правильном разбиении диска и грамотной эксплуатации запись в нее (после первичной установки) происходит только при инсталляции нового ядра, а часто ли это проделывается в нормальных условиях?

При создании же файловых систем вручную, командой newfs, Soft Updates автоматически не включается: это нужно сделать, как уже говорилось, указанием опции: $ newfs -U /dev/ad#s#?

Впрочем, если она при форматировании была забыта — ничего страшного: для всех разделов, кроме корневого, включить Soft Updates легко с помощью команды tunefs. Для этого следует перейти в однопользовательский режим (очень рекомендуется; я как-то обошелся без этого, но лучше следовать советам резонных людей), что делается командой $ shutdown now

Размонтировать все файловые системы, кроме корневой (с ней все равно этот номер не пройдет) командой $ umount -Af

Дать команду tunefs -n enable /dev/ad#s#?

для каждого раздела, в файловой системе которого требуется Soft Updates. И, наконец, повторением команды $ shutdown now

В сфере современного программного обеспечения с открытыми исходниками слово «Linux» практически превратилось в синоним понятия «операционная система», хотя мало кто знает о том, что в действительности же это далеко не единственная на сегодняшний день ОС типа Unix, исходные коды которой являются доступными для всех.

В соответствии с данными, полученными от IOSC, в 1999 году практически треть всех машин, которые были подключены к интернету, работали на основе Linux, в то время как практически 15% применяли операционную систему FreeBSD. Что это за система, и по сегодняшний день знают лишь немногие современные пользователи ПК, несмотря на все ее преимущества и широкое распространение в свое время. Стоит отметить тот факт, что многие мировые лидеры в сфере Web-услуг активно работают на данной системе. В частности, стоит отметить, что на сегодняшний день система Yahoo основана на FreeBSD. Что это дает пользователям, сами они вряд ли знают и даже задумываются, но владельцы системы уверены, что это правильное решение.

Что представляет собой BSD?

BSD расшифровывается как Berkeley Software Distribution. Именно так в своем время называлось программное обеспечение, которое в Беркли распространял в исходных кодах. При этом стоит отметить тот факт, что изначально дополнение к стандартной операционной системе UNIX - это единственное, что представляло собой FreeBSD. Что это было по сравнению с нынешней версией системы?

На основе версии 4.4 BSD-Lite создавалось несколько операционных систем, имеющих открытые исходные коды. В частности, состав этих систем включал в себя разработки других проектов, среди которых отдельного внимания заслуживает проект GNU.

Структура

Преимущества и особенности, которые имеет данная система, отличаются структурой FreeBSD. Что это за структура:

  • Ядро, которое предназначается для тщательной планировки всех процессов, управления памяти, работы с различными устройствами, а также поддержки многопроцессорных систем. При этом следует отметить тот факт, что, в отличие от ОС Linux, в данном случае есть несколько типов ядер BSD, которые отличаются разными особенностями.
  • Библиотека С, которая используется в качестве основного системного интерфейса программирования, причем основывается на коде из Беркли, а не из проекта GNI.
  • Всевозможные файловые утилиты, компиляторы, оболочки, редакторы связей, а также другие программы конечного пользователя, при этом некоторые из них основываются на коде GNU.
  • FreeBSD UNIX - операционная система, включающая в себя X Window, которая отвечает непосредственно за Данная система применяется в преимущественном большинстве версий BSD и официально поддерживается проектом X.Org. Данная система позволяет пользователю делать выбор из нескольких графических оболочек, а также целого ряда легких оконных менеджеров.
  • Большое количество других системных и прикладных программ.

Что такое настоящий UNIX?

Стоит отметить, что сама по себе FreeBSD UNIX - операционная система всегда разная. И типы таких систем не являются клонами друг друга. Они представляют собой лишь потомков общего предка - традиционной операционной системы UNIX. Данный факт может несколько удивить, тем более если вспомнить, что разработчик этой операционной системы никогда не раскрывал широкой публике коды своих разработок.

BSD - это UNIX?

И действительно, операционная система UNIX никогда не представляла собой программное обеспечение, имеющее открытый исходный код, в связи с чем BSD определенно нельзя будет назвать системой UNIX, хотя бы потому, что графический интерфейс операционных систем является разным. Однако в то же время компания, которая разрабатывала UNIX, активно пользовалась чужими разработками, и в частности это относится к программному обеспечению, которое разрабатывалось организацией CSRG.

Первоначально дистрибутивы BSD, а также графический интерфейс операционных систем представлял собой комплексы пользовательских программ, и такая ситуация продолжалась ровно до тех пор, пока компания не заключила контракт с DARPA, подчиненным Цель данного контракта - это обновление различных коммуникационных протоколов, на которых поддерживалась компьютерная сеть агентства.

В течение 80-х годов сформировалось несколько компаний, занимающихся производством рабочих станций, при этом стоит отметить, что многие из них приобретали лицензии на использование UNIX вместо того, чтобы пробовать разрабатывать с нуля собственное программное обеспечение. В частности, стоит выделить компанию Sun, которая поступила таким образом и решила на основе версии 4.2BSD в конечном итоге выпустить собственную операционку, которая называлась SunOSTM. Когда же компания AT&T, занимающаяся разработкой UNIX, в конечном итоге решила заняться коммерческой продаже собственной операционной системы, появилась довольно аскетичная реализация - System III, за которой с течением времени последовал также выход системы System V.

По какой причине эта операционная система остается невостребованной?

Есть некоторый ряд причин, по которым сегодня FreeBSD 10 пользуется не таким широким спросом:

  • Разработчики чаще всего интересуются качеством собственного кода, причем больше его шлифовкой, а не рекламой.
  • По большому счету, популярность Linux является следствием целого ряда внешних факторов относительно данного проекта, в частности, это касается средств массовой информации, а также компаний, которые решили сформировать собственный бизнес, предоставляя услуги пользователям этой операционной системы.
  • Разработчики BSD в преимущественном своем большинстве являются более опытными по сравнению с разработчиками Linux, в связи с чем они гораздо меньше внимания уделяют тому, чтобы облегчить жизнь простым пользователям. Другими словами, настройка FreeBSD для обычного пользователя является более сложной, чем
  • В 1992 году разработчик UNIX решил подать в суд на компанию BSDI, которая занималась поставкой операционной системы BSD/386. Основной пункт обвинения в данном случае был тем, что в ОС содержался закрытый код, принадлежавший истцу, и вроде бы дело в конечном итоге было улажено за пределами суда в 1994-м, но целый комплекс вторичных тяжб даже в наши дни отравляет жизнь многим людям.
  • Есть мнение, что сами по себе проекты BSD различаются и при этом могут даже конфликтовать между собой. Данное мнение основывается на событиях, которые происходили достаточно давно.

Что лучше - Linux или BSD?

На сегодняшний день чаще всего выбирают, устанавливая сервер Apache, FreeBSD вместо традиционного для большинства других систем Linux. Для среднего пользователя разница между этими системами является удивительно малой, так как оба продукта основываются на UNIX. Обе системы разрабатываются на некоммерческой основе.

Кому принадлежит BSD?

Стоит отметить, что нет какого-то конкретного человека или же компании, который бы владел разработкой BSD. Разработка, а также последующее распространение данной системы осуществляется целой группой высококвалифицированных и при этом преданных проекту специалистов, собранных со всего мира. Определенные компоненты BSD представляют собой отдельные проекты, имеющие открытый код, который имеет свои законы и коллективы разработчиков.

Что все-таки выбрать?

Выбор между этими операционными системами является действительно достаточно сложным, поэтому можно выделить несколько советов, которые позволяют выбрать, какой вариант является оптимальным - Linux или FreeBSD. Команды в обоих случая являются довольно схожими, поэтому выбор чаще всего может строиться на основе следующего:

  • Если вами уже используется определенная Open Source ОС, то в таком случае вам не стоит даже что-то менять.
  • Системы FreeBSD могут проявлять гораздо большую производительность, но это правило не является универсальным.
  • Системы BSD отличаются довольно неплохой репутацией, и особенно это касается надежности.
  • BSD-проекты отличаются более хорошей репутацией благодаря тому, что они отличаются высоким качеством, а также полнотой доступной документации.
  • В BSD можно использовать преимущественное большинство исполнимых файлов Linux, в то время как Linux не может использовать многие выполнимые в BSD файлы.

Обеспечивает техническую поддержку, а также обслуживает FreeBSD - порты и системы - компания FreeBSD Mall, Inc.