DragonFly BSD

Скриншот программы:
DragonFly BSD
Детали программы:
Версия: 5.2.2 обновление
Дата загрузки: 22 Jun 18
Разработчик: The DragonFly Team
Тип распространения: Бесплатная
Популярность: 50

Rating: 5.0/5 (Total Votes: 1)

DragonFly BSD - это операционная система BSD с открытым исходным кодом, предназначенная для логического продолжения серии ОС FreeBSD-4.x. Он очень похож на другие дистрибутивы на основе BSD, такие как FreeBSD, NetBSD или OpenBSD. Это, конечно, вилка на пути, дающая базе BSD возможность расти в совершенно новом направлении от того, что было сделано в серии FreeBSD-5. Кроме того, он включает в себя уникальный набор функций, которые отличает его от других подобных ОС.


HAMMER - главная достопримечательность

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

Предлагает два разных планировщика для ядра
В ядро ​​DragonFly & s входит два разных планировщика, в которых расписаны все исполняемые объекты (Light Kernel Thread) и еще один, который выбирает один поток пользователей за раз для каждого процессора и абстрагирует пользовательские потоки (User Thread Scheduler). Кроме того, в ядре используется сложный распределитель памяти ядра, состоящий из объектно-ориентированного распределителя памяти и базового ядра malloc, называемого kmalloc (), файловой системы устройства DragonFly (DEVFS), виртуального ядра (VKERNEL), асинхронизации NFS V3 RPC и дискового планировщика ввода-вывода (dsched).


Особенности, множество функций

Среди других интересных функций можно отметить NULL-файловый уровень (NULLFS), который поддерживает произвольные точки монтирования без петли, TMPFS (временная файловая система VFS), прозрачное шифрование диска, поддержка SSD (Solid Storage Device), вариант (контекст -чувствительные) символические ссылки, DNTPD (Демон сетевого времени DragonFly) и DMA (агент почты DragonFly). Кроме того, пользователи смогут в любое время проверять или приостанавливать процессы на диск. В дистрибутиве имеются мощные драйверы AHCI, стабильные имена устройств, а также хорошо заземленное шифрование и управление томами.

Нижняя линия

В целом, DragonFly оказывается современной, удобной и доступной UNIX-подобной операционной системой. Он может использоваться ежедневно как настольная система или как мощный сервер BSD.

Что нового в этой версии:

  • Версия DragonFly 5.2.1 была выпущена с устранением Meltdown / Spectre, многие улучшения в HAMMER2, ipfw и ускоренном видео, а также (в исправлении 5.2.1) для CVE-2018-8897.

Что нового в версии:

  • Кристиан Грейслер (1):
  • telnetd: распечатать информацию о системе (ОС и архитектуре) перед началом запроса.
  • Мэтью Диллон (7):
  • hammer2 - Исправить деление на 0 гонку.
  • Ядро - выборочный MFC ядра umtx работает от master
  • - обновить документацию umtx
  • libc и pthreads - Исправлены ошибки atfork с помощью nmalloc, update dmalloc
  • hammer2 - Исправить переименование гонки
  • hammer2 - оптимизировать hammer2_pfs_memory_wakeup ()
  • hammer2 - исправить неопределенные грязные цепи из-за переименования
  • Саша Вильднер (5):
  • hammer2.8: Исправить опечатку.
  • Скажите «hammer2» вместо «молота» в разных местах.
  • mtree: исправить владельца для нескольких каталогов в / usr / share.
  • libc / nls: используйте текущий язык (заданный по потоку).
  • libarchive: Отменить фиксацию, которая не должна была быть нажата.

Что нового в версии 4.8.1:

  • Ядро:
  • Код кэша кода Refactor для удаления динамических резервирования KVA. Вместо этого все KVA зарезервированы во время загрузки. Экономит нас от ненужных IPI и позволяет значительно упростить код кэша буфера.
  • Добавить vfs.repurpose_enable (в тесте, отключено по умолчанию). Эта функция позволяет значительно снизить нагрузку на управление IPI и VM на машине, которая делает огромные объемы ввода-вывода файлов, например, с SSD NVMe, минуя обычный механизм рециркуляции страниц VM. При включении эта функция срабатывает только при высоких нагрузках ввода-вывода. Он работает, перепрофилируя страницы VM, лежащие в основе буфера на месте (когда это возможно), чтобы не создавать kremove / kenter страницы в KVA буфера. Обычная перезагрузка страницы VM (которая в противном случае была бы перегружена нагрузкой ввода-вывода) также обходится.
  • Измените способ обработки IPIQ, в частности создайте независимый вектор векторного механизма для недопустимых страниц, который игнорирует (будет работать), даже если критический раздел удерживается. Внедрите machdep.optimized_invltlb (отключено по умолчанию, в рамках теста), что позволяет избежать отправки IPI недействительных IPL на idle cpus.
  • Исправьте многочисленные гонки, которые могут возникать при экстремальных нагрузках. Большинство случаев использования никогда не запускают их, но наши сборные коробки делали время от времени. Например, была гонка двух команд, в которой бит cpu для pmap был бы очищен (для двух инструкций) и вызывать IPI TLB, возникающий одновременно с другим процессором для одного и того же pmap, чтобы не понимать, что cpu использует pmap , Исправление состоит в том, чтобы отключить оптимизацию перезагрузки CR3 для корпуса коммутатора LWP- & gt; LWP (тот же самый proc).
  • Исправьте ошибку HAMMER, которая может привести к ошибке сообщения DATA CRC.
  • Исправить двойную запись, вызванную тем, как HAMMER использует cluster_write (). Это значительно улучшает производительность записи HAMMER.
  • Также вошло множество других исправлений и исправлений HAMMER.
  • Исправить жесткую блокировку, которая может возникнуть в getpbuf * () из-за неправильной интерпретации возвращаемого значения атомарного op.
  • Исправить прерывание стекирования, которое может появиться в окне с 10 командами, потенциально (но не найденное в дикой природе), запускающее стек ядра.
  • Отключить IP-адреса, связанные с pmap, пополам для определенных операций кеш-кеша, не беспокоясь о недействительности TLB, а на флип-стороне всегда отменяет TLB при вводе нового PTE, даже если предыдущее содержимое было недействительным. Это улучшает производительность, а также облегчает отладку путем устранения проблемной оптимизации.
  • Исправить ряд трудных для запуска SMP-гонок, в частности, связанных с одновременным увеличением количества точек монтирования, которые может вызвать сборка. Также исправьте гонку mountctl vs umount.
  • Уменьшите количество атомных op в пути коммутатора.
  • Исправьте гонку / панику намекачей, которая может произойти при экстремальных нагрузках в сочетании с большим количеством действий mount / umount.
  • Ограничьте% rip-выборку до корня.
  • Исправить проблему getpid () в vfork () при поточной передаче. В частности, одновременный vfork () s в потоковой программе может привести к тому, что неверный PID будет возвращен getpid () в дочернем элементе до exec.
  • Исправить редкую гонку tsleep / callout, когда таймер выноса срабатывает до завершения полной настройки tsleep ().
  • Сообщения об остановке namecache на консоли. В частности, сообщите о правильном прошедшем времени и td_comm задействованного потока.
  • Дальнейшее сокращение тестирования памяти и обнуления начальной загрузки для улучшения времени загрузки в системах с большим количеством оперативной памяти.
  • Полностью удалите код обхода страницы. Обнуление страницы по современному процессору по требованию лучше по многим причинам, и на самом деле может быть быстрее в сочетании с доступом пользователей к данным на странице из-за эффектов кеша. Удалите PG_ZERO, потому что он больше не нужен. Удаление PG_ZERO также делает ядро ​​более отлаживаемым, удалив еще один возможный источник перекрестного загрязнения.
  • Рефакторинг и завершение реализации локализации ЦП для распределения памяти ядра. Объединитесь с осознанием NUMA. Это работает для cpu-локализованных или недолговечных структур данных ядра. Эти два объединены вместе в нашей абстракции PQ_L2_SIZE, которая раньше использовалась в качестве кода окраски страницы VM. Этот код теперь также обрабатывает локализацию ЦП и понимание NUMA.
  • Исправить многие проблемы vkernel и значительно улучшить производительность vkernel.
  • Обновить файл kern.proc.pathname, sysctl, используемый программами для поиска пути к запущенной программе. Этот sysctl был первоначально реализован до того, как мы сохранили достаточные данные, чтобы вернуть полный правильный путь.
  • Синхронизация ACPICA от Intel (это обычное явление).
  • Исправьте сборку memcpy () ABI. Сборка не возвращала исходный (dst) аргумент. Не исправляет никаких известных проблем, но закрывает отверстие, когда GCC иногда решает позвонить memcpy при генерации кода.
  • Многие из них обязуются очистить предупреждения -O2 и ошибки. Ядро теперь скомпилировано -O2 по умолчанию.
  • Добавить обходной путь для неправильного выхода в ACPI-пути (например, багги-код ACPI).
  • Исправьте гонку STOP / CONT, которая может быть вызвана ожидающим сигналом в самое неподходящее время.
  • Резьбовые исправления coredump и исправляют блокировку, связанную с тем же, когда одновременно выполняются несколько потоков одного и того же процесса seg-fault.
  • Исправьте тупик CAM / VM, который может произойти из-за ошибки в uiomove_nofault (). Это может вызвать «неопределенный буфер ожидания» во время интенсивного подкачки / подкачки.
  • Добавить код для обнаружения и устранения потерянных IPI. Это прежде всего для vkernels, где некоторые виртуальные хосты могут потерять IPI. Реальные процессоры не должны потерять IPI.
  • Различные исправления для clock_gettime ().
  • Удалите остатки MPLOCK. Все критические пути уже давно лишены этой блокировки, но по-прежнему остается несколько некритических мест, которые используют его.
  • Исправьте код убийства с низкой памятью и исправьте ряд рас, которые могут помешать работе функции.
  • Исправить системную блокировку с помощью VMM и реорганизовать код VMX.
  • Исправьте тупик, когда numvnodes достигнут maxvnodes, что может произойти при тяжелых нагрузках. Также устраните небольшую утечку памяти ядра, когда «df» или «синхронизация файловой системы» запускаются с помощью umount. Также уменьшите вычисление maxvnodes скромно. Например, машина с 8 ГБ оперативной памяти теперь будет устанавливать maxvnodes на 478483 вместо 598103.
  • Исправить редкую панику, которая может быть вызвана vm_object_page_remove (), когда user_yield () неправильно вызван, удерживая спин-блокировку, а затем решает отказаться.
  • Уменьшить размер некоторых динамически распределенных структур ядра. В частности, избыточное распределение хэш-таблиц inode теперь меньше. В первую очередь влияет на UFS (который DragonFlyBSD не использует много).
  • Добавить обходной путь для AMD erratum 793.
  • Исправить тупик, который может возникать в вызовах кластера с кластерами _ * ().
  • Исправить ошибку, при которой загрузка рекурсивного модуля может быть заблокирована.
  • Исправить глупую ошибку в NFS-файле (например, на стороне сервера NFS), что может привести к тому, что код глупых серверов NFS никогда не удалит глупо-переименованный файл. Как глупо!
  • Сделайте лучшую работу, поддерживая конфигурации с высокой-ncpu + низкой памятью.
  • Рефтор разделяет шпиндельные блоки, чтобы уменьшить количество вращения, которое может произойти, когда несколько процессоров приобретают общую спин-блокировку в одно и то же время.
  • Пересмотреть операции наложения, чтобы уменьшить конкуренцию SMP еще больше. Это улучшает одновременную неконфликтную однокомпонентную производительность не менее 25 раз на системах со многими ядрами и значительно сокращает операции vnode и mount ref ref и unref.
  • Переустановите множество других структур ядра, чтобы улучшить локальность кэша и уменьшить отскакивание строки в кеше.
  • Исправить ошибку в переименовании файла SMBFS.
  • Внедрите RLIMIT_RSS, ограничитель для каждого процесса, который заставит локализованный пейджинг на основе каждого процесса. Эта функция может использоваться для предотвращения того, чтобы один процесс превратил остальную часть машины в жесткий корпус.
  • Увеличьте максимальное поддерживаемое пространство подкачки. Максимум в настоящее время ограничен главным образом баром и будет находиться в десятках терабайт (если у вас достаточно бара для поддерживающих структур управления). Также увеличьте KVM ядра от 128G до 511G.
  • Реализовать динамическое удаление pmap (по умолчанию отключено). Это направляет код pmap для удаления страниц страницы промежуточной страницы и PD из pmap на лету. Это может быть полезно, если память стоит на высоте, но обратите внимание, что если она включена, это замедлит выполнение программ, которые выделяют и освобождают память с высокой скоростью.
  • Рефакторинг, как работают «хорошие» уровни пользователей, делая выбранные хорошие значения более значительными, чем они были раньше.
  • Добавьте высокопроизводительный драйвер NVME для DragonFly, написанный Matt Dillon. Этот драйвер будет использовать векторы MSI-X и все доступные очереди, поддерживаемые устройством, локальную локализацию без блокировки или минимальную блокировку (в большинстве случаев не конфликты SMP) и способен к безумным IOPS и пропускной способности.
  • Графика:
  • Стабилизирует Broadwell и Skylake, поднимите нас на эквивалентный DRM Linux 4.6.
  • Внедрение Linux i2c API для упрощения переноса.
  • Исправьте несколько старых ошибок, включая отмену блокировки, которая может остановить воспроизведение видео (и остальную часть X).
  • Исправить ошибку приоритета потока drm ядра, которая позволила пользовательским процессам иметь более высокий приоритет, чем вспомогательный поток drm. Это фиксирует большинство временных видеопотоков, сообщаемых в браузерах.
  • Обрабатывать фреймбуфер EFI, переходящий в DRM, улучшать переходы с переключением VT-переключателей и исправлять связанный с ним тупик. Также ядро ​​попытается переключиться на консоль VT от X, когда произойдет паника.
  • Сеть:
  • Много улучшений по всем направлениям.
  • iwm - исправляет проблему, вызванную инвертированной логикой. Многочисленные другие улучшения, которые значительно улучшают производительность.
  • wlan - Поддержка асинхронного сканирования bg и других функций.
  • Другие драйверы:
  • nvme - Добавлена ​​сборка ядра по умолчанию, а также исправления и улучшения производительности.
  • mmcsd - Значительная поддержка eMMC добавлена ​​в DragonFly.
  • ahci - Некоторые исправления совместимости и дополнительные причуды добавлены для поддержки сломанных наборов микросхем, в частности мультипликаторов портов. Кроме того, при использовании набора микросхем реализуйте FBS (FIS-Based-Switching).
  • Добавлена ​​поддержка Trackpoint и Elantech.
  • Самодельная:
  • systat расширен, чтобы свернуть несколько прерываний, принадлежащих одному и тому же драйверу, так как часто их слишком много, чтобы перечислять их сейчас.
  • systat -vm 1 значительно улучшен и обновлен, чтобы сообщать более полезную информацию и распаковывать поля, чтобы они не работали друг с другом. И добавьте «nvme» в соответствие блочного устройства. Также отрегулируйте расширенный дисплей vmstats и измените, как сообщается ozfod и nzfod.
  • 'vmstat 1' реорганизован. Все поля были связаны друг с другом из-за высокой производительности современных машин, которые существовали 30 лет назад.
  • Изменить привязку mount / mountd, чтобы уменьшить ненужные проверки и команды mountlist из операций mount_null и mount_tmpfs. Только очень важно при одновременном использовании mount / umount, но основная сборка фактически создает эту ситуацию.
  • Исправить многочисленные утечки fork / exec * (), которые могут вызвать libc из-за не использования O_CLOEXEC в атомном режиме. Добавьте различные функции O_CLOEXEC к функциям типа popen () и mk * stemp * () (добавьте mkostemp () и mkostemps ()). Исправьте утечку дескриптора файла в popen () при работе в потоковой среде.
  • Будьте лучше в pthreads в vfork (), предоставив lwp нового субпроцесса тот же TID, что и vfork (). Это позволяет выполнять функции поддержки pthread в дочернем элементе во время vfork без взлома pthreads.
  • Множество исправлений совместимости с заголовками для улучшения объемных сборников dports.
  • Несколько экземпляров OpenSSL для исправления безопасности.
  • Resync OpenSSH, чтобы упростить его сохранение.
  • Разделите флаги ядра C, создав для сборки ядра KCFLAGS вместо CFLAGS.
  • Удалите с дерева множество старых драйверов ISA. Поскольку DragonFlyBSD теперь только 64-битный, мы можем начать удалять старые драйверы, которые не существуют на 64-разрядных платформах.
  • Введите WORLD_CFLAGS и WORLD_CCOPTLEVEL, по умолчанию -O. Это упрощает компиляцию вашего мира -O2 или любого другого (например, WORLD_CCOPTLEVEL = 2). Однако мы препятствуем использованию 3 или выше. Допустимые значения: 0, 1, 2, 3, s, g и «fast».
  • Отрегулируйте форматирование STATUS для ps, чтобы сделать его более читаемым и удалить древние флаги, которые больше не применимы и просто создают беспорядок.
  • Исправить выравнивание malloc () для небольших распределений. Минимальное выравнивание теперь составляет 16 для распределений в диапазоне 16-128 байтов вместо 8. Обратите внимание, что распределения мощности из 2 всегда были выровнены естественным образом, но некоторые программы используют кратные (например, 16), например «48», и предположим, что 16-байтовое выравнивание.
  • Фортуны реорганизованы, добавлены.
  • powerd - добавьте управление на основе температуры в powerd с новой опцией -H lotemp: hightemp. Эта функция чрезвычайно полезна для ноутбуков с плохим охлаждением и whos BIOS преднамеренно дросселируются при слишком высокой температуре. Powerd теперь также обнаруживает изменения состояния питания (которые могут изменять список доступных частот) и правильно переводит службу при изменении состояния питания.
  • Исправлено множество исправлений libthread_xu / pthreads для улучшения совместимости с dports.
  • Добавить функции копирования на запись в vkernel. Например, позволяет нескольким vkernel использовать один образ диска, если каждый из COW изменяет внутренне, чтобы опустить.
  • / usr / src / secure rewired, конфликты удалены из libmd, libcrypt.
  • В базовой системе были обновлены различные инструменты:
  • Компилятор обновлен до GCC 5.4.1.
  • Теперь у нас есть золотой линкер с LTO.
  • binutils 2.25
  • меньше 481.
  • OpenSSL / LibRESSL полностью обновлен. База теперь использует libressl.
  • Несколько обновлений часового пояса.
  • Статус молота:
  • Другие улучшения. Одна вещь, которая не попала в релиз, была ошибкой версии для использования более быстрого алгоритма CRC с другим полиномом. Эта работа будет MFC'd -release после завершения тестирования. Тем не менее, пользователи не должны слишком беспокоиться об этом, потому что наиболее серьезное исправление производительности IS в релизе (исправление для кода cluster_write () для записи файловой системы).
  • Hammer2 Статус:
  • Разработка продолжается, но еще нет слова в первом выпуске.
  • Статус Clang:
  • Добавлена ​​стартовая структура для использования clang в качестве альтернативного базового компилятора в DragonFly для замены gcc 4.7. Это еще не завершено. Конечно, Clang можно добавить как пакет.
  • 64-разрядный статус:
  • Обратите внимание, что DragonFly - это 64-разрядная операционная система с 4,6 и не будет работать на 32-разрядном оборудовании.
  • Поддержка AMD Ryzen находится в выпуске, и дальнейшая работа будет внедрена по мере появления новых разработок Ryzen. Есть некоторые проблемы с сообщением о топологии процессора, которые будут исправлены и MFC'd. Есть некоторые проблемы стабильности, которые в настоящее время ждут обновления микрокода AMD для разрешения / повторного тестирования. Пользователи Ryzen могут быть уверены, что остаемся на вершине!

Что нового в версии 4.8.0:

  • Ядро:
  • Код кэша кода Refactor для удаления динамических резервирования KVA. Вместо этого все KVA зарезервированы во время загрузки. Экономит нас от ненужных IPI и позволяет значительно упростить код кэша буфера.
  • Добавить vfs.repurpose_enable (в тесте, отключено по умолчанию). Эта функция позволяет значительно снизить нагрузку на управление IPI и VM на машине, которая делает огромные объемы ввода-вывода файлов, например, с SSD NVMe, минуя обычный механизм рециркуляции страниц VM. При включении эта функция срабатывает только при высоких нагрузках ввода-вывода. Он работает, перепрофилируя страницы VM, лежащие в основе буфера на месте (когда это возможно), чтобы не создавать kremove / kenter страницы в KVA буфера. Обычная перезагрузка страницы VM (которая в противном случае была бы перегружена нагрузкой ввода-вывода) также обходится.
  • Измените способ обработки IPIQ, в частности создайте независимый вектор векторного механизма для недопустимых страниц, который игнорирует (будет работать), даже если критический раздел удерживается. Внедрите machdep.optimized_invltlb (отключено по умолчанию, в рамках теста), что позволяет избежать отправки IPI недействительных идентификаторов IPL на простоя cpus.
  • Исправьте многочисленные гонки, которые могут возникать при экстремальных нагрузках. Большинство случаев использования никогда не запускают их, но наши сборные коробки делали время от времени. Например, была гонка двух команд, в которой бит cpu для pmap был бы очищен (для двух инструкций) и вызывать IPI TLB, возникающий одновременно с другим процессором для одного и того же pmap, чтобы не понимать, что cpu использует pmap , Исправление состоит в том, чтобы отключить оптимизацию перезагрузки CR3 для корпуса коммутатора LWP- & gt; LWP (тот же самый proc).
  • Исправьте ошибку HAMMER, которая может привести к ошибке сообщения DATA CRC.
  • Исправить двойную запись, вызванную тем, как HAMMER использует cluster_write (). Это значительно улучшает производительность записи HAMMER.
  • Также вошло множество других исправлений и исправлений HAMMER.
  • Исправить жесткую блокировку, которая может возникнуть в getpbuf * () из-за неправильной интерпретации возвращаемого значения атомарного op.
  • Исправить прерывание стекирования, которое может появиться в окне с 10 командами, потенциально (но не найденное в дикой природе), запускающее стек ядра.
  • Отключить IP-адреса, связанные с pmap, пополам для определенных операций кеш-кеша, не беспокоясь о недействительности TLB, а на флип-стороне всегда отменяет TLB при вводе нового PTE, даже если предыдущее содержимое было недействительным. Это улучшает производительность, а также облегчает отладку путем устранения проблемной оптимизации.
  • Исправить ряд трудных для запуска SMP-гонок, в частности, связанных с одновременным увеличением количества точек монтирования, которые может вызвать сборка. Также исправьте гонку mountctl vs umount.
  • Уменьшите количество атомных op в пути коммутатора.
  • Исправьте гонку / панику намекачей, которая может произойти при экстремальных нагрузках в сочетании с большим количеством действий mount / umount.
  • Ограничьте% rip-выборку до корня.
  • Исправить проблему getpid () в vfork () при поточной передаче. В частности, одновременный vfork () s в потоковой программе может привести к тому, что неверный PID будет возвращен getpid () в дочернем элементе до exec.
  • Исправить редкую гонку tsleep / callout, когда таймер выноса срабатывает до завершения полной настройки tsleep ().
  • Сообщения об остановке namecache на консоли. В частности, сообщите о правильном прошедшем времени и td_comm задействованного потока.
  • Дальнейшее сокращение тестирования памяти и обнуления начальной загрузки для улучшения времени загрузки в системах с большим количеством оперативной памяти.
  • Полностью удалите код обхода страницы. Обнуление страницы по современному процессору по требованию лучше по многим причинам, и на самом деле может быть быстрее в сочетании с доступом пользователей к данным на странице из-за эффектов кеша. Удалите PG_ZERO, потому что он больше не нужен. Удаление PG_ZERO также делает ядро ​​более отлаживаемым, удалив еще один возможный источник перекрестного загрязнения.
  • Рефакторинг и завершение реализации локализации ЦП для распределения памяти ядра. Объединитесь с осознанием NUMA. Это работает для cpu-локализованных или недолговечных структур данных ядра. Эти два объединены вместе в нашей абстракции PQ_L2_SIZE, которая раньше использовалась в качестве кода окраски страницы VM. Этот код теперь также обрабатывает локализацию ЦП и понимание NUMA.
  • Исправить многие проблемы vkernel и значительно улучшить производительность vkernel.
  • Обновить файл kern.proc.pathname, sysctl, используемый программами для поиска пути к запущенной программе. Этот sysctl был первоначально реализован до того, как мы сохранили достаточные данные, чтобы вернуть полный правильный путь.
  • Синхронизация ACPICA от Intel (это обычное явление).
  • Исправьте сборку memcpy () ABI. Сборка не возвращала исходный (dst) аргумент. Не исправляет никаких известных проблем, но закрывает отверстие, когда GCC иногда решает позвонить memcpy при генерации кода.
  • Многие из них обязуются очистить предупреждения -O2 и ошибки. Ядро теперь скомпилировано -O2 по умолчанию.
  • Добавить обходной путь для неправильного выхода в ACPI-пути (например, багги-код ACPI).
  • Исправьте гонку STOP / CONT, которая может быть вызвана ожидающим сигналом в самое неподходящее время.
  • Резьбовые исправления coredump и исправляют блокировку, связанную с тем же, когда одновременно выполняются несколько потоков одного и того же процесса seg-fault.
  • Исправьте тупик CAM / VM, который может произойти из-за ошибки в uiomove_nofault (). Это может вызвать «неопределенный буфер ожидания» во время интенсивного подкачки / подкачки.
  • Добавить код для обнаружения и устранения потерянных IPI. Это прежде всего для vkernels, где некоторые виртуальные хосты могут потерять IPI. Реальные процессоры не должны потерять IPI.
  • Различные исправления для clock_gettime ().
  • Удалите остатки MPLOCK. Все критические пути уже давно лишены этой блокировки, но по-прежнему остается несколько некритических мест, которые используют его.
  • Исправьте код убийства с низкой памятью и исправьте ряд рас, которые могут помешать работе функции.
  • Исправить системную блокировку с помощью VMM и реорганизовать код VMX.
  • Исправьте тупик, когда numvnodes достигнут maxvnodes, что может произойти при тяжелых нагрузках. Также устраните небольшую утечку памяти ядра, когда «df» или «синхронизация файловой системы» запускаются с помощью umount. Также уменьшите вычисление maxvnodes скромно. Например, машина с 8 ГБ оперативной памяти теперь будет устанавливать maxvnodes на 478483 вместо 598103.
  • Исправить редкую панику, которая может быть вызвана vm_object_page_remove (), когда user_yield () неправильно вызван, удерживая спин-блокировку, а затем решает отказаться.
  • Уменьшить размер некоторых динамически распределенных структур ядра. В частности, избыточное распределение хэш-таблиц inode теперь меньше. В первую очередь влияет на UFS (который DragonFlyBSD не использует много).
  • Добавить обходной путь для AMD erratum 793.
  • Исправить тупик, который может возникать в вызовах кластера с кластерами _ * ().
  • Исправить ошибку, при которой загрузка рекурсивного модуля может быть заблокирована.
  • Исправить глупую ошибку в NFS-файле (например, на стороне сервера NFS), что может привести к тому, что код глупых серверов NFS никогда не удалит глупо-переименованный файл. Как глупо!
  • Сделайте лучшую работу, поддерживая конфигурации с высокой-ncpu + низкой памятью.
  • Рефтор разделяет шпиндельные блоки, чтобы уменьшить количество вращения, которое может произойти, когда несколько процессоров приобретают общую спин-блокировку в одно и то же время.
  • Пересмотреть операции наложения, чтобы уменьшить конкуренцию SMP еще больше. Это улучшает одновременную неконфликтную однокомпонентную производительность не менее 25 раз на системах со многими ядрами и значительно сокращает операции vnode и mount ref ref и unref.
  • Переустановите множество других структур ядра, чтобы улучшить локальность кэша и уменьшить отскакивание строки в кеше.
  • Исправить ошибку в переименовании файла SMBFS.
  • Внедрите RLIMIT_RSS, ограничитель для каждого процесса, который заставит локализованный пейджинг на основе каждого процесса. Эта функция может использоваться для предотвращения того, чтобы один процесс превратил остальную часть машины в жесткий корпус.
  • Увеличьте максимальное поддерживаемое пространство подкачки. Максимум в настоящее время ограничен главным образом баром и будет находиться в десятках терабайт (если у вас достаточно бара для поддерживающих структур управления). Также увеличьте KVM ядра от 128G до 511G.
  • Реализовать динамическое удаление pmap (по умолчанию отключено). Это направляет код pmap для удаления страниц страницы промежуточной страницы и PD из pmap на лету. Это может быть полезно, если память стоит на высоте, но обратите внимание, что если она включена, это замедлит выполнение программ, которые выделяют и освобождают память с высокой скоростью.
  • Рефакторинг, как работают «хорошие» уровни пользователей, делая выбранные хорошие значения более значительными, чем они были раньше.
  • Добавьте высокопроизводительный драйвер NVME для DragonFly, написанный Matt Dillon. Этот драйвер будет использовать векторы MSI-X и все доступные очереди, поддерживаемые устройством, локальную локализацию без блокировки или минимальную блокировку (в большинстве случаев не конфликты SMP) и способен к безумным IOPS и пропускной способности.
  • Графика:
  • Стабилизирует Broadwell и Skylake, поднимите нас на эквивалентный DRM Linux 4.6.
  • Внедрение Linux i2c API для упрощения переноса.
  • Исправьте несколько старых ошибок, включая отмену блокировки, которая может остановить воспроизведение видео (и остальную часть X).
  • Исправить ошибку приоритета потока drm ядра, которая позволила пользовательским процессам иметь более высокий приоритет, чем вспомогательный поток drm. Это фиксирует большинство временных видеопотоков, сообщаемых в браузерах.
  • Обрабатывать фреймбуфер EFI, переходящий в DRM, улучшать переходы с переключением VT-переключателей и исправлять связанный с ним тупик. Также ядро ​​попытается переключиться на консоль VT от X, когда произойдет паника.
  • Сеть:
  • Много улучшений по всем направлениям.
  • iwm - исправляет проблему, вызванную инвертированной логикой. Многочисленные другие улучшения, которые значительно улучшают производительность.
  • wlan - Поддержка асинхронного сканирования bg и других функций.
  • Другие драйверы:
  • nvme - Добавлена ​​сборка ядра по умолчанию, а также исправления и улучшения производительности.
  • mmcsd - Значительная поддержка eMMC добавлена ​​в DragonFly.
  • ahci - Некоторые исправления совместимости и дополнительные причуды добавлены для поддержки сломанных наборов микросхем, в частности мультипликаторов портов. Кроме того, при использовании набора микросхем реализуйте FBS (FIS-Based-Switching).
  • Добавлена ​​поддержка Trackpoint и Elantech.
  • Самодельная:
  • systat расширен, чтобы свернуть несколько прерываний, принадлежащих одному и тому же драйверу, так как часто их слишком много, чтобы перечислять их сейчас.
  • systat -vm 1 значительно улучшен и обновлен, чтобы сообщать более полезную информацию и распаковывать поля, чтобы они не работали друг с другом. И добавьте «nvme» в соответствие блочного устройства. Также отрегулируйте расширенный дисплей vmstats и измените, как сообщается ozfod и nzfod.
  • 'vmstat 1' реорганизован. Все поля были связаны друг с другом из-за высокой производительности современных машин, которые существовали 30 лет назад.
  • Изменить привязку mount / mountd, чтобы уменьшить ненужные проверки и команды mountlist из операций mount_null и mount_tmpfs. Только очень важно при одновременном использовании mount / umount, но основная сборка фактически создает эту ситуацию.
  • Исправить многочисленные утечки fork / exec * (), которые могут вызвать libc из-за не использования O_CLOEXEC в атомном режиме. Добавьте различные функции O_CLOEXEC к функциям типа popen () и mk * stemp * () (добавьте mkostemp () и mkostemps ()). Исправьте утечку дескриптора файла в popen () при работе в потоковой среде.
  • Будьте лучше в pthreads в vfork (), предоставив lwp нового субпроцесса тот же TID, что и vfork (). Это позволяет выполнять функции поддержки pthread в дочернем элементе во время vfork без взлома pthreads.
  • Множество исправлений совместимости с заголовками для улучшения объемных сборников dports.
  • Несколько экземпляров OpenSSL для исправления безопасности.
  • Resync OpenSSH, чтобы упростить его сохранение.
  • Разделите флаги ядра C, создав для сборки ядра KCFLAGS вместо CFLAGS.
  • Удалите с дерева множество старых драйверов ISA. Поскольку DragonFlyBSD теперь только 64-битный, мы можем начать удалять старые драйверы, которые не существуют на 64-разрядных платформах.
  • Введите WORLD_CFLAGS и WORLD_CCOPTLEVEL, по умолчанию -O. Это упрощает компиляцию вашего мира -O2 или любого другого (например, WORLD_CCOPTLEVEL = 2). Однако мы препятствуем использованию 3 или выше. Допустимые значения: 0, 1, 2, 3, s, g и «fast».
  • Отрегулируйте форматирование STATUS для ps, чтобы сделать его более читаемым и удалить древние флаги, которые больше не применимы и просто создают беспорядок.
  • Исправить выравнивание malloc () для небольших распределений. Минимальное выравнивание теперь составляет 16 для распределений в диапазоне 16-128 байтов вместо 8. Обратите внимание, что распределения мощности из 2 всегда были выровнены естественным образом, но некоторые программы используют кратные (например, 16), например «48», и предположим, что 16-байтовое выравнивание.
  • Фортуны реорганизованы, добавлены.
  • powerd - добавьте управление на основе температуры в powerd с новой опцией -H lotemp: hightemp. Эта функция чрезвычайно полезна для ноутбуков с плохим охлаждением и whos BIOS преднамеренно дросселируются при слишком высокой температуре. Powerd теперь также обнаруживает изменения состояния питания (которые могут изменять список доступных частот) и правильно переводит службу при изменении состояния питания.
  • Исправлено множество исправлений libthread_xu / pthreads для улучшения совместимости с dports.
  • Добавить функции копирования на запись в vkernel. Например, позволяет нескольким vkernel использовать один образ диска, если каждый из COW изменяет внутренне, чтобы опустить.
  • / usr / src / secure rewired, конфликты удалены из libmd, libcrypt.
  • В базовой системе были обновлены различные инструменты:
  • Компилятор обновлен до GCC 5.4.1.
  • Теперь у нас есть золотой линкер с LTO.
  • binutils 2.25
  • меньше 481.
  • OpenSSL / LibRESSL полностью обновлен. База теперь использует libressl.
  • Несколько обновлений часового пояса.
  • Статус молота:
  • Другие улучшения. Одна вещь, которая не попала в релиз, была ошибкой версии для использования более быстрого алгоритма CRC с другим полиномом. Эта работа будет MFC'd -release после завершения тестирования. Тем не менее, пользователи не должны слишком беспокоиться об этом, потому что наиболее серьезное исправление производительности IS в релизе (исправление для кода cluster_write () для записи файловой системы).
  • Hammer2 Статус:
  • Разработка продолжается, но еще нет слова в первом выпуске.
  • Статус Clang:
  • Добавлена ​​стартовая структура для использования clang в качестве альтернативного базового компилятора в DragonFly для замены gcc 4.7. Это еще не завершено. Конечно, Clang можно добавить как пакет.
  • 64-разрядный статус:
  • Обратите внимание, что DragonFly - это 64-разрядная операционная система с 4,6 и не будет работать на 32-разрядном оборудовании.
  • Поддержка AMD Ryzen находится в выпуске, и дальнейшая работа будет внедрена по мере появления новых разработок Ryzen. Есть некоторые проблемы с сообщением о топологии процессора, которые будут исправлены и MFC'd. Есть некоторые проблемы стабильности, которые в настоящее время ждут обновления микрокода AMD для разрешения / повторного тестирования. Пользователи Ryzen могут быть уверены, что остаемся на вершине!

Что нового в версии 4.6.0:

  • mmcsd (4): исправить опечатку в disk_create () args. Позволяет получать доступ к & gt; 1 SD- / MMC-карте.
  • Добавить unzip (1). Если вы не можете победить их, присоединитесь к ним
  • Восстановить способность к мастер-миру для создания версии 4.4.
  • buildworld - Allow -release будет построено на основе
  • etc / rc.d - бездисковые настройки
  • kernel - добавить поддержку kqueue в NFS (исправить проблемы firefox w / nfs)
  • Импортировать OpenSSL 1.0.1s.
  • Локальные настройки для OpenSSL 1.0.1s.
  • Синхронизация базы данных zoneinfo с tzdata2016b из ftp://ftp.iana.org/tz/releases
  • zic (8) / zdump (8): Не предупреждайте об аббревиатурах, таких как '-05'.
  • zic (8): удалите «регистр», который закрался в последний коммит.
  • kernel / acpi_timer: добавьте отсутствующий cpu_enable_intr () после теста таймера.
  • em.4: Поддержка i219.
  • ig_hal / em / emx: добавьте поддержку I219 (Skylake).
  • sys / vfs / hammer: исправить ошибку при стирании заголовка тома
  • sbin / hammer: не заходите за пределы 16KB буфера пользовательского пространства HAMMER
  • sbin / hammer: добавьте опцию obfuscate, чтобы показать молот.
  • sys / vfs / hammer: временное исправление для паники ядра на томе-del

Что нового в версии 4.4.3 / 4.6.0 RC2:

  • mmcsd (4): исправить опечатку в disk_create () args. Позволяет получать доступ к & gt; 1 SD- / MMC-карте.
  • Добавить unzip (1). Если вы не можете победить их, присоединитесь к ним
  • Восстановить способность к мастер-миру для создания версии 4.4.
  • buildworld - Allow -release будет построено на основе
  • etc / rc.d - бездисковые настройки
  • kernel - добавить поддержку kqueue в NFS (исправить проблемы firefox w / nfs)
  • Импортировать OpenSSL 1.0.1s.
  • Локальные настройки для OpenSSL 1.0.1s.
  • Синхронизация базы данных zoneinfo с tzdata2016b из ftp://ftp.iana.org/tz/releases
  • zic (8) / zdump (8): Не предупреждайте об аббревиатурах, таких как '-05'.
  • zic (8): удалите «регистр», который закрался в последний коммит.
  • kernel / acpi_timer: добавьте отсутствующий cpu_enable_intr () после теста таймера.
  • em.4: Поддержка i219.
  • ig_hal / em / emx: добавьте поддержку I219 (Skylake).
  • sys / vfs / hammer: исправить ошибку при стирании заголовка тома
  • sbin / hammer: не заходите за пределы 16KB буфера пользовательского пространства HAMMER
  • sbin / hammer: добавьте опцию obfuscate, чтобы показать молот.
  • sys / vfs / hammer: временное исправление для паники ядра на томе-del

Что нового в версии 4.4.3:

  • mmcsd (4): исправить опечатку в disk_create () args. Позволяет получать доступ к & gt; 1 SD- / MMC-карте.
  • Добавить unzip (1). Если вы не можете победить их, присоединитесь к ним
  • Восстановить способность к мастер-миру для создания версии 4.4.
  • buildworld - Allow -release будет построено на основе
  • etc / rc.d - бездисковые настройки
  • kernel - добавить поддержку kqueue в NFS (исправить проблемы firefox w / nfs)
  • Импортировать OpenSSL 1.0.1s.
  • Локальные настройки для OpenSSL 1.0.1s.
  • Синхронизация базы данных zoneinfo с tzdata2016b из ftp://ftp.iana.org/tz/releases
  • zic (8) / zdump (8): Не предупреждайте об аббревиатурах, таких как '-05'.
  • zic (8): удалите «регистр», который закрался в последний коммит.
  • kernel / acpi_timer: добавьте отсутствующий cpu_enable_intr () после теста таймера.
  • em.4: Поддержка i219.
  • ig_hal / em / emx: добавьте поддержку I219 (Skylake).
  • sys / vfs / hammer: исправить ошибку при стирании заголовка тома
  • sbin / hammer: не заходите за пределы 16KB буфера пользовательского пространства HAMMER
  • sbin / hammer: добавьте опцию obfuscate, чтобы показать молот.
  • sys / vfs / hammer: временное исправление для паники ядра на томе-del

Что нового в версии 4.4.2:

  • virtio_blk: используйте contigmalloc / contigfree для распределений vtblk_request.
  • drm / radeon: нам нужен физический адрес фиктивной страницы, а не виртуальный
  • if_iwm: Применить некоторые изменения из OpenBSD, if_iwm.c rev 1.39 - & gt; 1,42
  • if_iwm: просто сохраните указатель прошивки структуры, например if_iwn.
  • if_iwm: удалить комментарии, ссылающиеся на исходные имена файлов Linux iwlwifi.
  • if_iwm: исправить использование IEEE80211_ADDR_COPY ().
  • if_iwm: исправьте код настройки скорости.
  • etc / rc.d: обновить rtsold
  • i915 - добавьте задержку после прикрепления, чтобы избежать консолей / X-гонок.
  • kernel - уменьшить lwp_signotify () latency
  • devfs - исправление паники на дополнительных установках devfs при наличии правил
  • ssh - удалить недокументированную поддержку роуминга CVE-2016-0777 CVE-2016-0778
  • kernel - добавить quirks для xhci (usb)
  • hammer - удалить отладку kprintf
  • libc / stdtime: исправить два случая, когда указатель NULL мог быть бесплатным () 'd.
  • kernel / vga: удалить неправильный lwkt_reltoken (). Это не принято в этот момент.
  • libc / nls: синхронизировать сообщения str {error, signal} () с.
  • w (1): inet_addr () возвращает INADDR_NONE после сбоя.
  • ee (1): исправить неинициализированную переменную.
  • Ядро: исправить файл kern.dumpdev sysctl.
  • Импортировать OpenSSL 1.0.1r.
  • Локальные настройки для OpenSSL 1.0.1r.
  • gcc50 / libconv_supc: cp-demangle.c нуждается в HAVE_CONFIG_H.
  • Синхронизация базы данных zoneinfo с tzdata2016a из ftp://ftp.iana.org/tz/releases
  • выполнить обновление: добавить устаревший часовой пояс.
  • igb: исправить настройки DMACR
  • ifconfig: Исправить удаление адреса inet6

Что нового в версии 4.4.1:

  • Ядро:
  • Улучшены настройки энергосбережения ЦП
  • Сокращение количества файлов / свободный конфликт
  • Сокращение конкуренции в kqueue
  • Реализован системный вызов lwp_setname (2)
  • Фиксированный dsp (4) поддержка неблокирующей операции
  • Добавить драйвер aperf (4) для отображения эффективной частоты процессора
  • Многочисленные исправления и исправления для HAMMER
  • Синхронизация ACPICA до 20151124
  • В основном завершено удаление битов i386 (32-разрядных)
  • Отрегулируйте кучу загрузчика для обработки больших изображений MD
  • Очистка проходит по мертвому коду ядра (syslink остается и т. д.)
  • удалено dsched (проблемы с ошибками и плохо работает с SSD)
  • Алгоритмы перекодировки пейджера для pkill с низкой памятью и объемом памяти
  • Графика:
  • Драйверы drm / i915 и drm / radeon теперь соответствуют ядру Linux 3.18
  • i915 поддерживает ValleyView / Baytrail и SOCOM Черривью Atom.
  • GPU Broadwell теперь полностью ускорены.
  • Подготовительная работа для поддержки Skylake.
  • Системная консоль теперь поддерживает графику drm по умолчанию; виртуальные терминалы не просто показывают черный экран, как только Xorg был запущен и загружен один из модулей ядра kms.
  • Улучшено управление питанием. Панель самообслуживания доступна на оборудовании i915.
  • Датчики температуры теперь поддерживаются на оборудовании Radeon
  • Сеть:
  • Поддержка Realtek 8168H в re (4)
  • Добавлен драйвер iwm (4)
  • rtadvd обновлен, добавлен rtadvctl
  • Асинхронные соединения UDP для обработки гораздо большей нагрузки
  • Новое более крупное окно запуска TCP для соединений с высокой задержкой
  • Значения ядра nmbcluster настраиваются в реальном времени, для экстремального трафика. Сеть:
  • Стабилизировать доменное имя UNIX
  • Новый код GC для fd-передачи через сокеты домена unix
  • Разное IPv6 синхронизация с FreeBSD
  • Улучшена производительность сокета (2) для TCP и UDP
  • Улучшен выбор локального порта TCP connect (2)
  • Добавлен системный вызов accept (4)
  • Добавлена ​​поддержка SOCK_CLOEXEC и SOCK_NONBLOCK сокетов (2) и флажков accept4 (2)
  • Предоставить функции управления потоком HW для ifconfig
  • Добавьте настраиваемые параметры, чтобы можно было установить iOSize и readahead NFSROOT.
  • Принесите расширенный ipfw из FreeBSD (называемый ipfw3 в DFly)
  • Другие драйверы:
  • Поддержка MIDI была прочитана
  • Многие исправления для устройства mapper
  • dm-delay и dm-flakey были добавлены в устройство mapper
  • USB-модемы работают лучше (или, по крайней мере, не паниковать ядро)
  • Улучшен доступ к функциям и статусу ECC в блоке
  • wlan обновлен от FreeBSD (до момента удаления сплит-устройства)
  • Самодельная:
  • библиотека regex была заменена многобайтовой и, как правило, гораздо более способной библиотекой регулярных выражений TRE. Он соответствует функциям OSX. (DF - это первый BSD для перехода на TRE после MacOS)
  • libm заменен версией OpenBSD (это совместная работа продолжается)
  • В libc теперь реализовано управление версиями символов, которое позволяет запускать исполняемые файлы, созданные в версии 4.4, на DragonFly в течение многих лет в будущем.
  • Завершить капитальный ремонт и обновление локалей, включая реализацию сортировки.
  • malloc.h удален (DragonFly - это первый BSD для удаления этого заголовка)
  • gcc50 libstdc ++, измененный для полного использования функций C99 в clang
  • Как следствие обновления локалей, выход формата ls (1) и формата -T изменился при использовании названных локалей. Примечательно, что длинные форматные месяцы всегда сокращаются на английском языке (используя, таким образом, определения POSIX, как быстрые, так и три буквы в ширину), и всегда отображаются годовая, часовая и вторая информация. В локали C / POSIX изменений в ls (1), кроме обработки временных меток времени, не было исправлено в соответствии со стандартными требованиями POSIX.
  • Если используется WPA-поставщик от базы, во время загрузки будет 10-секундная задержка при отображении сообщения, в котором настоятельно рекомендуется использовать версию DPorts (security / wpa_supplicant).
  • Улучшено powerd (8)
  • Улучшенный вывод top (1) и ps (1) для LWP и потоков ядра
  • Исправлена ​​поддержка pthread_set_name_np (3)
  • Портированный tcpdrop (8)
  • Добавление многих новых мест, включая шесть арабских мест (ОАЭ, Саудовская Аравия, Египет, Иордания, Марокко, Катар), дополнительные испанские территории (Мексика, Аргентина, Коста-Рика), дополнительные английские языки (Филиппины, Сингапур, Гонконг) , исправлены норвежские локали (только нб и нн), расширенный шведский (Финляндия), саамский (Финляндия, Норвегия), сербский, представленный как в кириллице, так и в латинской форме. ('locale -a' предоставляет полный список.)
  • rtadvc, импортированный из FreeBSD
  • В базовой системе были обновлены различные инструменты:
  • nvi2 обновлен до версии 2.1.3
  • добавлен libexecinfo (синхронизирован с FreeBSD)
  • iconv синхронизирован с FreeBSD
  • openssl обновлен до 1.0.1q
  • xz обновлено до 5.2.2
  • libedit обновлен до версии 2015-03-25
  • binutils обновлен до версии 2.25.1
  • grep обновлен до версии 2.22
  • tcsh обновлен до 6.19.00
  • libdialog обновлен до v1.2-20150920
  • (tn) ftp обновлен до '10 OCT 2015 '
  • gcc обновлено до 5.2
  • acpica обновлен до 20150717
  • sort (1), который пришел из NetBSD, был заменен версией FreeBSD
  • localedef (1), внутренний инструмент с источником на Illumos
  • cldr2def, внутренний инструмент с истоками в заброшенном проекте FreeBSD, но расширенный для DF
  • Удалено из базовой системы:
  • hostapd (последняя версия доступна через dports: net / hostapd)
  • mklocale (заменяется на localedef)
  • colldef (заменяется на localedef)
  • Улучшения HAMMER:
  • Многие, многие исправления и исправления для Hammer1, благодаря Томохиро Кусуми
  • Другие улучшения:
  • Количество портов DPorts составляет 22 800 портов. Многие ранее поврежденные порты были исправлены постоянными пользователями из-за вкладов, предлагаемых через механизм запроса Pull запросов GitHub. (Спасибо!)
  • Шесть «официальных» наборов обоев DragonFly можно найти на x11-темах / драконьевых обоях (pkg install dragonfly-wallpapers). Они автоматически устанавливаются и предварительно выбираются для пользователей KDE и автоматически устанавливаются для пользователей XFCE4, но обои по-прежнему вручную выбираются с помощью этого рабочего стола (по крайней мере, на данный момент). Они устанавливаются на share / wallpapers, которые символически связаны с share / backgrounds / dragonfly.

Похожие программы

HD2 MIUI4 ICS
HD2 MIUI4 ICS

15 Apr 15

Migshm
Migshm

3 Jun 15

MIUI-AU ICS
MIUI-AU ICS

15 Apr 15

Комментарии к DragonFly BSD

Комментарии не найдены
добавить комментарий
Включите картинки!