DragonFly BSD

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 06:51, 30 декабря 2017.
DragonFly BSD
DragonFly BSD Logo.png
Загрузчик dragonflybsd.png
DragonFly BSD 4.2.3 системный загрузчик
Разработчик Matthew Dillon
Линейка ОС UNIX-подобные (BSD)
Состояние разработки Актуальное
Исходный код Open source
Дата первого релиза 1.0 12 июль 2004 года
Последний релиз 5.0.2 / 4 декабря 2017 года
Доступно в English
Cистема управления пакетами DPorts[1], pkgng (система менеджмента бинарных пакетов)
Платформы x86-64
Ядро (тип) Гибридное ядро
Пользовательское
пространство
BSD
По умолчанию
пользовательский
интерфейс
Командная строка
Лицензия Modified BSD
Официальный веб-сайт www.dragonflybsd.org

DragonFly BSD (от Dragonfly - стрекоза) — операционная система, основанная на FreeBSD, предназначенная для работы на высоконагруженных серверах и эффективно использующая ресурсы компьютера, она ориентирована на платформу x86.[Источник 1]

Обзор DragonFly BSD

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

DragonFly BSD рекомендуется к использованию только опытным пользователям. В настоящее время ОС стабильно работает в том числе и под длительной серьёзной нагрузкой. Имеются небольшие шероховатости с отдельными портированными приложениями. Дистрибутив построен с использованием BSD Installer.

Основные отличительные особенности DragonFlyBSD

Основные отличия DragonFlyBSD от родительской операционной системы FreeBSD таковы:

  • Используются легковесные нити ядра (LWKT — Light Weight Kernel Threads)[2]. Само это не является оригинальной особенностью DragonFlyBSD и уже было реализовано в других операционных системах (но не в родительской операционной системе FreeBSD), однако механизм планирования нитей необычен — вместо единого планировщика (scheduler) их было введено несколько, по числу процессоров. Нити привязаны к своим процессорам, но возможна передача выполнения нити с одного процессора на другой.
  • В отличие от в значительной степени монолитной FreeBSD, где ядро и драйверы представляют собой единое целое, в DragonFlyBSD, наподобие микроядерных операционных систем, максимум функций ядра вынесено из пространства памяти ядра в пользовательское пространство (userspace). Тем самым достигается как рост производительности, так и надёжность системы в целом. Но при этом DragonFlyBSD не является микроядерной операционной системой, ибо функциональность ядра высока.
  • Традиционные для UNIX системные вызовы только эмулируются в целях совместимости. Вместо них используется механизм сообщений (messages) и их очередей, т. н. портов (ports), подобный применяющемуся в микроядре Mach.
  • Особо устойчивая и надежная файловая система Hammera[3].

Часть перечисленной оригинальной функциональности DragonFlyBSD была перенесена в родительскую систему FreeBSD, или ведутся работы по такому переносу.

Дистрибутивы

Дистрибутив существует в 2 вариантах:

  1. для записи на компакт-диск (файл с расширением iso)
  2. для записи на flash-носитель (файл с расширением img).

Дистрибутив может использоваться как для работы без установки (Live CD), так и для установки на жесткий диск. Начиная с версии 3.8 предоставляются образы только для 64-битной архитектуры. Кроме сборок релизных версий дистрибутива распространяются также ежедневные снапшоты, включающие все актуальные изменения.[Источник 2]

Достоинства и недостатки DragonFlyBSD

Плюсы:

  1. собственная файловая система Hummer.
  2. Базируется на легендарной четвертой версии FreeBSD.
  3. Очень быстро развивается. Новшеств больше, чем во всех других ОС семейства BSD вместе взятых.
  4. Реализовано много удачных идей, часть из которых уже передрали в FreeBSD.
  5. В целом производит ощущение стабильности. По некоторым данным уже может использоваться на продакшене.
  6. Удобная система сетевой установки бинарных пакетов pkg_radd.

Минусы:

  1. Не удалось запустить даже Иксы. Появляется темный экран и все виснет. Правка xorg.conf успехом не увенчалась.
  2. Полный бред с кодировками. До сих пор KOI8-R с кеймаппингом в CP866 и прочие извращения.
  3. Неудобный текстовой инсталлятор.
  4. Присутствует гадкий и совершенно ненужный ASCII-art.
  5. Очень странная политика безопасности. Например, в пароле нельзя использовать спецсимволы, хотя все руководства по выбору безопасного пароля наоборот строжайше предписывают использовать всякие #$%^&.
  6. Старые версии софта в репозитории.[Источник 3]


История и разработка DragonFly BSD

История DragonFly, как и история OpenBSD, началась с конфликта. Но если во втором случае конфликт был вызван не совсем джентльменским поведением человека, то в первом проблемой стало виденье будущего. В то время (начало 2000-х) кипела работа над следующей версией FreeBSD — 5.0, в которую должно было войти много новшеств (devfs, GEOM), а также были сделаны первые шаги для избавления от так называемой глобальной блокировки ядра (Big Giant Lock) при работе системы на многоядерных/многопроцессорных платформах (SMP).

Именно принятый план избавления от глобальной блокировки и стал причиной конфликта между разработчиками. Как известно, SMP-системы отличаются тем, что имеют единое адресное пространство для всех процессорных ядер. Другими словами, все ядра используют одну память, которая никак между ними не делится, всем доступно все. Возникает очевидная проблема: что будет, если два потока исполнения ядра попытаются получить доступ или изменить одну и ту же структуру данных (значение переменной sysctl, например) одновременно? Ответ: возникнет коллизия (поток, который должен был сделать это вторым, может сделать это первым, или наоборот — со всеми вытекающими отсюда последствиями). Самое простое решение этой проблемы: запретить исполнение всего кода ядра одновременно несколькими процессорами с помощью глобальной блокировки, как и было сделано в FreeBSD 4. Пока один процессор исполняет код ядра, второй ждет.

Само собой, такой подход неэффективен, и в FreeBSD 5 было запланировано начать постепенное избавление от этого костыля с помощью точечных блокировок (mutex), которые будут установлены на все сколько-нибудь значимые структуры данных. Так код ядра мог исполняться несколькими процессорами, а ждать приходилось только в случае одновременного доступа к одним и тем же структурам данных и подсистемам.

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

Один из активных разработчиков ядра FreeBSD и Linux Мэттью Диллон (Matthew Dillon) предложил решить эти и другие возможные проблемы, отказавшись от блокировок и заменив их на три ключевые технологии: механизм сообщений, привязку данных ядра к процессорам/ядрам и распараллеливание подсистем ядра между процессорами и ядрами.

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

В результате можно было убить целый взвод зайцев одним выстрелом:

Блокировки для доступа к данным процессов внутри ядра не требовались, так как данные структуры обслуживались независимо для каждого процессора. Блокировки для доступа к данным ядра в большинстве случаев не нужны, вместо них использовался бы механизм сообщений (поток просто отправляет запрос, и он ставится в очередь на обработку). Достигалась гораздо более высокая производительность благодаря распараллеливанию подсистем ядра: намного эффективнее запустить по одному стеку TCP/IP на каждое процессорное ядро и обеспечить их слаженную работу с помощью сообщений, чем расставлять по всему сетевому стеку блокировки или блокировать весь сетевой стек целиком. Представители FreeBSD Core Team, однако, были категорически против столь глобальных и резких изменений и настаивали на использовании блокировок: нельзя просто так взять и сломать ядро топором. Мэттью же считал, что систему необходимо разом перевести на новые рельсы, потому как постепенный переход невозможен, а блокировки затянут дело на годы. Слово за слово, Диллон покидает Core Team и отправляется в свободное плаванье.

История релизов (версий) DragonFly BSD

Версия Дата выпуска Изменения (новвоведения)
5.0 16.10.2017
  • Новая файловая система HAMMER2
  • может поддерживать более чем 900,000 процессов на одной машине
  • Улучшенная поддержка i915[4]
  • Лучшая производительность IPFW[5]
  • ... и другое
4.8 27.03.2017
  • Первоначальный поддержка Ryzen AMD[6]
  • Улучшенная поддержка i915
  • Улучшенная производительность ядра
  • eMMC поддержка загрузки
  • LibreSSL[7] заменена OpenSSL в целом
  • GCC 5.4.1
  • LTO поддержка[8]
  • Первоначальная система Clang[9]
  • Поддержка установки Extensible Firmware Interface (EFI)[10]
4.6 02.08.2016
  • Улучшенная поддержка i915 и Radeon
  • NVM Express[11] поддержка
  • Улучшенная производительность SMP
  • Улучшенная производительность сети
  • Предварительная поддержка UEFI загрузки
  • autofs, импортированный из FreeBSD, amd удален
4.4 07.12.2015
  • GCC 5.2
  • gold теперь удаленный компановщик
  • Улучшенная поддержка i915 и Radeon
  • Полный капитальный ремонт локальной системы
  • Поддержка сортировки по имени параметров
  • Постоянная библиотека заменяется на [12]
  • Поддержка управления версиями символов в libc
  • Многочисленные HAMMER очистки и исправления
4.2 29.06.2015
  • GCC 5.1.1
  • Улучшенная поддержка i915 и Radeon
  • Улучшенная звуковая поддержка
  • Улучшенная поддержка контроллера памяти и сенсора его температуры
  • Path MTU Discovery включенный по умолчанию
  • Поддержка SCTP удалена
  • Sendmail заменен DMA (Direct Memory Access)[13]
  • GNU Info pages removed
4.0 25.11.2014
  • Незакрытый и многопоточный PF
  • Более лучшим образом прошитые связанные сетевые для улучшения пропускной способности
  • Функция безопасности Procctl в ядре
  • Поддержка 256 CPUs
  • Улучшенная поддержка беспроводных сетей
  • Поддержка Rust и Free Pascal[14]
  • Улучшенная поддержка i915
  • GCC 4.7.4
3.8 04.06.2014
  • Динамический корень и поддержка PAM
  • USB4BSD установлена по умолчанию
  • Родной C-государственная поддержка Intel CPUs
  • TCP порт токена разделен для лучшего соединения
  • GCC 4.7.3
  • HAMMER2 в системе
  • Финальная 32-битная реализация
3.6 25.11.2013
  • Уменьшение конкуренции SMP
  • Выбор режима для схем ядра для процессоров Intel иAMD GPUs
  • Аппаратное ускорение для Intel GPUs до Ivy Bridge
3.4 29.04.2013
  • Новый менеджер пакетов и представление DPort-ов
  • GCC 4.7
  • Улучшенное использование CPU и tmpfs производительность при экстремальной нагрузке
3.2 02.11.2012
  • Мультипроцессорное совместимое ядро стало обязательным
  • Улучшения производительности в планировщике
  • USB4BSD импортирован из FreeBSD.
  • PUFFS (NetBSD) импортирован из NetBSD.
3.0 22.02.2012
  • Мультипроцессорное совместимое ядро стало обязательным
  • Улучшения в производительности HAMMER
  • TrueCrypt-поддержка[15] совместимого шифрования
  • dm-crypt[16] заменена совметстимой BSD-лицензированной библиотекой
  • Улучшенная POSIX совместимость
  • Драйвер устройства для ECC memory
  • Основные улучшения стека сетевых протоколов и SMP
  • связанные с ACPI с улучшения
2.10 26.04.2011
  • Giant блокировка удалена из каждой области, кроме подсистемы виртуальной памяти
  • Дедупликация HAMMER
  • GCC 4.4
  • Мостовая система переписана
  • Основные улучшения производительности
2.8 30.10.2010
  • Wi-Fi стек импортирован из FreeBSD
  • Управление логическими томами
  • dm-crypt
  • Новый дисковой диспетчер
  • Уменьшенное использование giant lock
2.6 06.04.2010
  • Swapcache[17]
  • tmpfs перемещна из NetBSD
  • HAMMER и основные усовершенствования I/O
2.4 16.09.2009
  • devfs
  • Новый драйвер AHCI
  • Улучшения NFS
  • Полная поддержка платформы x86-64
2.2 17.02.2009
  • HAMMER официальное производство
  • Основные улучшения стабильности
  • Новые дополнения медиа: Live CD
2.0 20.07.2008
  • HAMMER официальное производство
1.12 26.02.2008
  • Рамки датчика импортированные отFreeBSD
  • Bluetooth стек
  • GCC 4.1
  • DragonFly Mail Agent (DMA), MTA
  • Поддержка Intel 80386 CPU
  • Не функциональная поддержка платформы x86-64
  • Экспериментальная поддержка HAMMER
1.10 06.08.2007
  • Система пользовательских потоков
  • Поддержка Advanced Host Controller Interface
  • Поддержка GUID Partition Table
1.8 30.01.2007
  • Реализация виртуального ядра
1.6 24.07.2006
  • Новый генератор случайных чисел
  • Структура рефакторинга IEEE 802.11
1.4 07.01.2006
1.2 {{08.04.2005
  • TCP SACK
  • TCP Performance tuning
  • Консоль IEEE 1394
  • Поддержка X11 Window System
  • Поддержка pkgsrc
1.0 12.07.2004
  • Technology showcase
  • New BSD Installer
  • Подсистема LWKT и облегченные порты / система обмена сообщениями
  • MP-безопасный стек сети
  • Открытый распределитель памяти
[Источник 4]

Стандартная установка и настройка DragonFly BSD

Варианты установки

Установочный диск DragonFly - загрузочный, несет на себе инсталлятор собственной конструкции. Кроме того, он являет собой полноценный Live CD, что допускает выполнение всех необходимых действий, предваряющих установку. Однако начну по порядку.

На первой стадии загрузки появляется обычное для FreeBSD меню выбора режимов загрузки - "умолчального", с отключенным ACPI, в однопользовательском режиме, и так далее. Отличие только в логотипе - стрекоза вместо демона с вилами. Никаких проблем с загрузкой на подручных конфигурациях (весьма, нужно сказать, разнообразных) не возникает. В отличие, опять же, от FreeBSD, которая в "умолчальном" режиме категорически отказывалась грузиться на моей Toshiba, а при отключении ACPI грузилась через раз. В ходе загрузки файловая система установочного CD монтируется как корневая в оперативной памяти. Для всякого рода установочных действий в ней предназначается каталог /mount.По завершении загрузки системы поступает предложение авторизоваться. Возможных аккаунтов - два: root и installer, оба беспарольные. Выбор того или иного предопределяет дальнейшие действия - впрочем, почти в любой момент времени можно переавторизоваться.Аккаунт root предназначен для ручной установки системы. После его регистрации появляется приглашение командной строки (полноценный tcsh), из которой и выполняются все необходимые действия, как то:

создание первичного дискового раздела для установки DragonFly (слайса, в терминологии FreeBSD) с помощью команды fdisk; разбиение слайса на разделы под отдельные файловые системы DragonFly (корневую, для каталогов /tmp, /var, /usr и так далее, по потребности), а также выделение пространства под своппинг: все это делается посредством команды disklabel; создание собственно файловых систем с помощью команды newfs; создание в каталоге /mount подкаталогов - точек монтирования для новообразованных файловых систем; собственно монтирование их командой mount куда следует - будущего корня в /mount, грядущих /tmp, /var, /usr - в /mount/tmp, /mount/var, /mount/usr, соответственно, и так далее; перенос содержимого необходимых каталогов с установочного CD на подготовленные файловые системы винчестера - / в /mount, /var в /mount/var, и так далее; делается это не простым копированием, а специально для этого предназначенной утилитой cpdup; постинсталляционные действия - установка требуемых прав доступа для некоторых каталогов, удаление ненужных более временных файлов, редактирование необходимых конфигурационных файлов (например, /mount/etc/fstab, /mount/etc/rc.conf, и так далее). Все сказанное звучит несколько устрашающе, хотя ручная установка DragonFly не требует от пользователя чего-либо сверхъестественного. Тем более что весь процесс очень подробно описан в Handbook'е. Однако дело это весьма занудное - особенно разбиение диска на слайсы и создание разделов под файловые системы, связанные с вычислениями (fdisk и disklabel не являют собой идеала дружественности к пользователю) и требующие большой аккуратности.

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

И еще: дистрибутивный диск DragonFly являет собой настоящий Live CD, и с помощью root-режима после установки системы можно выполнять всякого рода аварийно-спасательные работы, а также некоторые мероприятия по настройке уже установленной системы.

Второй вариант авторизации - под аккаунтом installer. Это автоматически вызывает штатный установщик DragonFly - BSD Installer, служащий также для начального конфигурирования системы. Именно он и будет предметом дальнейшего рассмотрения.

BSD Installer: установка

Как уже говорилось в предыдущей заметке, BSD Installer - программа, созданная в рамках самостоятельного проекта, и предназначенная для установки любых BSD-систем. Однако пока она оказалась востребованной именно для установки DragonFly (и еще - в Live CD системе, FreeSBIE, где позволяет превратить ее в полноценную FreeBSD 5-й ветки). Однако именно в DragonFly эта программа показывает себя во всей красе.

В дистрибутиве DragonFly применяется BSD Installer с псевдографическим фронт-эндом, основанным на библиотеке ncurces. Он несколько напоминает по стилю традиционную sysinstall из FreeBSD, но производит впечатление более логичного и понятного, хотя и уступает (пока?) тому в функциональности. Тем не менее, как и sysinstall, BSD Installer - позволяет не только инсталлировать базовую систему, но и выполнить основные ее настройки, Причем не только во время первичной установки, но и, с некоторыми оговорками, и впоследствии.

Фактически BSD Installer выполняет все те действия, которые пользователь производит при ручной установке сам, но - в полуавтоматическом режиме, предоставляя через меню выбор из нескольких предопределенных вариантов. Что, понятно, менее гибко, но существенно легче. Кроме того, он допускает (до некоторого момента) отказ от совершенных действий и возврат на исходные позиции, позволяя избежать необратимых ошибок (например, при разметке диска).

Для начала, сразу после регистрации с аккаунтом installer, установщик предлагает следующие варианты выбора:

  1. установка;
  2. конфигурирование ранее установленной системы;
  3. утилиты Live CD;
  4. выход в среду Live CD;
  5. перезагрузка.

Процесс установки DragonFly BSD на виртуальной машине

Первое, что можно видеть при старте с флешки — менюшку выбора диска: нулевого (им в данном случае является USB-накопитель) и первого, то есть винчестера. Для загрузкис первого подождать ровно 18,2 секунды или, для ускорения, нажать F1. Для выбора винчестера служит клавиша F5. При использовании установочного компакта этого не будет — сразу появится меню загрузчика, BSD Loader’а (общего для всех ОСей семейства):

Dfbsd-37 001.png

В большинстве случаев подойдёт первый пункт — загрузка стандартного ядра, которая начнётся через 10 секунд или по нажатию клавиши Enter. При каких-либо осложенениях придётся экспериментировать с отключением AHCI, ACPI или обоих, но последнее время я с таким не сталкивался.

После загрузки системы (это довольно длинный процесс, при использовании флешки он займёт более полминуты) появится приглашение к авторизации:

Dfbsd-37 002-300x192.png

Авторизация root’ом предназначена для ремонтных работ, для установки системы следует набрать installer (вход в обоих случаях беспарольный), после чего появится главное меню установщика DragonFly — программы BSD Installer:

Dfbsd-37 003-300x192.png

Очевидно, что сейчас нам интересен первый, отмеченный по умолчанию, пункт, влекущий за собой повторное приглашение к установке:

Dfbsd-37 004-300x192.png

После этого следует предложение выбрать целевой носитель — при установке в виртуальной машине оно выглядит так:

Dfbsd-37 005-300x192.png

При инсталляции на реальное железо здесь покажут все наличные диски — в моём случае это были da0, da1 (SSD) и da2 (HDD). Различия в именах устройств связано с тем, что в виртуалке эмулируются диски на PATA-контроллере, в реальной же машине имеются накопители SATA, именуемые по тем же правилам, что и диски SCSI (da — Direct Access, куда попадают также все прочие носители, кроме обычных PATA, которые, как и раньше, именуются ad — ATA Disk).

Следующий шаг — выбор между установкой на весь диск или на его раздел:

Dfbsd-37 006-300x192.png

В случае виртуальной установки выбор первого пункта очевиден, но и в реале, как уже говорилось, я также отдал на растерзание DragonFly весь винчестер.

Далее следует предупреждение об опасности потери данных и сообщение о выполнении разметки (в стиле BSD, то есть как единого слайса, занимающего весь диск):

Dfbsd-37 007-300x192.png
Dfbsd-37 008-300x192.png

Затем предлагается определиться с используемой файловой системой — поскольку вся возня была затеяна в том числе и ради знакомства с Hammer’ом, выбор здесь очевиден:

Dfbsd-37 009-300x192.png

По умолчанию предлагается такая схема разметки слайса на разделы:

Dfbsd-37 010-300x192.png

И не соглашаться с ней оснований нет. Следует только отметить, что корневой раздел — это и есть место помещения файловой системы Hammer, которая, как мы со временем увидим, разделена на несколько так называемых псевдофайловых систем (PFS) — это примерные аналоги дейтасетов ZFS и субтомов btrfs. Потому что Hammer — это не просто файловая система, а интегрированная система размещения данных, объединяющая в себе функции систем управления мультидисковыми устройствами (подобных softRAID и LVM) и собственно файловой системы. Ознакомиться с основными особенностями Hammer можно на соответствующей странице проекта (или в её переводе).

Процесс инсталляции начинается после согласия с предложенной по умолчанию схемой разметки диска:

Dfbsd-37 012-300x192.png

Продолжается он не очень долго (особенно если носитель — USB-флешка), так как устанавливается у нас только базовая система, без Иксов и прочих излишеств. И, как только он заканчивается — предлагается установить загрузчик — по умолчанию в MBR целевого носителя[Источник 5]:

Dfbsd-37 014-300x192.png

Видео установки DragonFly BSD

Примечания

  1. Dport система стороннего программного обеспечения http://alv.me/dragonflybsd-Pervye-shagi-porty-i-pakety/
  2. Light Weight Kernel Threads (LWKT) https://en.wikipedia.org/wiki/Light_Weight_Kernel_Threads
  3. 64-битная файловая система Hammer https://ru.wikipedia.org/wiki/HAMMER_(файловая_система)
  4. Чипсет Intel 915/925 Express https://www.ixbt.com/mainboard/i915-i925-chipsets.shtml
  5. Межсетевой экран IPFW https://ru.wikipedia.org/wiki/Ipfw
  6. Процессоры AMD Ryzen https://geektimes.ru/post/294325/
  7. LibreSSL — библиотека с реализацией протоколов SSL/TLS https://ru.wikipedia.org/wiki/LibreSSL
  8. LTO (Linear Tape-Open) — стандарт записи на магнитную ленту https://ru.wikipedia.org/wiki/LTO
  9. Фронтенд Clang для языков программирования C, C++, Objective-C, Objective-C++ (англ.) и OpenCL C https://ru.wikipedia.org/wiki/Clang
  10. Extensible Firmware Interface (EFI) («интерфейс расширяемой прошивки») https://ru.wikipedia.org/wiki/Extensible_Firmware_Interface
  11. NVM Express (NVMe, NVMHCI — Non-Volatile Memory Host Controller Interface Specification) https://ru.wikipedia.org/wiki/NVM_Express
  12. Библиотека с открытым исходным кодом для сопоставления шаблонов в тексте TRE (computing) https://en.wikipedia.org/wiki/TRE_(computing)
  13. Технология прямого доступа к памяти DMA https://habrahabr.ru/post/37455/
  14. Free Pascal (полное название Free Pascal Compiler, часто используется сокращение FPC) — свободно распространяемый компилятор языка программирования Object Pascal https://ru.wikipedia.org/wiki/Free_Pascal
  15. TrueCrypt — компьютерная программа для шифрования на «лету» для 32- и 64-разрядных операционных систем семейств Microsoft Windows NT 5 и новее (GUI-интерфейс), Linux и Mac OS X https://ru.wikipedia.org/wiki/TrueCrypt
  16. Использование dm-crypt методаи подхода https://wiki.archlinux.org/index.php/Dm-crypt_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9)
  17. Метод Swapcache https://habrahabr.ru/company/paysto/blog/254619/

Источники

  1. DragonFly BSD 5.0 // Linux.org [2017-2017]. Дата обновления: 16.10.2017. URL: https://www.linux.org.ru/news/bsd/13755483 (дата обращения 30.12.2017)
  2. DragonFly BSD // Wikipedia. [2006-2017]. Дата обновления: 27.05.2016. URL: https://ru.wikipedia.org/wiki/DragonFly_BSD (дата обращения 30.12.2017)
  3. Достоинства и недостатки DragonFlyBSD // Либератум. [2008-2016]. Дата обновления: 28.03.2013. URL: http://liberatum.ru/blog/25288 (дата обращения 30.12.2017)
  4. DragonFly BSD // Wikipedia. [2006-2016]. Дата обновления: 17.12.2017. URL: https://en.wikipedia.org/wiki/DragonFly_BSD#Release_history (дата обращения 30.12.2017)
  5. DragonFlyBSD. Стандартная установка // GeneratePress. [2017-2017]. Дата обновления: 18.02.2014. URL: http://alv.me/dragonflybsd-Ustanovka/ (дата обращения 30.12.2017)