Михаил Сгибнев (http://www.dreamcatcher.ru/) любезно предоставил перевод списка новшеств появившихся в NetBSD 2.0:
<h3>Ядро:
</h3>- Портировано на новые платформы, включая amd64, evbsh5 и xen.
- Добавлена собственная поддержка потоков, базирующаяся на технологии
задействования планировщика (scheduler activations). Теперь приложения, которые были созданы с учетом спецификации потоков POSIX, могут использовать все преимущества высокопроизводительной реализации потоков NetBSD.- Добавлена поддержка технологии kqueue - инфраструктуры извещений о событиях в ядре, представляющей собой точные и эффективные механизмы уведомлений о происходящих событиях. На данный момент перечень отслеживаемых событий включает в себя изменения, происходящие с сокетами, файлами, каталогами, файлами fifo, каналами, терминальными и другими устройствами. Отслеживаются также сигналы и состояния процессов. Поддержка инфраструктуры kqueue(2) имеется для всех файловых систем с возможностью перезаписи (за исключением Coda) и всех драйверов устройств, поддерживающих системный вызов poll(2).
- Эмуляция Linux доработана таким образом, что NetBSD теперь поддерживает
последние версии Sun JDK/JRE для Linux. Тестирование показало, что они работают ничуть не хуже, чем под управлением Linux.- На многих платформах в NetBSD 2.0 по умолчанию стоит запрет на выполнение кода из областей памяти, отведенных под данные и стек, что существенно затрудняет реализацию атак, использующих переполнение буферов. Если в той или иной архитектуре имеется аппаратное различие доступа к данным и доступа к исполняемому коду, то в вызове mmap(2) для всех таких систем в NetBSD 2.0 будет использован флаг PROT_EXEC, хотя и необязательно со степенью гранулярности в одну страницу. В тех случаях, когда степень гранулярности
системы больше, и если в большом блоке имеется хоть одна страница, которая
помечена, как содержащая исполняемый код, то и целый блок помечается, как
исполняемый. В противном случае, весь блок будет не исполняемым.- Порт i386 теперь имеет поддержку SMP. Благодаря программной реализации ACPI компании Intel, NetBSD/i386 также имеет новую инфраструктуру ACPI и управления электропитанием.
- В порт macppc добавлена поддержка SMP. Список поддерживаемых компьютеров был расширен новыми моделями G4.
- Поддержка SMP добавлена в порт sparc.
- Новая обобщенная инфраструктура i2c с поддержкой режима bit bang и
интеллектуальных контроллеров.- Таблица состояний ядра sysctl(9) теперь строится динамически и не использует статические привязки.
- Добавлена поддержка новых контроллеров SATA, для которых теперь существует отдельный драйвер - satalink(4). Вся поддержка SATA была перенесена в него.
<h3>Сеть:
</h3>- ipf(8) обновлен до версии 4.1.3.
- В tcp(4) добавлена поддержка обнаружения состояния черной дыры при
определении MTU на маршруте (т.е. драйвер отключает определение MTU, если
соединение было разорвано).- Порядок сложности вставки в буфер сокета теперь составляет O(C). Это дает
существенный прирост в производительности для приложений, которые для сокетов используют большие размеры буферов.- В драйвер wi(4) добавлена поддержка режима Host-AP, что позволяет устройствам на базе плат Intersil Prism2/2.5/3 выступать в качестве точек доступа для сетей 802.11.
- В драйвер bridge(4) и утилиту brconfig(8) добавлена поддержка ipf(8).
- Для увеличения производительности алгоритм выделения портов теперь использует хэш-таблицу, а не связный список.
<h3>Файловая система:
</h3>- Файловая система UFS2 была портирована из FreeBSD в NetBSD. UFS2 представляет собой развитие FFS, использующее 64-битную адресацию блоков и расширенные структуры для хранения информации о файлах. Следует особо подчеркнуть, что бъем раздела UFS2 теперь не ограничивается 1T.
- Посредством драйвера криптографических дисков (cgd(4)) целые диски и разделы, включая раздел подкачки, могут быть зашифрованы с использованием таких стойких алгоритмов, как AES (Rijndael) и Blowfish.
<h3>Безопасность:
</h3>- Добавлена системная утилита systrace. С помощью инфраструктуры, которую
предоставляет systrace(4), применяя политики доступа к системным вызовам,
возможно отслеживать и контролировать использование системы прикладными
программами. Так, systrace(1) может быть использована для отслеживания попыток доступа к системе со стороны не безопасных программ. Далее, используя systrace можно защитить систему от программных ошибок (например, переполнений буферов), ограничивая права процессов, запущенных как демоны (аналог jail). Свойство повышения привилегий, которым обладает systrace, дает
возможность полностью избежать необходимости запуска больших и не безопасных программ от имени суперпользователя root в тех случаях, когда всего один илидва системных вызова требуют таких прав.- Добавлена поддержка технологи Verified Exec. Прежде чем произвольные программы или скрипты будут выполнены, система сверяет их дайджест с собственной хэш-таблицей. Таким образом можно предотвратить запуск программ или скриптов, которые были модифицированы или некорректно установлены. Verified Exec также можно использовать для ограничения интерпретаторов скриптов таким образом, чтобы они могли исполнять исключительно авторизованные скрипты и/или только в
не интерактивном режиме.<h3>Административные и пользовательские утилиты:
</h3>
- Вся система теперь скомпонована динамически (включая содержимое каталогов /bin и /sbin).- Утилиты для восстановления системы находятся в каталоге /rescue. Туда включены компактные статически скомпонованные версии различных программ, которые могут понадобиться для восстановления (включая /rescue/init и /rescue/sh).
- GPL версии различных инструментов, включая gzip(1) и awk(1), были заменены их эквивалентами, распространяющимися не по лицензии GPL.
<h3>Разное:
</h3>- В NetBSD 2.0 используется новый набор инструментов на базе gcc 3.3.3 и binutils 2.14. В gcc версии 3.3.3 добавлена поддержка ряда новых процессоров и
существенно расширены возможности компиляции для i386 и других платформ.
Поддержка новых архитектур в gcc 3.3.3 сделала возможным перенос NetBSD на еще большее количество платформ.- Дистрибутивы NetBSD 2.0 для всех аппаратных платформ, которые поддерживают систему X Window, поставляются с исполняемыми модулями системы X11 на базе XFree86 4.4.0.
- Обновлено почти все ПО сторонних разработчиков, поставляемое вместе с базовой системой, до следующих стабильных версий:
<ul>
- bind 8.3.7
- binutils 2.14
- cvs 1.11.17
- diffutils 2.8.1
- file 4.08
- gcc 3.3.3
- gdb 5.3
- grep 2.5.1
- groff 1.19
- less 381
- openssl 0.9.7d
- postfix 2.0.19
- sendmail 8.12.11
- tcpdump 3.7.1
- texinfo 4.6
</ul>- В коллекцию пакетов pkgsrc добавлено множество новых программ, включая
последние версии систем управления рабочим столом GNOME, KDE и Xfce, а также OpenOffice.org, Perl, Apache и других. Расширена поддержка на множество новых платформ, включая Darwin, FreeBSD, IRIX, Linux, OpenBSD и Solaris.- Благодаря новому легко портируемому комплекту первоначальной установки (bootstrap kit), стало гораздо проще перенести коллекцию пакетов на новые системы (такие как AIX, BSD/OS и HP-UX). На момент написания этого
анонса, в каталоге pkgsrc находится более 5000 программ сторонних
разработчиков.URL: http://www.netbsd.org/Releases/formal-2.0/NetBSD-2.0.html
Новость: http://www.opennet.me/opennews/art.shtml?num=4762
Кто-нибудь может сравнить NetBSD 2.0 с FreeBSD 5.3?У кого какие достоинства, недостатки и ниши применения; на текущий момент?
>Кто-нибудь может сравнить NetBSD 2.0 с FreeBSD 5.3?
>
>У кого какие достоинства, недостатки и ниши применения; на текущий момент?imho в общем случае достаточно трудно дать объективную оценку. просто в силу того, что для этого требуется эксперт, профессионально разбирающийся в обоих системах. таких достаточно мало :)
первое, что приходит в голову смотря со своей личной колокольни:
1. OpenGL и нормальная поддержка графики.
на стоящей рядом машине под FreeBSD 5.? с драйверами от NVidia и карточкой NVidia GeForce MX440 (весьма средненькая карточка) OpenGL крутится вполне сносно. я бы даже сказал - очень прилично (шустро и стабильно). для NetBSD драйверов нет -> OpenGL отсутствует как класс (программная реализация в расчет не берется).
1:0 в пользу FreeBSD (объективно).
ps: если кто не в курсе - OpenGL нужет не только и не столько в играх, сколько для вывода инженерной графики.
2. ports vs pkgsrc.
под NetBSD [и другими платформами включая FreeBSD] pkgsrc рулит. процесс портирования новых пакетов - просто песня. голый configure нервно курит. обновление основных пакетов - от силы два-три дня после аннонса. минусы - очень слабо развито распространение портов в собраном виде. в принципе, это можно понять (таки десятки различных архитектур - никаких машин для сборки не наберешься).
по поводу ports ничего конкретного не скажу (сам не пробовал). но upgrade допустим KDE для соседа на FreeBSD 5.x каждый раз превращается в кошмар на крыльях ночи дня на три c приседаниями и три раза ку каждому пакету. матов много :) хотя может быть это и кривой /dev/hands. no comments.
1:0 в пользу NetBSD (субъективно)
3. поддержка различных архитектур.
запустите FreeBSD на Intel PXA255 &K :)
1:0 в пользу NetBSD (объективно).
// wbr
в NetBSD отсутствуют русские консольные фонта (не знаю как во второй версии), в pkgsrc например криво работает make search, нет аналога portupgrade, при обновлении программы через "pkg_chk -u" - pkgsrc вначале выполняет make deinstall (если во время компиляции происходит ошибка то ...) плюс версии программ по сравнению с портами fbsd новизной не блещут.
>в NetBSD отсутствуют русские консольные фонта (не знаю как во второй версии),и в 1.x и в 2.x при желании можно прикрутить русские шрифты в аппаратнут консоль. хотя, согласен, сей процесс описан весьма туманно. читать как "вообще не описан". но можно :)
ps: только не спрашивайте меня "как". я с этим один раз поигрался, запинал ради интереса и выкинул за ненадобностью.
>в pkgsrc например криво работает make search, нет аналога portupgrade, при
>обновлении программы через "pkg_chk -u" - pkgsrc вначале выполняет make deinstall
>(если во время компиляции происходит ошибка то ...)aka upgrade (sic!) бинарных дистрибутивов кривой, submit.
> плюс версии программ по сравнению с портами fbsd новизной не блещут.
можно конкретнее? там их [пакетов] не один и не два.
из используемых мною пакетов (qt3, kde3, samba3, apache1/2, gimp2, gnome2, koffice и иже с ними) обновления выходили максимум в течении недели после анонса (в зависимости от размера пакета). допустим, samba обычно обновляется в тот-же день или через сутки. сейчас замечательно работает 3.0.8 (btw нужно будет собрать ради интереса 3.0.9).
// wbr
>в NetBSD отсутствуют русские консольные фонта (не знаю как во второй версии),
пробуйте
FreeBSD1. возможность дампа снепшота файловой системы (начиная с 5.3)
2. background fsck (насколько я знаю, в NetBSD-2.0 пока не реализовано)
3. jail(8) (systrace с ним не сравниться. А учитывая последние веяния phk и близлежайшего окружения, в планах multiple IP для jail). NetBSD как и опенок тихо курят в сторонке.
4. pf начиная с 5.3 . В NetBSD он только в -CURRENT
5. GEOM
6. /tmp и /var на MFS из базовой коробки (5.3)
7. UTF-8 локали. Правда использовать довелось только с uxterm. В остальном не проверял, но что проблемы с консолью возникнут сомнений нет. Т.к. шрифтов в базовой системе не обнаруживается, как собственно и keymap. Можно, конечно, пошаманить над termios и конвертнуть их в sc fonts. Но желания нет.
8. Поддержка ipfw UID/GID. (вроде это есть и в pf, но опять-таки pf в NetBSD-CURRENT).--- Охрененный минус - наидерьмовейшая работа с потоками.
- make world DESTDIR=/path/to/dir воспринимает последний параметр как action (решение, env DESTDIR=/path/to/dir make world). Проблема известна еще с августа (osa@) - результат решения - нулевой. Собственно как бы я указал решения, НО ведь о нем ни слова в "официальной документации" (подразумевается исключение mail-lists)!!!!NetBSD
1. brconfig - по мне он как-то привычнее, чем sysctl в FreeBSD. Правда BRIDGE довелось настроить на 4-ке, в 5-ке может это поменяли.
2. Наличие systrace. Хотя опять таки в FreeBSD есть более мощная инфраструктура jail.
3. rcNG, хотя она и присутсвует в 5-ке FreeBSD, но заслуга это за NetBSDшниками.как субъективный минус:
- отсутствие tcsh в base system :)Минусы для NetBSD не указаны, т.к. с этой системой на порядок реже приходилось сталкиваться.
NetBSD 2.0 -- это просто доработанная версия 1.6.2, с официально работающей поддержкой SMP для i386 и sparc (для alpha и vax она и раньше работала), в то время как FreeBSD 5.x была основательно переписана по сравнению с 4.x, и я бы не стал утверждать, что в лучшую сторону -- внутриядерная многопоточность, GEOM, и многое другое увеличили размер ядра в добрых полтора раза, и при этом производительность и надежность отнюдь не выросли, а в общем плане даже упали. Надо бы упомянуть, что gcc-2.95.x был раза в два-три быстрее, чем gcc-3.3.x, да и проблем с совместимостью было гораздо меньше, и бинарный код был компактнее, но это уже другая история... Скажу лишь, что после полутора лет использования 5.x на SMP машине меня лично он не впечатлил, поэтому после краха харда я поставил 4.10, и вполне доволен! И это не только мое мнение, многие люди все еще используют 4.x и не спешат переходить на 5.x; более того, начата подготовка к выпуску 4.11, хотя я помню, что года два назад 4.9 должен был быть последним релизом... Не хотелось бы, чтобы NetBSD пошла путем FreeBSD...А если в общем, то за последние несколько лет FreeBSD превратилась в "BSD для i386" -- например, добрая половина драйверов не работает совсем или довольно странно на alpha, и все на это закрывают глаза -- дескать, нецелесообразно использовать несколько деревьев драйверов, для разных архитектур... В NetBSD с этим намного лучше.
>NetBSD 2.0 -- это просто доработанная версия 1.6.2, с официально работающей поддержкой
>SMP для i386 и sparc (для alpha и vax она и
>раньше работала)ну не совсем так. в 2.x по сравнению с 1.x появились родные pthreads. что потребовало весьма суровой переработки и libc и иже с ней. добавления в поддержке POSIX API (rt timers, semaphores etc) тоже весьма приятственны.
это если с точки зрения програмиста.
// wbr
>ну не совсем так. в 2.x по сравнению с 1.x появились родные
>pthreads. что потребовало весьма суровой переработки и libc и иже с
>ней. добавления в поддержке POSIX API (rt timers, semaphores etc) тоже
>весьма приятственны.Внутриядерная многопотоковость? Вопрос о ее целесообразности еще окончательно не решен, время покажет. А то как бы не получилось того же, что и с FreeBSD... А насчет таймеров да семафоров, то они и раньше были, куда же без них? Правильнее заметить, что их реализацию пришлось значительно усложнить, опять же из-за пресловутой многопотоковости...
>Внутриядерная многопотоковость? Вопрос о ее целесообразности еще окончательно не решен, время покажет.Без неё НИКУДА. Я не кричу, просто надо выделить;))
Те кошмарные костыли, которыми работает libc_r для поддержки многонитевости
на голом userland - местами конечно работают, но очень хило.>А то как бы не получилось того же, что и с
>FreeBSD... А насчет таймеров да семафоров, то они и раньше были,
>куда же без них? Правильнее заметить, что их реализацию пришлось значительно
>усложнить, опять же из-за пресловутой многопотоковости...Ну она как раз на них IMO не влияет.
Проблема многонитевости не в том, что она есть, а в том, что её здесь делают
слишком поздно.
А чего они с GPL не дружат?
>А чего они с GPL не дружат?а за что ее собственно любить? :)
// wbr
Когда будет включен PacketFilter в ядро NetBSD?
pf в NetBSD не будет добавлен.он есть в качестве lkm.
работает отстойно (1.6.2)
жаль.
>pf в NetBSD не будет добавлен.на счет ядра не скажу, но сопуствующие утили:
В 5.3 bind-9.3.0, + в chroot-е по умолчанию.
Postfix старый
2klalafuda: есть задачка на плюсах с заданным бюджетом. скинь на ICQ#:19267206 свой адресок, обсудим детали.
> В 5.3 bind-9.3.0, + в chroot-е по умолчанию.и ты это считаешь за достоинстово ? Как по мне так это недостаток. Т.к. у меня свои представления о mtree для чрутнутого apache' (и ИМХО, куда более правильные с точки зрения безопасности). Так что приходится ручками фуячить /etc/mtree/BSD.chroot.dist...т.к. при запуске скрипта rc.d/bind он сначала их применяет.
Более того 2-ой минус. При реализации чрутного бинда в jail'e, возникает много матюгов на devfs, т.к. ясен пень в jail'e он запрещен. Опять ... правим скрипты. По мне так они бы лучше написали соотвествуещее правило в /etc/defaults/devfs.rules + добавили опцию в defaults/rc.conf
>В 5.3 bind-9.3.0, + в chroot-е по умолчанию./home/chip> cat /etc/defaults/rc.conf | grep named
named=NO named_flags="" # see below for named_chrootdir
# To run the named(8) DNS server as an unprivileged user under a
# of /etc/namedb to /var/chroot/named/etc/namedb
#named_chrootdir="/var/chroot/named"
/home/chip>
ejik:~> cat /etc/defaults/rc.conf | grep named
# named. It may be possible to run named in a sandbox, man security for
named_rcng="NO" # XXX Temporary. Enable to use new rc
# functionality in support of named. See
named_enable="NO" # Run named, the DNS server (or NO).
named_program="/usr/sbin/named" # path to named, if you want a different one.
named_flags="-u bind -g bind" # Flags for named
named_pidfile="/var/run/named/pid" # Pid file
named_chrootdir="" # Chroot directory (or "" not to auto-chroot it)
named_chroot_autoupdate="YES" # Automatically install/update chrooted
# components of named. See /etc/rc.d/named.
named_symlink_enable="YES" # Symlink ${named_pidfile} and /var/run/ndc
>named_flags="-u bind -g bind" # Flags for named^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
named-8.x. FreeBSD < 5.3 ?
~ % uname -rs
FreeBSD 5.3-RELEASE
~ % grep named /etc/defaults/rc.conf
# named. It may be possible to run named in a sandbox, man security for
named_enable="NO" # Run named, the DNS server (or NO).
named_program="/usr/sbin/named" # path to named, if you want a different one.
named_flags="-u bind" # Flags for named
named_pidfile="/var/run/named/pid" # Must set this in named.conf as well
named_chrootdir="/var/named" # Chroot directory (or "" not to auto-chroot it)named_chroot_autoupdate="YES" # Automatically install/update chrooted
# components of named. See /etc/rc.d/named.
named_symlink_enable="YES" # Symlink the chrooted pid file
~ %/home/chip> uname -rs
NetBSD 2.0
/home/chip> grep named /etc/defaults/rc.conf
named=NO named_flags="" # see below for named_chrootdir
# To run the named(8) DNS server as an unprivileged user under a
# of /etc/namedb to /var/chroot/named/etc/namedb
#named_chrootdir="/var/chroot/named"
/home/chip>
ну а далее курим /etc/rc.d/named (/usr/pkg/etc/rc.d/named9) на предмет сравнения.
Хотя сравнивать их стоит с той оговоркой, что в FreeBSD devfs, а в NetBSD его нет.
Если честно, то не понимаю смысла последних высказываний - chroot для bind возможен и в FreeBSD и в NetBSD. Ну да, в NetBSD нет русификации консоли (точнее она есть, только надо ковыряться) - каждому - своё. как было написано на воротах Бухенвальда.Нельзя однозначно сказать , какая операционная система лучше - я, до знакомства с Глебом Смирновым(glebius), вообще думал, что лучше RH Linux ничего не придумано....