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

29.07.2009

Ivan Voras, новости проекта и может ещё чего

Как то весьма малое освещение получила, да пожалуй почти статья, Ivana Vorasa о планируемых нововведениях в предстоящем релизе. В общих чертах, похоже на то что релиз готовит просто таки гору новых возможностей, и развитие имеющихся. Для начала приведу вольный перевод с некоторыми своими комментариями, ну а под конец немного добавлю отсебятины :)
Итак если кто не следил за тем что происходило с проектом FreeBSD, рекомендуется ознакомится со следующим списком:
Что происходит в 7-STABLE статья Ivan Voras,
UPDATING файл к текущему релизу, содержит записи о низкоуровневых изменениях,
Квартальные отчеты, за прошедшее время
Кстати странно отчета за второй квартал не видно, хотя они вроде частенько выходят с задержкой,
Ну и так же можно почитать листы рассылок и блоги разработчиков, есть еще агрегатор блогов, поддерживаемый Florent Thoumie, от официального отличается пожалуй поддержкой тегов, что может иногда пригодится.

INET-less / IPv6-only kernel

Status: в стадии разработки, в основном работает
Will appear in 8.0: скорее всего нет
Authors: Bjoern Zeeb and others
Web: mailing list announcement

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

CLANG / LLVM compiler

Status: Экспирементальное, но работает. Высокая степень мотивации.
Will appear in 8.0: нет
Authors: Roman Divacky, Pawel Worach, Ed Schouten and others
Web: LLVM, CLANG, FreeBSD wiki, mailing list announcement

Тут все более менее очевидно, работа по отказу от GCC, активизировалась после известия о том что после версии 4.2 схема его лицензирования меняется на GPLv3, что является неприемлемым для некоторых коммерческих пользователей, поэтому версия 4.3, не будет включена в основную систему, и базовая система в дальнейшем будет собираться с помощью LLVM, но это касается только базовой системы, так как софт находящийся в системе портов часто сильно завязан на использование GCC. Как показали эксперименты, система уже сейчас довольно успешно собирается, новым компилятором, но по умолчанию пока будет поставляться с GCC.

Параллельная сборка портов.

Status: Включено
Will appear in 8.0: Обязательно
Authors: Pav Lucistnik and a cast of thousands
Web: mailing list

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

Better handling of mounted device removals

Status: Включено в -CURRENT, MFCed
Will appear in 8.0: Обязательно
Author: Edward Tomasz Napierala
Web: FreeBSD Foundation Projects
Исправлены проблемы приводящей к панике, при обращении к извлеченной, не отмонтированной ФС, работает уже сейчас. На эту проблему поступало очень много жалоб пользователей, исправлено при финансировании FreeBSD foundation.

Jails v2

Status: Включено в -CURRENT, MFCed
Will appear in 8.0: Обязательно
Author: Bjoern Zeeb and others
Web: commit message

В подсистему jail, внесено множество изменений, теперь возможно назначать несколько IP адресов, IPv6 и SCTP, вложенные jail, стоит отметить что некоторые были раньше доступны как доработки коммерческих компаний. Обещана возможность управления ФС из jail, при помощи новых свойств ZFS.

Новый USB стек

Status: Включено в -CURRENT
Will appear in 8.0: Обязательно
Author: Hans Petter Selasky
Web: announcement, SVN message

Новый USB стек, добавлено нового функционала, и решены некоторые проблемы старой реализации, подробности можно посмотреть в сообщениях SVN.
Новый стек использует старые имена устройств, для увеличения обратной совместимости.

MPSAFE TTY

Status: Включено в -CURRENT
Will appear in 8.0: Обязательно
Author: Ed Schouten
Web: wiki page

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

Увеличение лимита памяти ядра для AMD64

Status: Включено в -CURRENT, MFCed
Will appear in 8.0: Обязательно
Author: Alan Cox
Web: announcement, SVN commit

Для некоторых новых функций требовалось увеличить память ядра, в том числе для ZFS, раньше она была ограничена 2 GB для kmem_max, теперь она расширена до 512 GBю

Kernel threads

Status: Включено в -CURRENT
Will appear in 8.0: Обязательно
Author: Julian Elischer
Web: commit message

Оптимизация подсистемы Kernel threads, позволит более наглядно группировать нити.

procstat(1): A process inspection utility

Status: Включено в -CURRENT
Will appear in 8.0: Обязательно
Author: Robert Watson
Web: announcement

Утилита призванная заменить procfs(4), и добавить новый функционал, в основном эта утилита будет полезна для отладки.

TextDumps: сбор информации, после паники ядра

Status: Включено в -CURRENT, MFCed
Will appear in 8.0: Обязательно
Author: Robert Watson
Web: Q&A on textdumps

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

ULE 3.0: Новая версия SMP-оптимизированного планировщика

Status: Включено в -CURRENT
Will appear in 8.0: Обязательно
Author: Jeff Roberson
Web: commit message, commit message, announcement

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

DTrace

Status: Включено в -CURRENT (kernel trace only)
Will appear in 8.0: обязательно
Author: John Birrell
Web: project web page

Кстати а кто нибудь пользовался на amd64 системах, а то у меня так что то и не вышло, ни разу, все ошибки выдавал.

VirtNet / VIMAGE / Imunes / Виртуализация сетевого стека

Status: Завершающая стадия разработки
Will appear in 8.0: Обязательно
Author: Marko Zec
Web: project web page

Проект по виртуализации сетевого стека, в том числе для улучщения инфраструктуры jail, что бы каждый jail мог иметь свой фаервол и прочие, пока система разрабатывается и возможны проблеммы с безопасностью.

Multiple routing tables / FIBs

Status: Committed to 8-CURRENT
Will appear in 8.0: sure
Authors: Julian Elischer
Web: proposal

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

NFSv4 support

Status: В разработке
Will appear in 8.0: Обязательно
Author: Rick Macklem
Web: call for testing

Новая реализация NFS стека, в том числе полная поддержка NFSv4.

Эксперементальный, новый драйвер для AHCI

Status: Включено в -CURRENT, экспериментальный
Will appear in 8.0: Обязательно
Author: Scott Long & others
Web: commit message

Новый драйвер будет отключен по умолчанию в 8.0, запланирована поддержка AHCI через CAM, была интегрирована поддержка нового функционала, такого как NCQ.

gvinum 2

Status: Включено в -CURRENT
Will appear in 8.0: обязательно
Author: Ulf Lilleengen
Web: commit message, commit message

Новая реализация vinum поддерживает JBOD, RAID 0, RAID 1 и RAID 5, в том числе решены многие проблемы старых реализаций, и добавлена поддержка новых технологий.

GEOM_PART becomes the default slicer

Status: Включено в -CURRENT
Will appear in 8.0: Обязательно
Author: Marcel Moolenaar & others
Web: commit message

Новый класс GEOM и новые утилиты для поддержки множества схем разметки (MBR, BSD, GPTи т.д.).
Предостережение: при обновлении могут быть переименованны некоторые разделы, так же старые утилиты не поддерживают некоторые схемы.

Поддержка загрузки с GPT разделов

Status: Включено в -CURRENT
Will appear in 8.0: Обязательно
Author: John Baldwin
Web: commit message

bsdlabel расширенная поддержка до 26 разделов

Status: Включено в -CURRENT
Will appear in 8.0: Обязательно
Author: Marcel Moolenaar
Web: commit message

bsdlabel теперь поддерживает до 26 разделов, необходимо включение GEOM_BSD в ядро.

ProPolice SSP (stack-smashing protection)

Status: Включено в -CURRENT
Will appear in 8.0: Обязательно
Author: Jeremie Le Hen

Увеличение безопасности, тут я совсем не специалист, так что кому интересно сами почитайте :)

Так же ожидается еще ряд, более мелких изменений и дополнений, ну и я кое что там пропустил, правда немного.
  • User-controllable CPU/IRQ binding (jhb)
  • User-controllable CPU-thread binding with support for CPU sets (jeffr)
  • RDMA (Remote DMA) support for InfiniBand
  • ZFS updated to at least zpool format 13 (from 6), with most (if not all) problems in the previous implementation fixed (pjd, kip), MFC-ed
  • Increased the maximum number of groups a user may belong to (NGROUPS) to 1024 by default, in a way that allows further extension if needed. (brooks)
  • Started upgrade of syscons renderer to support UTF-8 (ed)
  • Imported new version of OpenBSM (rwatson)
  • Support for more ARM / Xscale platforms
  • Imported makefs utility from NetBSD (sam)
  • Support for SYSVSHM segments larger than 2 GB on AMD64 (kib), MFC-ed
  • New network ARP code
  • Wireless Virtual AP (aka VAP, aka "virtual WiFi") mode (sam)
  • tcpdump updated to 4.0 (note: new output format) (rpaulo)
  • Performance improvements, mostly for SMP scalability
  • Support for the Intel Nehalem / Core i7 platform (jeffr), MFC-ed
  • New import of ACPICA (jkim)
Вот такой нехилый списочек получился, так же рекомендую заглянуть на вики страничку, там тоже есть список обновлений, со степенью готовности, и перспективами включения в релиз, обновляется правда не совсем своевременно, но лучше чем ничего. А так все по старому следим за рассылками, и обновляемся и тестим, кстати релиз все таки задерживается, даже перенос сроков выхода BETA-3 на неделю, не помог пока, но это просто констатация, в свете того что многие пишут новости ориентируясь на это расписание с планируемой датой релиза на начало сентября, они как то забывают что частенько релиз задерживается так как во главу угла поставлена стабильность а ни какие то сроки, а тут ещё перед самым релизом внесли довольно много нововведений, да и сейчас вносят.
Да если кто то, все таки осилит прочесть, эту портянку, и увидит дикие логические или еще какие ошибки, отписывайтесь, постараюсь поправить, ну или поизучить предмет поглубже, чтоб не делать их в дальнейшем :)

11 комментариев:

  1. В конце исправь слово "постораюсь", а так вроде ничего, познавательная статья, спасибо :)

    ОтветитьУдалить
  2. Спасибо, пофиксил, зараза спеллчекер думал что так и надо :)

    ОтветитьУдалить
  3. блог ivoras'а слишком часто цитируют, а ведь информация там уже далеко не свежая. Половина из этих фич перекочевала в 7-stable, а некоторые уже давно в -current (например, newnfs с поддержкой nfsv4).

    ОтветитьУдалить
  4. А что у ivoras'а или у меня написано что то иное, или надписи "Status: Включено в -CURRENT, MFCed" нам намекают на что то иное? ;)

    ОтветитьУдалить
  5. > NFSv4 support

    > Status: В разработке
    > Will appear in 8.0: Обязательно
    > Author: Rick Macklem
    > Web: call for testing

    кто-то ослеп? давать ссылку на CFT от 2008 года... кхм, когда проект ужа давно в HEAD...

    ОтветитьУдалить
  6. LДайте ссылку на то что проект готов, пока я вижу новость что он в разработке, история комитов тоже подтверждает что в течении месяца, в этой подсистеме ведутся исправления, только месяц как убрали старый код, клиент, в вики до сих пор имеет статус неоконченый, так где тут дикое "искажение" что то я пока не наблюдаю.
    И это одна не стыковка из такого длинного списка, еше раз ссылки в студию, если вы знаете больше, буду рад исправить.

    ОтветитьУдалить
  7. > статус неоконченый

    насмешил. zfs тоже имеет статус неоконченного проекта (портирования). Только сие никому не мешает использовать данную ФС.

    или новый стек USB тоже неоконченный. И там ведутся исправления. Если перестанут вестись, то будет нужен новый мейнтейнер.

    в mpsafetty тоже вносятся время от времени исправления, когда ed@ натыкается на новые баги.

    newnfs стал доступен после сего коммитта:
    http://docs.freebsd.org/cgi/mid.cgi?200905281945.n4SJjBh1047893 (в freebsd-current@ в конце мая был HEADSUP по этому поводу)

    начиная с этого коммитта и по сей день никаких проблем с использование nfsv3/nfsv4 от newnfs на сервере/клиенте не заметил.

    > только месяц как убрали старый код, клиент,

    rwatson убрал только старый nfsv4 клиент. Старый nfsv2 и nfsv3 клиент/сервер остался сожительствовать с новым.

    ОтветитьУдалить
  8. Рубрика забавные анонимы :)

    "newnfs стал доступен после сего коммитта:
    http://docs.freebsd.org/cgi/mid.cgi?200905281945.n4SJjBh1047893 (в freebsd-current@ в конце мая был HEADSUP по этому поводу)"

    Читаем в оригинальном коммите, кстати именно из вашей ссылки, выделено мной
    "Add the kernel build glue for the experimental NFS subsystem that
    includes support for NFSv4."

    Ты гляди ка даже разработчик заявляет что система эксперементальная а нам пофиг, мы будем что то другое талдычить, а то что работает без сбоев так на здоровье, удачные эксперименты никто не отменял ;)

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

    Ежили кто, тем не менее, что нибудь знает из интересного пишите всегда готов к дискуссии и новой информации.

    ОтветитьУдалить
  9. Анонимный3 авг. 2009 г., 0:20:00

    NEWNFS такая же экспериментальная как ZFS и TMPFS. Попробуй смонтировать любую из них. Получишь в буфере ядра:
    WARNING: ZFS is considered to be an experimental feature in FreeBSD.
    WARNING: TMPFS is considered to be a highly experimental feature in FreeBSD.

    в ZFS, например, до сих пор нет поддержки ACL. А у TMPFS до сих пор проблемы с sendfile().

    > Ежили кто, тем не менее, что-нибудь знает из интересного пишите всегда готов к дискуссии и новой информации.

    эм, как поднять и использовать nfsv3 и nfsv4 сервер на базе newnfs?

    вот мой rc.conf:
    nfsuserd_enable=YES
    nfs_server_enable=YES
    nfsv4_server_enable=YES
    nfs_server_flags="-t $nfs_server_flags"

    и exports:
    V4: /d blah
    /d -alldirs blah

    потом на клиенте можно смонтировать /d/test
    $ mount -t newnfs -o nfsv3 serv:/test /mnt
    или
    $ mount -t newnfs -o nfsv4 serv:/test /mnt

    засчитываю слив?

    ОтветитьУдалить
  10. Ну вот на то что система имеет право числится экспереминтальной и при этом нормально работать мы вроде сошлись во мнении ;)
    Но я при этом продолжаю утверждать что указание ее как эксперементальной, или в разработке весьма допустимо.

    Насчет примера, ну для новости особенно такой развернутой это все таки перебор, надо наверное завести пост про NFS, ну это надо набраться желания и терпения, и осуществить.

    ОтветитьУдалить
  11. /me чешет руки, ждет когда доберется до удаленного вайлсервера чтоб потыкать на нем gvinum2

    ОтветитьУдалить

Здесь можно записать свои мысли о посте :)
Если ваш ответ не появился сразу, не паникуйте, тут работает спамоловка, и вероятно вы угодили в неё, так как были анонимом или в вашем посте ссылка, ну или вас не любит google.
Я проснусь и одобрю комент ;)