Oc freebsd основные характеристики. FreeBSD: физика файловой системы. Лицензия BSD способствует взаимному сотрудничеству

Oc freebsd основные характеристики. FreeBSD: физика файловой системы. Лицензия BSD способствует взаимному сотрудничеству

27.03.2019

С момента выпуска стабильной версии FreeBSD 9.0 прошло меньше двух лет, а команда разработчиков уже готова представить следующий релиз своей ОС под красивым номером 10. Новая FreeBSD теперь компилируется с помощью Clang, поставляется в комплекте с DNS-сервером Unbound, имеет собственный гипервизор, аналогичный KVM, умеет работать со сжатыми томами ZFS и включает в себя еще несколько десятков интересных изменений.

Clang вместо GCC

Летом 2007 года фонд свободного ПО опубликовал окончательную редакцию лицензии GPLv3, на которую в скором времени должны были перейти все крупнейшие свободные проекты, координируемые фондом. Сообщество FreeBSD изначально не приняло эту лицензию, поскольку она еще более ограничивала реальную свободу ПО, чем GPLv2, а впоследствии отказалось от включения любого GPLv3-софта в базовую поставку ОС, как противоречащего лицензии BSD.

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

Так как поддерживать устаревшую версию GCC бесконечно нельзя, FreeBSD требовался идеологически правильный компилятор, и открытие исходных текстов Clang в том же году оказалось как нельзя кстати. В отличие от GCC, Clang распространялся под лицензией BSD и, по сути, компилятором не являлся. Это был всего лишь сырой фронтенд, который генерировал промежуточный код LLVM и передавал его последнему для оптимизации и компиляции.

Неспешно, но безостановочно Clang доводился до состояния полноценного компилятора, и к началу 2009 года всю FreeBSD, включая ядро и пользовательские утилиты, уже можно было скомпилировать без помощи GCC. В середине 2010 года Clang становится частью FreeBSD, но пока только в качестве альтернативы GCC. В 2012 году переход на Clang завершается, и он становится компилятором по умолчанию.

Для рядового пользователя такой переход, конечно, пройдет практически незамеченным: make buildworld будет работать так, как и раньше, порты будут собираться без всяких проблем, и даже такие команды, как gcc helloworld.c , будут работать без вопросов благодаря симлинкам. Зато настоящую выгоду это принесет разработчикам, многие из которых и раньше использовали Clang для прогона кода на предмет наличия ошибок (о которых Clang информирует гораздо подробнее GCC), но теперь этот инструмент будет использоваться по умолчанию.

Отключить Clang и перейти на GCC 4.2.1, который еще остается в комплекте FreeBSD, можно, добавив опции WITHGCC и WITH GNUCXX в файл /etc/src.conf .

BHyVe или KVM под лицензией BSD

Благодаря следованию идее тотальной свободы, гарантированной лицензией BSD и сведенной в одну знаменитую цитату «Делайте с кодом что хотите, но только не говорите, что он написан вами», фонд FreeBSD за время своего существования успел обзавестись многими покровителями. В их числе такие мастодонты, как Apple, NetApp и Juniper Networks, которые регулярно открывают код своих наработок на базе FreeBSD и смежных технологий (Clang, например, детище Apple). Очередной такой наработкой стал гипервизор BHyVe, созданный NetApp для использования в своем оборудовании. Его код был открыт в 2011 году и практически сразу включен в состав FreeBSD.

Bsdconfig

Начиная с девятой версии, FreeBSD была переведена на использование инсталлятора bsdinstall, пришедшего на смену неуклюжему sysinstall, который сами разработчики называли «запутанным куском кода, который никто не хочет поддерживать». Новый инсталлятор отличался простотой, интеллектуальностью, модульностью и расширяемостью, однако очень сильно уступал sysinstall в плане постинсталляционных настроек. Этот недочет исправили к выходу десятой версии, включив в комплект утилиту bsdconfig.

Новый конфигуратор, как и установщик, написан на шелл, обладает модульной структурой и может быть использован обособленно или в составе другого приложения (в данном случае bsdinstall). Уже сейчас bsconfig позволяет настраивать следующие сущности:

  • управлять настройками /etc/rc.conf (используется утилита sysrc);
  • создавать аккаунты и группы пользователей в системе и управлять ими;
  • конфигурировать часовые пояса (используется tzdialog);
  • конфигурировать сетевые интерфейсы, указывать параметры хоста, используемые DNS-серверы и шлюзы по умолчанию;
  • создавать и редактировать дисковые разделы;
  • настраивать консоль (шрифты, кодировки, локаль, хранитель экрана и прочее);
  • управлять запуском сервисов.

Другое

Из менее заметных, но значимых изменений можно назвать замену DNS-сервера BIND и сопутствующих утилит на кеширующий рекурсивный сервер Unbound и утилиты из комплекта LDNS. О полноценной замене здесь, конечно, речи не идет, а всего лишь выполняется требование иметь в базовой поставке ОС кеширующий DNS-сервер и валидатор DNSSEC. BIND, используемый для этой цели десятилетиями, успел превратиться в дырявого неповоротливого монстра, который уже просто неприлично включать в базовый комплект (BIND 10 требует, например, SQLite 3 и Python 3), а вот компактный и производительный Unbound выполняет эту работу на отлично. Те же, кому нужен полноценный DNS-сервер, могут установить BIND 10 из портов.

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

Во FreeBSD 10 будут включены новые инструменты установки и управления пакетами, названные pkgng. В отличие от устаревших утилит pkg_*, которые были всего лишь инструментом для выкачивания пакетов с FTP-сервера и разворачивания их в систему, pkgng представляет собой полноценный современный менеджер пакетов в стиле apt-get. Он работает с сетевыми репозиториями, учитывает зависимости и умеет правильно обновлять пакеты, а также удалять установленные как зависимости пакеты при удалении приложения. Со стороны пользователя работа с новым менеджером пакетов будет выглядеть примерно так:

# pkg update # pkg install gimp # pkg search firefox

INFO

Слово тивоизация происходит от названия выпущенного в 1999 году видеоплеера TiVo, который работал на ОС Linux, но при этом не позволял никоим образом изменить свою прошивку.

Кроме правильно лицензированного компилятора, в FreeBSD также появились собственные версии утилит sort и patch.

В FreeBSD 10.0 реализована поддержка USB Audio 2.0.



Вариантные символические ссылки

Из DragonFlyBSD во FreeBSD наконец портировали реализацию вариантных символических ссылок (varsym). По своей сути varsym - это та же символическая ссылка, в путях которой могут использоваться переменные, при изменении их значений автоматически меняется и сам путь. Основное преимущество таких ссылок в возможности их изменения пачками с помощью одной команды.


Переключение видеорежимов на уровне ядра

При подготовке FreeBSD 10 была проведена работа по интеграции KMS (переключение видеорежимов на уровне ядра) в драйверы для карт AMD, в дополнение к поддержке KVM в драйверах для Intel GPU, появившейся в 9.1. На данный момент технология KMS не имеет практически никакого значения для FreeBSD, однако она является одним из кирпичиков, используемых для построения графических систем будущего. Тот же Wayland, например, для своей работы требует поддержку KMS в ядре.

Выводы

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

FreeBSD - свободная операционная система семейства Unix, потомок AT&T Unix по линии BSD, созданной в университете Беркли. FreeBSD работает на PC-совместимых системах семейства Intel x86 (IA-32) (включая Microsoft Xbox), а также на DEC Alpha, Sun UltraSPARC, IA-64, AMD64, PowerPC, NEC PC-98, ARM. Готовится поддержка архитектуры MIPS.

FreeBSD разрабатывается как целостная операционная система. Исходный код ядра, драйверов устройств и базовых пользовательских программ (т. н. userland), таких как командные оболочки и т. п., содержится в одном дереве системы управления версиями (CVS до 31 мая 2008, сейчас SVN). Это отличает FreeBSD от GNU/Linux - другой свободной UNIX-подобной операционной системы - в которой ядро разрабатывается одной группой разработчиков, а набор пользовательских программ - другими (например, проект GNU), а многочисленные группы собирают это все в единое целое и выпускают в виде различных дистрибутивов GNU/Linux.

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

2016

FreeBSD 11.0 beta 2

Выпуск FreeBSD 11.0-BETA2 подготовлен для архитектуры amd64, i386, powerpc, powerpc64, sparc64 и armv6 (BANANAPI, BEAGLEBONE, CUBIEBOARD, CUBIEBOARD2, CUBOX-HUMMINGBOARD, GUMSTIX, RPI-B, RPI2, PANDABOARD, WANDBOARD) .

Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2 . Релиз FreeBSD 11.0 запланирован на 2 сентября 2016 года.

Во втором бета-выпуске, в утилите freebsd-update появилась возможность установки наборов дистрибутива ("*-dbg"), внесены исправления в сборочный инструментарий, для архитектуры powerpc/powerpc64 и arm/armv6 отключены WITNESS и INVARIANTS, удалена конфигурация ядра GENERIC-NODEBUG, проведена работа над ошибками.

Microsoft выпустила свой дистрибутив FreeBSD

Выход FreeBSD 10.3

Подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2 , Google Compute Engine и Hashicorp/Atlas Vagrant. Среди значимых изменений:

  • улучшение работы на системах UEFI,
  • возможность загрузки на корневых разделах с ZFS,
  • функция смены корневой ФС (reroot) во время загрузки,
  • поддержка выполнения 64-разрядных приложений в режиме эмуляции Linux ,
  • добавление средств кластеризации в CAM Target Layer (CTL).

Основные изменения

  • Серия изменений, связанных с загрузкой на системах с UEFI. В UEFI-загрузчик добавлена поддержка корневых разделов с ZFS и возможность использования нескольких загрузочных окружений ZFS, таких как предоставляются в sysutils/beadm. Улучшена совместимость с различными реализациями UEFI. В UEFI-загрузчик добавлена возможность установки переменных EFI из командной строки загрузчика, а также поддержка файлов конфигурации /boot/config и /boot.config. В применяемый в загрузчике UEFI драйвер фреймбуфера efifb добавлены новые команды gop (Graphics Output Protocol) и uga (Universal Graphics Adapter) для диагностики проблем или установки графического режима на системах с поддержкой протоколов GOP и UGA (iMac7,1, MacBook3,1). В loader.efi добавлена начальная поддержка эмуляции терминала. Решены проблемы с мультизагрузкой и с загрузкой, приводящие к выводу ошибки "ExitBootServices() returned 0x8000000000000002";
  • В инсталлятор bsdinstall добавлена возможность установки на корневой раздел ZFS на системах с UEFI;
  • Обновлена реализация ZFS. По умолчанию включена поддержка сжатия LZ4, на 50% сокращено потребление памяти при использовании L2ARC, улучшено агрегирование ввода/вывода, переработан код упреждающей загрузки данных;
  • Добавлена возможность смены корневой ФС на лету. Ранее для перемонтирования корневого раздела требовалась перезагрузка. Смена корневой ФС необходима для работы на ранней стадии загрузки временных образов ram-дисков, осуществляющих инициализацию сеанса iSCSI, с последующим подключением корневой ФС поверх iSCSI;
  • Расширены возможности инфраструктуры эмуляции окружения Linux , в которой появилась возможность выполнения 64-разрядных приложений на системах с архитектурой amd64 (x86_64), добавлена поддержки потоков 1:1, VDSO и части API мультиплексированного ввода-вывода epoll(7). В jail добавлена поддержка монтирования файловых систем linprocfs и linsysfs;
  • В подсистему CAM Target Layer (CTL), обеспечивающую эмуляцию дисковых и процессорных устройств, через которую реализован сервер iSCSI, добавлена поддержка средств для обеспечения высокой доступности. Поддерживается создание двухузловых кластеров с асинхронными режимами доступ к юнитам LUN (ALUA, Asynchronous LUN Unit Access): Active/Unavailable, Active/Standby, синхронным Active/Active и прокси Active/Active;
  • Системные изменения
    • Внесены корректировки в код инициализации генератора псевдослучайных чисел, исключающие недостаток энтропии при загрузке на некоторых типах систем;
    • В системный вызов kqueue добавлена возможность обработки событий записи для файлов, размер которых превышает 2 Гб;
    • Переработана реализация кэша vnode, проведена оптимизация кода для распределения и чистки vnode;
    • В библиотеку разрешения имён добавлена поддержка перезагрузки файла /etc/resolv.conf, если изменилось время его модификации;
    • В скрипт rc.d/netwait добавлено ожидания сетевых интерфейсов, добавленных на последней стадии загрузки, например, сетевых адаптеров с интерфейсом USB ;
    • В режиме межсетевого экрана firewall_type="SIMPLE" для блокирования адресов задействованы таблицы ipfw;
    • Добавлена sysctl-переменная kern.features.invariants, показывающая собрано или нет ядро с поддержкой инвариантов (INVARIANTS);
  • Инструментарий
    • В утилиту mkimg добавлена поддержка файловой системы NTFS;
    • Утилита sesutil для управления устройствами SES (SCSI Environmental Services);
    • Утилита timeout, позволяющая запустить команду с ограничением времени её выполнения;
    • В утилиту cp добавлен флаг "-s", позволяющий создавать символические ссылки;
    • При запуске утилиты jail если явно не указана выполняемая команда по умолчанию теперь запускается shell. Добавлена опция "-l" , которая гарантирует очистку переменных окружения по аналогии с директивой exec.clean, т.е. в jail передаются только переменные HOME, SHELL, TERM и USER, которые устанавливаются в фактические значения;
    • В утилите ifconfig при использовании флага "-v" обеспечен вывод информации об оптических модулях SFP/SFP+, при использовании поддерживающих вывод данной информации драйверов (cxgbe, ixgbe, mlx5en и sfxge);
    • В утилиту last возвращена случайно удалённая во FreeBSD 9.0 поддержка виртуального пользователя reboot, при указании которого показываются все записи, связанные перезагрузкой;
    • Обновлены версии сторонних программ, в том числе file 5.25, xz 5.2.2, ntpd 4.2.8p5, unbound 1.5.7, less v481, OpenSSL 1.0.1s, OpenSSH 7.2p2;
    • В портах обновлено десктоп-окружение GNOME 3.16.2 (был 3.14.2). X.org Server обновлён до выпуска 1.17.4 (был 1.14.7);
  • Поддержка оборудования
    • Добавлен драйвер ismt с поддержкой контроллеров Intel SMBus 2.0;
    • Добавлен драйвер mlx5 с поддержкой Ethernet и Infiniband сетевых карт Mellanox ConnectX-4, поддерживающих передачу данных на скоростях до 100GBit/s. Связанный с драйвером модуль ядра mlx5en включён по умолчанию в конфигурации GENERIC;
    • В драйвер ctl добавлена поддержка CD-ROM и извлекаемых устройств;
    • В драйвер xen добавлена поддержка непрямого сегментированного ввода/вывода blkif;
    • Драйвер ixgbe(4) обновлён до версии 3.1.13-k, в которой появилась поддержка адаптеров X552 и X550T, добавлена поддержка настроек загрузчика hw.ix.flow_control и hw.ix.advertise_speed, исправлена большая порция проблем;
    • Обновлён драйвер isp(4), в котором появилась поддержка 16-гигабитных адаптеров Fibre Channel и завершена реализация функциональности Multi-ID (NPIV);
    • До версий 7.6.1 и 2.5.3 обновлены драйверы em(4) и igb(4), в которые добавлена поддержка чипов i219, i219(2) и i219(3), используемых в чипсетах для процессоров на базе Skylake и более новых микроархитектур;
    • Удалены устаревшие драйверы ata, такие как ataahci, ataadaptec и mv_sata, вместо которых следует использовать ahci, siis и mvs;
    • Из ядра GENERIC удалён драйвер pms из-за конфликта с драйверами ahd и mvs.

Вышел бета-релиз FreeBSD 10.3

В феврале 2016 года был представлен первый бета-выпуск FreeBSD 10.3. Выпуск FreeBSD 10.3-BETA1 доступен для архитектур amd64, i386, powerpc, powerpc64, sparc64 и armv6 (BEAGLEBONE, CUBOX-HUMMINGBOARD, GUMSTIX, PANDABOARD, RPI-B, WANDBOARD). Дополнительно подготовлены образы для систем виртуализации (QCOW2, VHD, VMDK, raw) и облачных окружений Amazon EC2 и Microsoft Azure . Релиз FreeBSD 10.3 запланирован на 22 марта. 27 июля ожидается релиз FreeBSD 11.

Список изменений FreeBSD 10.3 находится на начальной стадии формирования. Добавленные возможности и функции:

  • Поддержка NTFS в утилите mkimg,
  • Новая утилита sesutil для управления устройствами SES (SCSI Environmental Services),
  • В системном вызове kqueue появилась обработка событий записи для файлов больше 2 Гб,
  • Переписана реализация CTL High Availability,
  • В драйвер ctl добавлена поддержка CD-ROM и извлекаемых устройств,
  • В драйвер xen добавлена поддержка непрямого сегментированного ввода/вывода blkif,
  • Обновлена реализация ZFS.

2015: FreeBSD 10.2

Система доступна для архитектуры AMD64, I386, IA64, PowerPC, PowerPC64, Sparc64 и ARMv6. Дополнительно подготовлены образы для систем виртуализации (QCOW2, VMDK, raw) и облачных окружений Amazon EC2 , Google Compute Engine и Microsoft Azure .

Основные изменения

  • Добавлена новая утилита uefisign для формирования цифровых подписей для файлов EFI, используемых для загрузки в конфигурациях с UEFI Secure Boot. В состав загрузчика EFI включен bzipfs;
  • Представлен новый rc-скрипт growfs, предназначенный для осуществления операции по изменению размера корневой ФС во время первой загрузки (если создан файл /firstboot), давая возможность автоматически занять корневой ФС всё нераспределённое место на диске. Управление работой скрипта производится через опцию growfs_enable в rc.conf. Скрипт также можно выполнить вручную ("/etc/rc.d/growfs onestart"), а не на этапе перезагрузки;
  • Поддерживаемая во FreeBSD инфраструктура эмуляции окружения Linux обновленa до CentOS 6.6 (порт emulators/linux-c6). Связанные с эмулятором порты адаптированы для использования CentOS 6.6, который теперь предлагается по умолчанию вместо пакетов на основе Fedora 10 . Слой совместимости с ядром Linux теперь ссылается на выпуск 2.6.18;
  • Код drm-драйверов для графических карт синхронизирован с ядром Linux 3.8.13, что позволило реализовать ioctl-вызовы setmaster/dropmaster для решения проблемы с запуском одновременно нескольких X-серверов;
  • Расширены возможности порта FreeBSD/arm. Добавлена поддержка систем Exynos 5420 Octa и плат Toradex Apalis i.MX6. Добавлен драйвер bcm2835_cpufreq, позволяющий управлять частотой CPU и напряжением на Raspberry Pi. Для всех систем Exynos 5 активирована поддержка SMP. Добавлены драйверы передачи звука с поддержкой AUDMUXM (Digital Audio Multiplexer), SDMA (Smart Direct Memory Access Controller) и SSI (Syncronous Serial Interface). Реализованы корректные средства завершения работы на платах BeagleBone Black;
  • В ядро FreeBSD/i386 добавлена настройка PAE_TABLES, при которой в pmap включается использование формата PAE при работе с табицами страниц памяти в условиях 32-разряднной физической адресации. В данном режиме возможен маппинг памяти в режиме "no execute", что позволяет повысить защищённость системы от некоторых видов атак. Кроме того, в отличие от режима PAE, режим PAE_TABLES сохраняет совместимость на уровне бинарных интерфейсов (KBI) с не-PAE ядрами, позволяя использовать собранные для них модули и драйверы. При включении режиме PAE_TABLES лимиты ядра настраиваются с расчётом на размер ОЗУ 4 Гб;
  • Добавлен драйвер vxlan для создания виртуальных расширяемых локальных сетей (Virtual Extensible LAN), используемых для туннелирования виртуализированных сетей второго уровня поверх сетей третьего уровня. VXLAN позволяет обойти ограничение на 4096 VLAN-ов за счёт использования 24-разрядных идентификаторов;
  • Обновлён гипервизор bhyve: добавлена поддержка процессоров AMD c аппаратными расширениями SVM и AMD-V, добавлена поддержка команды DSM TRIM для виртуальных дисков AHCI;
  • В подсистеме autofs реализован новый тип сопоставлений "-media", позволяющий организовать автоматическое монтирование встраиваемых накопителей, таких как CD и USB Flash. Также добавлен тип "-noauto" аналогичный использованию флага noauto в fstab;
  • В сетевой драйвер em добавлена поддержка многоуровневых очередей (multiqueue). Включение производится через опцию ядра EM_MULTIQUEUE;
  • В ядре GENERIC по умолчанию включена поддержка RACCT и RCTL, подсистем для аккаунтинга и лимитирования ресурсов;
  • Для ZFS добавлена настройка vfs.zfs.spa_slop_shift, позволяющая изменить зарезервированное по умолчанию дисковое пространство;
  • Обновлена подсистема ctl (CAM Target Layer), в которой со 128 до 256 увеличен лимит на число портов, и с 256 до 1024 на число LUN;
  • В загрузчик добавлена поддержка ввода пароля для GELI-шифрования на этапе до загрузки ядра;
  • Существенно переработан драйвер gre, который теперь разделён на два отдельных модуля gre и me;
  • Добавлен драйвер virtio_console, предоставляющий интерфейс для проброса консольных устройств VirtIO через устройство tty;
  • Решены проблемы при использовании jail совместно с gif- и gre-туннелями;
  • В GENERIC ядре по умолчанию включены драйверы nvd и nvme с поддержкой дисковых контроллеров NVM Express;
  • В драйвер psm добавлена поддержка тачпадов Synaptics и мышей ClickPad, используемых в новых моделях ноутбуков Lenovo ;
  • В драйвер ral добавлена поддержка чипов RT5390 и RT5392;
  • В утилите mount_nfs появилась поддержка опций timeo, actimeo, noac и proto;
  • В TCP-стеке по умолчанию отключено определение PLPMTUD (Packetization Layer Path MTU Discovery, RFC 4821). Для включения следует использовать sysctl net.inet.tcp.pmtud_blackhole_detection, net.inet.tcp.pmtud_blackhole_mss и net.inet.tcp.v6pmtud_blackhole_mss;
  • В базовую систему включена новая утилита dpv, наглядно отображающая прогресс передачи данных для одного или нескольких потоков;
  • Добавлена утилита fstyp для определения типа файловой системы на указанном разделе;
  • Добавлена библиотека figpar, предоставляющая API для разбора файлов конфигурации;
  • В утилиту gpart добавлена поддержка схем разделов в MBR apple-boot, apple-hfs и apple-ufs;
  • В утилиту mkimg добавлена поддержка разделов MBR EFI и реализован флаг "-c" для задания минимального виртуального размера итогового образа;
  • В утилиту netstat добавлена флаг "-R", при указании которого выводится информация об RSS/flow;
  • В утилите date для улучшения совместимости с GNU date реализовано отображение времени модификации файла, указанного через флаг "-r";
  • В bsdinstall добавлена возможность выбора схемы дисковых разделов при установке на UFS. Реализована поддержка выравнивания разделов по границе в 1 Мб при определении такой необходимости. Добавлен обходной путь для загрузки на различных ноутбуках и материнских платах, на которых ранее наблюдались проблемы с загрузкой с дисков с GPT-разделами;
  • Во freebsd-update добавлена защита от загрузки новых бинарных патчей, если прошлое обновление ещё не завершено;
  • Утилита resolvconf обновлена до версии openresolv 3.7.0, примечательной добавлением возможности установки флага приватности для интерфейсов в resolv.conf, что позволяет использовать данные интерфейсы только для осуществления резолвинга доменов по явно заданной в resolv.conf маске (domain/search);
  • Обновлены версии сторонних программ, в том числе ntp 4.2.8p3, acpi 20150515, file 5.23, unbound 1.5.3, sendmail 8.15.2, OpenSSL 1.0.1p.
  • Обновлены предлагаемые из портов десктоп-окружения: GNOME 3.14.2 и KDE 4.14.3. Обновлён графический стек (x11-servers/xorg-server 1.14.7_5, x11/xorg 7.7_2).

2014: FreeBSD 10.0

20 января 2014 года стало известно о выходе последнего релиза FreeBSD 10.0. Релиз 10.0 доступен для нескольких архитектур, включая x86, Power PC и Sparc.

Описание

Новую реализацию системы перевели на умолчательное использование компилятора Clang. В систему интегрирован гипервизор BHyVe, DNS-сервер BIND заменён на Unbound, вновь реализован протокол CARP, интегрирована подсистема FUSE, действует пакетный менеджер pkg по умолчанию.

Интегрирована поддержка unmapped VMIO, которая позволила поднять производительность ввода/вывода, благодаря исключению стадии маппинга буферов в TLB-кэше, что снизило накладные расходы при работе на многопроцессорных системах.

Обновлён установщик системы bsdinstall и в него добавлена поддержка полноценной установки системы на разделы ZFS. При этом все настройки производятся из меню, в том числе создание разделов, выбор уровня ZFS RAID, настройка шифрования с использованием GELI, выбор имени пула и т.п. Прежний инсталлятор sysinstall удалён из базовой системы, вместо него следует использовать bsdinstall и bsdconfig. Утилита bsdconfig реализует интерфейс для настройки различных параметров системы, обеспечивая функциональность похожую на меню "Configure" из sysinstall.

Реализована интеграция подсистемы FUSE - для работы файловых систем, реализованных на уровне пользователя. Поддерживается использование большинства FUSE-модулей, в том числе sshfs, ntfs-3g и ext4fuse.

Включена поддержка увеличения размера разделов UFS при помощи утилиты growfs на лету, без размонтирования раздела.

Включение наработок по оптимизации производительности файловых систем UFS/FFS. Ускорено выполнение fsck для новых разделов UFS;

Обновление компонентов подсистемы ZFS до последней версии ZFS pools с поддержкой сжатия LZ4 и L2ARC, уничтожением наборов данных в асинхронном режиме, оптимизациями ZIO NOP-write, поддержкой операции TRIM для SSD -накопителей.

В сетевой подсистеме проведена интеграция наработок проекта CARP2. В его рамках действует новая реализация протокола CARP (Common Address Redundancy Protocol) для FreeBSD. Протокол CARP, выступая в роли открытой альтернативы протоколам HSRP (Hot Standby Router Protocol) и VRRP (Virtual Router Redundancy Protocol), даёт возможность организации совместного использования IP-адреса между несколькими серверами в локальной сети, что может применяться для балансировки нагрузки или для создания отказоустойчивых систем.

Заменён DNS-сервер BIND на связку из кэширующего DNS-сервера Unbound и библиотеки LDNS. Unbound распространяется под лицензией BSD, имеет модульную структуру, поддерживает работу еханизма разрешения имён в рекурсивном и кэширующем режиме. Также обеспечивает проверку валидности DNSSEC-сигнатур. Вместо утилиты dig теперь используется drill. В качестве причины ухода от BIND разработчики упоминают о проблеме с протяжённостью цикла поддержки выпуска обновлений для BIND, которые не укладываются в цикл поддержки релизов FreeBSD.

Проведена интеграция гипервизора BHyVe, созданного компанией NetApp . Потребуется система с процессором Intel , поддерживающим аппаратные средства виртуализации VT-x и EPT (Extended Page Tables). Поддержка BHyVe пока ограничивается архитектурой amd64.

Добавлены драйверы устройств, видеокарт, средства для манипуляции страницами памяти большого размера.

Глеб Смирнов - Что нового в FreeBSD 10.0

2012

Hyper-V поддерживает FreeBSD

14 мая 2012 года на конференции BSDCan 2012 компания Microsoft вместе со своими партнерами компаниями NetApp и Citrix объявила о том, что операционная система FreeBSD будет поддерживаться гипервизором Hyper-V . Соответствующие драйверы, которые позволят операционной системе эффективно работать в виртуальной среде Windows Server 2008 R2 Hyper-V, включая исходные коды под лицензией BSD, станут доступны в начале лета 2012 г. для FreeBSD версий 8.2 и 8.3.

Разработка драйвера VMBUS, который связывает гостевую операционную систему с гипервизором Windows Server Hyper-V, проводилась Microsoft совместно с Insight Global. В дальнейшем планируется, что этот драйвер станет частью FreeBSD.

FreeBSD 9

Среди улучшений следует отметить сразу две графические среды, которые предлагаются пользователям на выбор. В последнее время Linux часто критикуют за недостатки графической среды, которые присущи как GNOME 3, так и Ubuntu Unity.

Разработчики FreeBSD 9.0 решили обойти это препятствие, предложив пользователям самим выбрать между дружественной и привычной средой GNOME 2.32 и приятным с эстетической точки зрения интерфейсом KDE 4.7.

Среди других существенных расширений FreeBSD 9.0 следует отметить новый инсталлятор, совместимость с процессорами PowerPC, которые используются в игровых приставках Sony PlayStation 3, множество обновленных драйверов, а также поддержку USB 3.0 и High Performance SSH.

Версия FreeBSD 9.0, выпуск которой ее разработчики посвятили памяти пионера компьютерной отрасли, создателя Unix и языка программирования Си Денниса Ритчи, работает в настоящее время на архитектурах AMD64, i386, ia64, PowerPC, PowerPC64 и SPARC64. Все необходимые ссылки и инструкции по установке находятся на официальном сайте FreeBSD.

2010: FreeBSD 8.1

Сообщество разработчиков FreeBSD объявило в августе 2010 года о выпуске версии 8.1 одноименной операционной системы на основе ядра Linux . Среди ключевых изменений нового продукта разработчики называют улучшенную поддержку оборудования и проведенную модернизацию программных составляющих системы. В FreeBSD 8.1 расширена и обновлена база драйверов, оптимизирован код платформы, исправлены обнаруженные ранее недочеты. Большое внимание при разработке новой версии FreeBSD было уделено средствам беспроводной связи Wi-Fi , сетевым компонентам, инструментам виртуализации и оптимизации платформы под современные многоядерные процессоры.

В числе прочих новшеств FreeBSD 8.1 фигурируют рабочие среды GNOME 2.30.1 и KDE 4.4.5, обновленный инструментарий OpenSSH для организации защищенных сетевых соединений, почтовый сервер Sendmail 8.14.4, поддержка архитектур UltraSPARC IV/IV+, SPARC64 V и прочие нововведения. Немало внимания уделялось вопросам безопасности и надежности продукта.

Новая версия платформы рекомендована разработчиками для промышленного внедрения; пользователи предыдущих редакций FreeBSD могут обновить ОС посредством утилиты freebsd-update и поясняющих инструкций, опубликованных на странице официального сайта продукта.

2009: FreeBSD 8.0

После выпуска релизов создаются дополнительные ветви разработки для их поддержки, но в них вносятся лишь самые необходимые изменения, исправляющие серьёзные ошибки или проблемы с безопасностью системы. До четвёртой версии FreeBSD у стабильной и текущей веток был один и тот же старший номер версии. Затем текущей ветви был присвоен номер 5, а у стабильной остался номер 4. В настоящее время стабильная версия имеет номер 8, а текущая - 9. Существует также ветвь 7-STABLE для поддержки тех пользователей, которые ещё не обновили FreeBSD до версии 8.

FreeBSD 5 включает несколько новых функций, в том числе относящихся к безопасности. С целью повысить безопасность FreeBSD был сформирован проект TrustedBSD, в рамках которого были разработаны, в том числе: расширяемая система принудительного контроля доступа MAC, списки доступа ACL для файловых систем и новая файловая система UFS2. Некоторые функции TrustedBSD были интегрированы также в операционные системы NetBSD и OpenBSD. FreeBSD 5 также поддерживает шифрование файловых систем посредством системы GBDE (Geom Based Disk Encryption), которую написал Пол-Хеннинг Камп, один из ведущих разработчиков. Другие важные возможности FreeBSD 5 относятся к внутриядерным блокировкам для улучшения производительности на многопроцессорных SMP-системах и многопоточности, реализованной системой KSE, которая являлась поточной библиотекой по умолчанию начиная с версии 5.3. Позже libkse в этом качестве была заменена на libpthread, однако до сих пор поддерживается в -STABLE.

8.0-RELEASE внёс несколько существенных новшеств: виртуализация сетевого стека (vimage), позволяющая использования нескольких сетевых стеков, поддержка работы в гостевом домене Xen (domU), переработанный USB стэк, ZFS версии 13, RPCSEC_GSS аутентификация для NFS, поддержка NAT-traversal (RFC 3948) в IPSEC, включенная по умолчанию система защиты от переполнения стека ProPolice SSP, улучшенный код для изолированных окружений (Jail2), поддержка равновесной маршрутизации (RFC 2992),

1993: Старт разработки FreeBSD

Разработка FreeBSD началась в 1993 году с большой скоростью, в качестве отправной точки были взяты исходные тексты 386BSD. Однако, из соображений законности использования исходных кодов 386BSD, команда разработчиков FreeBSD переработала большую часть системы ко времени выпуска FreeBSD 2.0 в январе 1995 года используя 4.4BSD-Lite.

Модель разработки FreeBSD

Существует около 4000 разработчиков, которые работают на добровольной основе. Все они могут читать дерево репозитория. Но не могут вносить изменения. Вместо этого разработчик обращается к коммитеру, который имеет право вносить изменение в код. Существует около 400 коммитеров. Разработчик может вырасти по социальной лестнице проекта и стать коммитером, а затем членом основной команды. Нового коммитера избирают другие коммитеры. Основная команда является ядром проекта и состоит из 9 человек, которые выбираются на 2 года. Основная команда решает конфликты между коммитерами.

Участники проекта разрабатывают две ветки «CURRENT» и «STABLE».

Новый код для тестирования помещают в ветку CURRENT(нестабильная, тестовая). Новые функции, добавленные в CURRENT, могут остаться в системе или от них могут отказаться, если реализация окажется неудачной. Иногда эта версия может оказаться в непригодном для использования состоянии. STABLE (стабильная или производственная) версия содержит только те нововведения, которые прошли проверку в CURRENT. Тем не менее, эта версия тоже предназначена, в основном, для разработчиков. Не рекомендуется обновлять ответственные рабочие серверы до STABLE, предварительно её не протестировав. На основе STABLE регулярно создаются тщательно протестированные разработчиками RELEASE версии.

Установка 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 есть полнофункциональная звуковая подсистема c низкой задержкой, а смешивание в ядре позволяет нескольким приложениям воспроизводить звуки одновременно (с независимыми настройками громкости) без дополнительных настроек. Дефолтные настройки включают в себя X.org и настройки рабочего стола, такие как KDE или GNOME, это так же просто как выбрать метапакет в зависимости от того, какой вы предпочитаете.

Если даже это кажется слишком сложным, PC-BSD - полнофункциональная настольная система, созданная поверх FreeBSD с простым в использовании установщиком и опцией коммерческой поддержки.

FreeBSD использует модель закрытого развития

FreeBSD развивают более 400 разработчиков по всему миру, все они имеют полный доступ ко всей системе и данным этой ОС. Третьи лица так же зачастую фиксят родные патчи. Если Вы хотите увидеть количество исправленных патчей, вы можете поискать "Submitted by" в логах фиксации.

Нет никаких жестких рамок для FreeBSD. Решения приняты людьми готовыми сделать работу. Если все же возникают споры, то они разрешаются группой разработчиков, которые избираются каждые два года. Обязательным критерием, по которому избираются разработчики, является обязательное исправление или доработка кода проекта в прошлых годах.

FreeBSD - Просто OS X без красивого GUI интерфейса

Это такой же миф про OS X, как и про FreeBSD: OS X просто FreeBSD с красивым графическим интерфейсом. Эти две операционных системы действительно совместно используют часть кода, например большинство утилит пользовательского пространства и библиотека C по OS X получены из версий FreeBSD. Часть этого кода развивается в разное время и в разных направлениях, например FreeBSD 9.1 позднее включила стек C++ и компилятор, который первоначально были разработаны для OS X сотрудниками Apple. Так же есть и кардинально разные детали.

Ядро XNU, которое используется на OS X включает в себя несколько подсистем из более старых версий FreeBSD, но в основном считаются независимой реализацией. Но все же за счет своего сходства продукты реализованные на OS X значительно проще адаптировать под FreeBSD. Например libdispatch и libc ++ были записаны для OS X и работали на FreeBSD раньше, чем на любой другой ОС.

В FreeBSD все необходимо компилировать с исходного кода

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

Вы можете установить pkgng из портов (ports-mgmt/pkg) на более старых версиях FreeBSD. Она включена по умолчанию на FreeBSD 9.1 и более поздние версии.

FreeBSD это UNIX из 90-х (или 80-ых)

FreeBSD - линейный потомок исходного UNIX через Распределение программного обеспечения Беркли, но она продолжала развиваться отдельно. За последние несколько лет мы видели, что ZFS становится значительно производительней: поддержка 10 ГБ, 40 ГБ и 100 ГБ канала, улучшеная звуковая подсистема, поддержка 802.11n и других улучшений.

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

Весь хороший код в FreeBSD родом из Solaris

FreeBSD импортировала две функции высокого профиля из OpenSolaris: DTrace и ZFS. Обе теперь хорошо поддерживаются FreeBSD. ZFS, в частности, находится в центре внимания многих разработчиков FreeBSD, в том числе тех, которые используются iXsystems, компанией, которая поддерживает развитие FreeNAS и продает коммерческие NAS устройства на базе FreeBSD. Разработчики FreeBSD также работают в тесном сотрудничестве с разработчиками Illumos, одной из веток с открытым исходным кодом Solaris, для улучшения обеих этих функций.

Несмотря на преимущества ZFS, это по-прежнему относительно небольшая часть общей системы. ZFS и DTrace составляют менее чем 4% кода в ядре, которое равно почти 10% кода в основной системе. Если считать, что только 0.4% FreeBSD хороши, то система не приобрела бы такой популярности.

FreeBSD не имеет драйверов

Это проблема, с которой сталкиваются все операционные системы, - даже новые версии Windows. Большую часть времени пользователи не заботятся об общем количестве драйверов, только если драйверы уже установлены по умолчанию. Есть некоторые упущения с точки зрения поддержки драйверов, но FreeBSD поддерживает широкий спектр сетевых карт (в том числе 802.11n чипсеты), большинство звуковых карт AMD, Intel и графические процессоры NVIDIA.

Поддержка аппаратных средств - это та часть реализации, которая требует постоянной доработки, потому что нельзя просто сказать производителям аппаратных средств, чтобы они подождали пару лет, пока разработчики ПО их догонят. Обеспечение поддержки новых устройства занимает время для настройки, хотя некоторые производители сами обеспечивают драйверы, например Nvidia обеспечивает драйверы для их GPU и Intel для новейших сетевых контроллеров. Другие производители обеспечивают помощь в разработке драйверов FreeBSD, включая Broadcom, JMicron, HP, Mellanox, Chelsio и Solarflare. Если Вы знаете устройства, которые не поддерживаются FreeBSD, лучше сообщить про это разработчикам и производителям устройств. Как правило, лучшим толчком для решения проблемы со стороны производителей - сообщение о том, что их клиенты не могут использовать их продукты.

FreeBSD 4.x лучшее из всего что было

4.x релиз был самым стабильным и FreeBSD гордились тем, что они смогли реализовать такой продукт. Многие пользователи продолжали использовать его на протяжении многих лет. Серия 5.x вышла во время перехода к оптимизации многопоточности. Эта включало замену одной блокировки вокруг ядра с рядом меньших блокировок, которые используются отдельными подсистемами. Это требовало большого куска работы, что не могло не привести к некоторым ошибкам. 5.x поставлялась с двумя реализациями поточной обработки, а это еще больше осложняло ситуацию. Первые два выпуска в серии 5.x были отмечены «только разработчикам», но 5.2 была нацелена на более широкую аудиторию и не оправдала ожиданий пользователей системы FreeBSD. Ряд крупных пользователей решили не менять серию 4.x.

Серия 5.x была болезненным уроком для проекта. В серии 6.x восстановили стабильность выпуска 4.x., а в серии 7.x восстановили производительность одного процессора. Во время выпуска серии 8.x можно было увидеть ряд опубликованных третьими лицами тестов, которые продемонстрировали лучшую масштабируемость FreeBSD на многопроцессорных системах, чем любая другая операционная система.

Все эти релизы имели значительное количество улучшений, такие как улучшенная звуковая подсистема, ZFS, DTrace, ведение журналов UFS и многое другое, но стабильность и производительность остались ключевыми задачами системы FreeBSD.

Недостатки программного обеспечения FreeBSD

Коллекция FreeBSD в настоящее время содержит более 26 000 единиц программного обеспечения. Трудно сравнить это число с другими репозиториями, потому что программы разделены по-другому (например, GCC порт в FreeBSD устанавливает программы и библиотеки, которые разделены между 6-10 пакетами в Debian, в зависимости от версии GCC), но большинство вещей Вы все же можете там найти. Одной из причин, по которой пользователи выбирают FreeBSD является тот факт, что набор портов обеспечивает определенную, относительно неясную часть программного обеспечения, в котором она нуждается, в то время как другие системы этого не делают.

Большая часть программного обеспечения в наборе портов работает исходно на FreeBSD. Большая часть программного обеспечения с открытым исходным кодом - агностик относительно ОС и требует, чтобы минимальная модификация была скомпилирована и работала на FreeBSD. Есть исключения такие как Valgrind, которые требуют детального понимания системы. Проприетарное программное обеспечение может быть более серьезной проблемой. Некоторые разработчики, такие как Opera, обеспечивают FreeBSD своим исходным кодом.

Другое программное обеспечение должно работать в режиме эмуляции. Например, бинарные файлы Linux могут работать на уровне Linux ABI, где системные вызовы Linux переводятся на их эквиваленты FreeBSD. Единственный изъян - немного увеличенная нагрузка системных вызовов; обычно сложно измерить различие в производительности между выполнением программ Linux на Linux и на FreeBSD: в некоторых случаях программы работают быстрее на FreeBSD, чем на Linux из-за более эффективных реализаций базовых вызовов. Например, версия Linux Flash-плагина может работать, используя NSPluginWrapper на уровне Linux ABI с собственным веб-браузером.

Аналогичное решение существует для запуска Windows приложений.

FreeBSD не поддерживает виртуализацию

FreeBSD 9 работает как гость Xen (domU) и на x86, и на x86-64, включая Amazon EC2. Благодаря работе, проделанной совместно с Microsoft, NetApp и Citrix, FreeBSD можно запускать на Hyper-V гипервизора Microsoft. FreeBSD 11 будет включать Dom0 поддержку управления домена.

FreeBSD также поддерживает VirtualBox и в качестве гостя и в качестве хоста. Вы можете найти гостевые дополнения VirtualBox, а затем и сам гипервизор в наборе портов. FreeBSD 10 также работает в качестве хоста операционной системы для гипервизора BSD, давая множество возможностей для запуска FreeBSD виртуальных машин на базе FreeBSD.

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

Лицензия BSD способствует взаимному сотрудничеству

Пока разработчики кода FreeBSD не подадут на вас иск о нарушении авторских прав, Вы вольно можете его использовать. Но, если верить утверждениям самих разработчиков, такого не произойдет.

Некоторые компании, почти наверняка возьмут наш код, изменят его и никогда ничего не предоставят взамен.

Рассмотрим в качестве примера случай двух крупнейших интернет-компаний: Google и Yahoo! Прежде их внутренняя инфраструктура основывалась на операционной системе GPL, в то время как более поздние версии уже используют FreeBSD. Поскольку Google не распределяет их измененную операционную систему, они могут сохранить к примеру GoogleFS в частной собственности. В таких случаях как этот, где программное обеспечение разработано для внутреннего использования, по лицензионному соглашению компания не обязана раскрывать свои доработки для разработчиков FreeBSD.

Существуют, однако, некоторые проблемы с соединением: например, нельзя использовать библиотеку с лицензией GPL, если уже используется BSD.

На протяжении многих лет не мало компаний внесло значительный вклад в FreeBSD. И вызвано это не только чувством альтруизма, ведь поддержка любого проекта, который быстро развивается, очень дорогое удовольствие.

  • Системное администрирование ,
  • Хостинг
    • Перевод

    FreeBSD хороша для серверов, но не для настольных компьютеров

    У FreeBSD есть полнофункциональная звуковая подсистема c низкой задержкой, а смешивание в ядре позволяет нескольким приложениям воспроизводить звуки одновременно (с независимыми настройками громкости) без дополнительных настроек. Дефолтные настройки включают в себя X.org и настройки рабочего стола, такие как KDE или GNOME, это так же просто как выбрать метапакет в зависимости от того, какой вы предпочитаете.

    Если даже это кажется слишком сложным, PC-BSD - полнофункциональная настольная система, созданная поверх FreeBSD с простым в использовании установщиком и опцией коммерческой поддержки.

    FreeBSD использует модель закрытого развития

    FreeBSD развивают более 400 разработчиков по всему миру, все они имеют полный доступ ко всей системе и данным этой ОС. Третьи лица так же зачастую фиксят родные патчи. Если Вы хотите увидеть количество исправленных патчей, вы можете поискать "Submitted by" в логах фиксации.

    Нет никаких жестких рамок для FreeBSD. Решения приняты людьми готовыми сделать работу. Если все же возникают споры, то они разрешаются группой разработчиков, которые избираются каждые два года. Обязательным критерием, по которому избираются разработчики, является обязательное исправление или доработка кода проекта в прошлых годах.

    FreeBSD - Просто OS X без красивого GUI интерфейса

    Это такой же миф про OS X, как и про FreeBSD: OS X просто FreeBSD с красивым графическим интерфейсом. Эти две операционных системы действительно совместно используют часть кода, например большинство утилит пользовательского пространства и библиотека C по OS X получены из версий FreeBSD. Часть этого кода развивается в разное время и в разных направлениях, например FreeBSD 9.1 позднее включила стек C++ и компилятор, который первоначально были разработаны для OS X сотрудниками Apple. Так же есть и кардинально разные детали.

    Ядро XNU, которое используется на OS X включает в себя несколько подсистем из более старых версий FreeBSD, но в основном считаются независимой реализацией. Но все же за счет своего сходства продукты реализованные на OS X значительно проще адаптировать под FreeBSD. Например libdispatch и libc ++ были записаны для OS X и работали на FreeBSD раньше, чем на любой другой ОС.

    В FreeBSD все необходимо компилировать с исходного кода

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

    Вы можете установить pkgng из портов (ports-mgmt/pkg) на более старых версиях FreeBSD. Она включена по умолчанию на FreeBSD 9.1 и более поздние версии.

    FreeBSD это UNIX из 90-х (или 80-ых)

    FreeBSD - линейный потомок исходного UNIX через Распределение программного обеспечения Беркли, но она продолжала развиваться отдельно. За последние несколько лет мы видели, что ZFS становится значительно производительней: поддержка 10 ГБ, 40 ГБ и 100 ГБ канала, улучшеная звуковая подсистема, поддержка 802.11n и других улучшений.

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

    Весь хороший код в FreeBSD родом из Solaris

    FreeBSD импортировала две функции высокого профиля из OpenSolaris: DTrace и ZFS. Обе теперь хорошо поддерживаются FreeBSD. ZFS, в частности, находится в центре внимания многих разработчиков FreeBSD, в том числе тех, которые используются iXsystems, компанией, которая поддерживает развитие FreeNAS и продает коммерческие NAS устройства на базе FreeBSD. Разработчики FreeBSD также работают в тесном сотрудничестве с разработчиками Illumos, одной из веток с открытым исходным кодом Solaris, для улучшения обеих этих функций.

    Несмотря на преимущества ZFS, это по-прежнему относительно небольшая часть общей системы. ZFS и DTrace составляют менее чем 4% кода в ядре, которое равно почти 10% кода в основной системе. Если считать, что только 0.4% FreeBSD хороши, то система не приобрела бы такой популярности.

    FreeBSD не имеет драйверов

    Это проблема, с которой сталкиваются все операционные системы, - даже новые версии Windows. Большую часть времени пользователи не заботятся об общем количестве драйверов, только если драйверы уже установлены по умолчанию. Есть некоторые упущения с точки зрения поддержки драйверов, но FreeBSD поддерживает широкий спектр сетевых карт (в том числе 802.11n чипсеты), большинство звуковых карт AMD, Intel и графические процессоры NVIDIA.

    Поддержка аппаратных средств - это та часть реализации, которая требует постоянной доработки, потому что нельзя просто сказать производителям аппаратных средств, чтобы они подождали пару лет, пока разработчики ПО их догонят. Обеспечение поддержки новых устройства занимает время для настройки, хотя некоторые производители сами обеспечивают драйверы, например Nvidia обеспечивает драйверы для их GPU и Intel для новейших сетевых контроллеров. Другие производители обеспечивают помощь в разработке драйверов FreeBSD, включая Broadcom, JMicron, HP, Mellanox, Chelsio и Solarflare. Если Вы знаете устройства, которые не поддерживаются FreeBSD, лучше сообщить про это разработчикам и производителям устройств. Как правило, лучшим толчком для решения проблемы со стороны производителей - сообщение о том, что их клиенты не могут использовать их продукты.

    FreeBSD 4.x лучшее из всего что было

    4.x релиз был самым стабильным и FreeBSD гордились тем, что они смогли реализовать такой продукт. Многие пользователи продолжали использовать его на протяжении многих лет. Серия 5.x вышла во время перехода к оптимизации многопоточности. Эта включало замену одной блокировки вокруг ядра с рядом меньших блокировок, которые используются отдельными подсистемами. Это требовало большого куска работы, что не могло не привести к некоторым ошибкам. 5.x поставлялась с двумя реализациями поточной обработки, а это еще больше осложняло ситуацию. Первые два выпуска в серии 5.x были отмечены «только разработчикам», но 5.2 была нацелена на более широкую аудиторию и не оправдала ожиданий пользователей системы FreeBSD. Ряд крупных пользователей решили не менять серию 4.x.

    Серия 5.x была болезненным уроком для проекта. В серии 6.x восстановили стабильность выпуска 4.x., а в серии 7.x восстановили производительность одного процессора. Во время выпуска серии 8.x можно было увидеть ряд опубликованных третьими лицами тестов, которые продемонстрировали лучшую масштабируемость FreeBSD на многопроцессорных системах, чем любая другая операционная система.

    Все эти релизы имели значительное количество улучшений, такие как улучшенная звуковая подсистема, ZFS, DTrace, ведение журналов UFS и многое другое, но стабильность и производительность остались ключевыми задачами системы FreeBSD.

    Недостатки программного обеспечения FreeBSD

    Коллекция FreeBSD в настоящее время содержит более 26 000 единиц программного обеспечения. Трудно сравнить это число с другими репозиториями, потому что программы разделены по-другому (например, GCC порт в FreeBSD устанавливает программы и библиотеки, которые разделены между 6-10 пакетами в Debian, в зависимости от версии GCC), но большинство вещей Вы все же можете там найти. Одной из причин, по которой пользователи выбирают FreeBSD является тот факт, что набор портов обеспечивает определенную, относительно неясную часть программного обеспечения, в котором она нуждается, в то время как другие системы этого не делают.

    Большая часть программного обеспечения в наборе портов работает исходно на FreeBSD. Большая часть программного обеспечения с открытым исходным кодом - агностик относительно ОС и требует, чтобы минимальная модификация была скомпилирована и работала на FreeBSD. Есть исключения такие как Valgrind, которые требуют детального понимания системы. Проприетарное программное обеспечение может быть более серьезной проблемой. Некоторые разработчики, такие как Opera, обеспечивают FreeBSD своим исходным кодом.

    Другое программное обеспечение должно работать в режиме эмуляции. Например, бинарные файлы Linux могут работать на уровне Linux ABI, где системные вызовы Linux переводятся на их эквиваленты FreeBSD. Единственный изъян - немного увеличенная нагрузка системных вызовов; обычно сложно измерить различие в производительности между выполнением программ Linux на Linux и на FreeBSD: в некоторых случаях программы работают быстрее на FreeBSD, чем на Linux из-за более эффективных реализаций базовых вызовов. Например, версия Linux Flash-плагина может работать, используя NSPluginWrapper на уровне Linux ABI с собственным веб-браузером.

    Аналогичное решение существует для запуска Windows приложений.

    FreeBSD не поддерживает виртуализацию

    FreeBSD 9 работает как гость Xen (domU) и на x86, и на x86-64, включая Amazon EC2. Благодаря работе, проделанной совместно с Microsoft, NetApp и Citrix, FreeBSD можно запускать на Hyper-V гипервизора Microsoft. FreeBSD 11 будет включать Dom0 поддержку управления домена.

    FreeBSD также поддерживает VirtualBox и в качестве гостя и в качестве хоста. Вы можете найти гостевые дополнения VirtualBox, а затем и сам гипервизор в наборе портов. FreeBSD 10 также работает в качестве хоста операционной системы для гипервизора BSD, давая множество возможностей для запуска FreeBSD виртуальных машин на базе FreeBSD.

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

    Лицензия BSD способствует взаимному сотрудничеству

    Пока разработчики кода FreeBSD не подадут на вас иск о нарушении авторских прав, Вы вольно можете его использовать. Но, если верить утверждениям самих разработчиков, такого не произойдет.

    Некоторые компании, почти наверняка возьмут наш код, изменят его и никогда ничего не предоставят взамен.

    Рассмотрим в качестве примера случай двух крупнейших интернет-компаний: Google и Yahoo! Прежде их внутренняя инфраструктура основывалась на операционной системе GPL, в то время как более поздние версии уже используют FreeBSD. Поскольку Google не распределяет их измененную операционную систему, они могут сохранить к примеру GoogleFS в частной собственности. В таких случаях как этот, где программное обеспечение разработано для внутреннего использования, по лицензионному соглашению компания не обязана раскрывать свои доработки для разработчиков FreeBSD.

    Существуют, однако, некоторые проблемы с соединением: например, нельзя использовать библиотеку с лицензией GPL, если уже используется BSD.

    На протяжении многих лет не мало компаний внесло значительный вклад в FreeBSD. И вызвано это не только чувством альтруизма, ведь поддержка любого проекта, который быстро развивается, очень дорогое удовольствие.



    © 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows