Праз амаль два года з моманту вынахаду версіі 7.0 афіцыйна анансаваны вынахад рэлізу FreeBSD 8.0. Рэліз падтрымлівае архітэктуры amd64, i386, ia64, pc98, powerpc і sparc64. Для ўсталёўкі падрыхтаваныя 5 усталявальных зборак: bootonly, CD, DVD, LiveFS і Memstick для USB Flash.
Ключавыя навіны FreeBSD 8.0:
- Рэалізацыя тэхналогіі віртуалізацыі сеткавага стэка vimage, якая дазваляе забяспечыць падтрымку на адной машыне некалькіх цалкам віртуальных, ізаляваных сеткавых стэкаў. Сістэма значна пашырае сеткавую функцыянальнасць падсістэмы jail. Так, напрыклад, з'явіцца магчымасць мець для кожнага jail індывідуальныя налады PF, ipfw, dummynet правіл, net.inet sysctl зменных ядры, маршрутызацыі, IPSec і забяспечыць магчымасць іх аўтаномнага адміністравання;
- C мэтай падтрымкі раўналежнага шматструменнага рэжыму перапрацаваны фреймворк NETISR, уяўлялы сабой рэалізаваны ў ядры інтэрфейс для сеткавай дыспетчарызацыі, які дазваляе драйверам напроста перанакіроўваць пакеты апрацоўшчыкам сеткавых пратаколаў. Новая рэалізацыя падтрымлівае выкананне аднаго NETISR струменя на кожны CPU, што значна падвышае прадукцыйнасць сеткавай падсістэмы на шматпрацэсарных канфігурацыях;
- Падтрымка выканання FreeBSD i386/PAE у госцевым дамене Xen (domU);
- Завершаная чатырохгадовая праца па перакладзе сеткавай падсістэмы FreeBSD на больш эфектыўную сістэму блакаванняў. Усе сеткавыя драйверы перакладзеныя на новую MPSAFE (Multi Processor Safe) сістэму блакаванняў, эфектыўную для шматпрацэсарных і шмат'ядравых сістэм. На MPSAFE блакаванні таксама перакладзеная падсістэма TTY;
- Рэжым эмуляцыі Linux (Linuxulator) перакладзены на выкарыстанне 2.6.16 Linux ядры, у якасці порта, выкарыстоўванага для забеспячэння працы Linuxulator, па змаўчанні ўсталёўваецца emulators/linux_base-f10 (Fedora 10);
- Па змаўчанні GENERIC ядро збіраецца з падтрымкай мандатнага кантролю доступу (Mandatory Access Control), рэалізацыя якога была падрыхтаваная ў рамках праекту Trusted BSD. Па змаўчанні MAC модулі з азначэннем палітык не загружаюцца;
- Новы USB-стэк HPS (USB2), які адаптаваны для працы на SMP сістэмах і ўтрымоўвае новыя драйверы для сучасных высакахуткасных хост-кантролераў. Асноўныя навіны:
- Новы USB API;
- Шматлікія USB драйверы пазбаўленыя ад глабальных блакаванняў;
- Рэжым сумяшчальнасці з USB падсістэмай Linux ядры;
- Новы UGEN бэкенд і бібліятэка libusb. Цалкам вырашаныя праблемы з выгрузкай драйвера. Бібліятэка libusb20 распаўсюджваецца пад ліцэнзіяй BSD і польностью сумяшчальная з GPL бібліятэкай libusb-0.1.12 (libusb.sourceforge.net);
- Новая ўтыліта "usbconfig", для зручнай налады USB прылад;
- Поўная падтрымка падзеленых транзакцый (Split transactions), што разумее магчымасць выкарыстання хуткасных USB аўдыё прылад на сучасных USB HUB.
- Падтрымка HS ISOC транзакцый, што, напрыклад, адчыняе дзверы для стварэння драйвераў для розных высакахуткасных web-камер;
- Падтрымка USB для ўбудавальных платформаў, палепшаны алгарытм скіду змесціва кэшаў і буфераў;
- Магчымасць аўтавызначэння ўсталявальных USB кружэлак;
- Пашыраная падтрымка USB прылад, розных рэжымаў працы (напрыклад, I/O vectors дазваляе павялічыць прапускную здольнасць і скараціць лік перапыненняў);
- Рашэнне праблем з крахам пры извелечении USB-прылад без іх папярэдняга отмонтирования;
- Падтрымка NDIS USB, якая дазваляе выкарыстаць ва FreeBSD NDIS-сумяшчальныя драйверы USB прылад з Windows.
- У падсістэму CAM, першапачаткова якая рэалізуе ўніфікаваны модульны інтэрфейс для распрацоўкі драйвераў для SCSI прылад, дададзеная падтрымка сродкаў для кіравання прыладамі з шынай ATA/SATA. Удасканаленне не ўплывае на працу бягучай ATA падсістэмы FreeBSD, падаючы карыстачу альтэрнатыўны драйвер для AHCI сумяшчальных кантролераў, які можа быць загружаны па жаданні. Новая інфраструктура падтрымлівае такія магчымасці, як NCQ (Native Command Queuing), MSI (Message Signaled Interrupts) і мультыплікатар партоў (Port Multiplier). Кіраванне вырабляецца праз стандартную ўтыліту camcontrol.
- Абноўленая падтрымка ZFS да версіі 13, спіс паляпшэнняў можна знайсці тут, а прыклады выкарыстання тут. Падтрымка файлавай сістэмы ZFS ва FreeBSD абвешчаная гатовай да прамысловай эксплуатацыі. У сапраўдны момант вядзецца праца па партаванні ZFS версіі v22;
- Ва FreeBSD рэалізацыі падсістэмы NFS дададзеная падтрымка RPCSEC_GSS аўтэнтыфікацыі, як на боку сервера, так і на боку кліента. Дададзеная новая эксперыментальная рэалізацыя кода для падтрымкі NFSv2, NFSv3 і NFSv4 (для ўключэння замест стандартнай рэалізацыі трэба перасабраць ядро з опцыямі options NFSCL (кліент) або options NFSD (сервер)). Па змаўчанні ў якасці транспарта для NFS зараз выкарыстоўваецца пратакол TCP;
- У падсістэме net80211, забяспечвальнай падтрымку звязаных з бесправаднымі сеткамі тэхналогій, з'явілася магчымасць адначасовага стварэння некалькіх падсістэм базавых станцый (BSS) на базе адной кропкі доступу. Для азначэння бесправаднога інтэрфейсу з гэтага часу выкарыстоўваюцца псевдоинтерфейсы wlanN, замест імя прывязанага да тыпу задзейнічанага драйвера;
- У склад уключаныя напрацоўкі праекту arp-v2 (L2+L3 rewrite project), cуть якога ў вынасе L2 дадзеных (ARP і ND6) з L3 (IP) табліц маршрутызацыі, паляпшэнні раўналежнай апрацоўкі выбарак дадзеных за рахунак выключэння лішніх блакаванняў, спрашчэнні логікі кода звязанага з маршрутызацыяй. Як вынік інтэграцыі arp-v2 стаў магчымым сыход ад канцэпцыі кланавання маршрутаў (RTF_CLONING), скарачэнне аб'ёму кода ў модулях IPv4 ARP і IPv6 NDP, а таксама памяншэнне памеру структуры дадзеных rtentry;
- Рэалізацыя падтрымкі пратаколаў групавой маршрутызацыі IGMPv3 (Internet Group Management Protocol) і SSM (Source Specific Multicast). IGMP актыўна выкарыстоўваецца для арганізацыі дастаўкі шырокавяшчальнага мультымедыйнага кантэнту ў IPTV сістэмах;
- У рэалізацыі IPSec з'явілася падтрымка тэхналогіі NAT-Traversal (RFC 3948) для працы з падсеткі, змешчанай за транслятарам адрасоў.
- Пры зборцы сістэмы ў кампілятары GCC з гэтага часу па змаўчанні ўключаная сістэма абароны ад перапаўнення стэка ProPolice SSP (stack-smashing protection). Тэхналогія основна на ўсталёўцы і наступнай праверцы так званага "канареечного словы" - выпадковай паслядоўнасці ўсталёўванай у стэк непасрэдна перад адрасам звароту. Страты прадукцыйнасці пры зборцы з абаронай ад перапаўнення стэка складаюць 1-2%;
- Jail2 - абноўлены код рэалізацыі ізаляваных асяроддзяў Jail, у якой прадстаўленыя наступныя навіны:
- Падтрымка ўсталёўкі некалькіх IP на кожны jail;
- У дадатак да IPv4 рэалізаваная падтрымка IPv6;
- Магчымасць стварэння Jail без указання IP-адрасы (без падтрымкі сеткі), па аналогіі з chroot(8);
- Абноўленая падтрымка SCTP усярэдзіне Jail, уключаючы працу па-над IPv6;
- cpuset(1) здольны прывязваць набор працэсараў да вызначанага jailid або irq, прычым усталёўка магчымая і пасля стварэння jail асяроддзі;
- У дадатак да імя хаста (hostname) дададзеная магчымасць усталёўкі альтэрнатыўнага імя для jail асяроддзяў, якое можа выкарыстоўвацца для адміністравання і не можа быць зменена з jail;
- У ddb(4) дададзеная каманда "show jails" для выканання адладкі;
- Дададзеная сумяшчальнасць 32-разрадных jail'ов з 64-разраднымі сістэмамі (32-разрадны бінарныя файлы jail могуць быць запушчаныя ў 64-бітным сістэмным асяроддзі). Таксама забяспечаная зваротная сумяшчальнасць з сістэмнымі выклікамі і ўтылітамі папярэдняй версіі.
- Падтрымка іерархічных (укладзеных) jail'ов. Зараз усярэдзіне абароненых кантэйнераў можна ў сваю чаргу ствараць іншыя кантэйнеры, пры неабходнасці з больш (але ніколі не меней) цвёрдымі абмежаваннямі.
- Налады, якія адносяцца да jail і даступныя раней глабальна праз sysctl, зараз можна змяняць для кожнага кантэйнера асобна (sysctl пакінутыя для зваротнай сумяшчальнасці);
- Каманда jail таксама зведала змены і зараз дазваляе замест наканаванага набору параметраў задаваць адвольныя пары "імя=значэнне" для больш гнуткай налады і магчымасці наступнага пашырэння. Таксама параметры jail зараз можна змяняць "на лёце".
Другарадныя паляпшэнні, на якія варта звярнуць увагу:
Перапрацаваны код сістэмы gvinum, распрацоўка якога вялася на працягу двух апошніх гадоў. Унутраная логіка працы перакладзеная на падзейную мадэль апрацоўкі, перапісаныя некаторыя ключавыя кампаненты, палепшаная рэалізацыя перестроения і сінхранізацыі падзелаў. Дададзеныя якія адсутнічаюць каманды, прысутныя ў першапачатковым vinum, такія як attach/detach, start, stop, concat, mirror, stripe, raid5. Рэалізаваная падтрымка выпраўлення деградировавших падзелаў, змешчаных у змантаваным стане. Магчымасць дадання дадатковых кружэлак у RAID 5 падзелы, з мэтай павелічэння памеру падзелу, з падтрымкай фонавага перестроения без прыпынку працы. Значна павялічаная стабільнасць працы;
- Вялікая порцыя змен у гукавой падсістэме. Рэалізаваныя наступныя паляпшэнні:
- Падтрымка паасобнага і незалежнага кіравання гучнасцю для кожнага прыкладання (канала, струменя), без змены асноўнага ўзроўня гучнасці;
- Новы высакаякасны канвертар частаты дыскрэтызацыі (sample-rate-converter), заснаваны на метадзе SINC інтэрпаляцыі;
- Параметрычны праграмны эквалайзер (feeder_eq), які падтрымлівае кіраванне частотнымі характарыстыкамі прайграванага pcm-аўдыёструменю (басы, нізкія частоты). Занесены код падае сродкі для кіравання танальнасцю, як для задавальнення акустычных пераваг, так і для частотнага кампенсавання гуку пад зададзеныя характарыстыкі якая прайгравае апаратуры (напрыклад, для аптымізацыі прайгравання праз слухаўкі або тэлефон);
- У рэалізацыю віртуальных аўдыёканалаў дададзеная падтрымка празрыстага адаптыўнага/дынамічнага змешвання каналаў з аудиоданными розных фарматаў і частот;
- Рэжым прамой перадачы немадыфікаваных, чыстых pcm-струменяў на прылады высновы, у абыход сродкаў DSP апрацоўкі (напрыклад, змешванні або пераўтварэнні частаты);
- Рэжым эксклюзіўнага доступу да любых выглядаў PCM-струменяў (працуе праз адкрыццё файла з сцягам O_EXCL і нагадвае рэжым 'passthrough' для віртуальнага гукавога канала, пры якім прыглушаюцца ўсе астатнія каналы);
- Мультиканальная матрычная апрацоўка для бясшвоўнага пераўтварэння або перанакіраванні каналаў;
- Гукавы Loopback/Null драйвер.
- У дадатак да падтрымкі POSIX.1e ACL для файлавых сістэм UFS і ZFS рэалізаваная эксперыментальная падтрымка NFSv4 ACL;
- Дададзеная падтрымка чарнавога варыянту стандарту 802.11s (прыняцце стандарту чакаецца ў наступным годзе), рэгламентавальнага працу Mesh-сетак (кожная кліенцкая кропка сеткі звязаная праз суседнія кропкі). Для маршрутызацыі ў mesh-сеткі рэалізаваная падтрымка пратаколу HWMP;
- Дададзеная рэалізацыя інфраструктуры для кэшавання струменяў, якая дазваляе паскорыць выбаркі на 2 і 3 узроўнях сеткавага стэка і рэалізаваць балансаванне нагрузкі з улікам стану злучэння. Па змаўчанні функцыянальнасць выключаная, для актывацыі трэба выкарыстаць "sysctl net.inet.flowtable.enable=1";
- Дададзеная эксперыментальная падтрымка ECMP (Equal-Cost Multi-Path, RFC 2992) для IPv4 і IPv6, што дазваляе ствараць некалькі маршрутаў з аднолькавай або зададзенай вагай;
- Дададзеная эксперыментальная падтрымка платформы MIPS. Дададзеная падтрымка 64-разрадных працэсараў PowerPC, уключаючы PowerPC G5, PowerPC 970 (G5), POWER3 і POWER4;
- У склад дыстрыбутыва інтэграваны пакет OpenBSM 1.1 з адчыненай рэалізацыі Sun Basic Security Module (BSM) Audit API. У новай версіі павялічаная прадукцыйнасць, BSD API сінхранізаваны з OpenSolaris, палепшаная падтрымка IPv6 і аўдыту падзей звязаных з сеткай. Пакет можа быць выкарыстаны для аналізу чыннікаў краху прыкладанняў або сістэмы, азначэнні факту ўварвання зламысніка, маніторынгу стану сістэмы і т.д.
- Дададзеная бібліятэка libprocstat з API для прагляду дэталёвай інфармацыі аб працэсах, уключаючы дадзеныя аб выкарыстоўваных файлавых дэскрыптарах, нітках, мапинге памяці і т.п. На базе libprocstat створаная ўтыліта procstat для маніторынгу, адладкі і інспектаванні працэсаў;
- Дададзены драйвер sdhci для падтрымкі PCI SD хост кантролераў (кард-рыдэраў). Таксама ўдасканаленыя існыя драйверы mmc і mmcsd, якія зараз падтрымліваюць карты памерам больш 2Гб, вызначаюць стан перамыкача абароны ад запісу;
-
- У дрэва партоў (emulators/virtualbox) дададзеная сістэма віртуалізацыі VirtualBox, забяспечвальная магчымасць выкарыстання FreeBSD у якасці хост-сістэмы для запуску гасцёўняў АС. У сапраўдны момант рэалізаваная падтрымка механізму апаратнай віртуалізацыі VT-x, падтрымка сеткавага бриджинга, ACPI, доступу да DVD/CD, падтрымка SMP і т.д.
- Паляпшэнне ўтыліт:
- GNU-версія cpio замененая на распаўсюджваны пад ліцэнзіяй BSD аналог;
- ва ўтыліце traceroute з'явілася опцыя "-a" пры якой для кожнага хопа вылічаецца і выводзіцца нумар аўтаномнай сістэмы;
- awk зараз можа адначасова працаваць з 64 файламі;
- аптымізаваная буферызацыя ва ўтылітах cat і cp;
- ва ўтыліце find рэалізавана некалькі ўласцівых GNU-версіі опцый (-ignore_readdir_race, -noignore_readdir_race, -noleaf, -gid, -uid, -wholename, -iwholename, -mount, -d, -lname, -ilname, -quit, -samefile, -true.);
- утыліта freebsd-update зараз аўтаматычна вырабляе рэзервовае капіяванне заменнай копіі ядра;
- утыліта gpt выдаленая (трэба выкарыстаць gpart);
- у ifconfig дададзеныя опцыі vnet і -vnet для перасоўвання інтэрфейсу паміж jail;
- для Dtrace кліентаў дададзеныя бібліятэкі libdwarf і libproc;
- для кіравання NFSv4 дададзеныя ўтыліты nfscbd, nfsuserd, nfsdumpstate і nfsrevoke;
- ва ўтыліту route дададзеныя каманды show, weights і sticky;
- У якасці падтрымоўваных версій даступных у партах дэсктоп-асяроддзяў завуцца GNOME 2.26.3 (x11/gnome2) і KDE 4.3.1 (x11/kde4). З абноўленых іншых праектаў, пастаўляных у базавай сістэме, можна адзначыць: BIND 9.6.1, Tcpdump 4.0.0, wpa_supplicant 0.6.8, hostapd 0.6.8, OpenSSH 5.1p1, sendmail 8.14.3.
Для ажыццяўлення бінарнага абнаўлення з версій 7.x і мінулых бэта-версій FreeBSD 8.0 неабходна выканаць наступныя дзеянні:
Загружаны абнаўленні:
freebsd-update upgrade -r 8.0-RELEASE
Усталёўваны абнаўленні, адначасна адказваючы на пытанні,
датычныя рашэнні канфліктаў пры абнаўленні файлаў канфігурацыі:
freebsd-update install
Перазагружаем сістэму:
shutdown -r now
Яшчэ раз выконваем:
freebsd-update install
shutdown -r now
рэкамендуем прачытаць таксама