14.0 ճյուղի հրատարակումից երկու տարի անց թողարկվել է FreeBSD 15.0-ը: Տեղադրման տարբերակները հասանելի են amd64, aarch64, armv7, powerpc64, powerpc64le և riscv64 ճարտարապետությունների համար: Բացի այդ, տարբերակները հասանելի են վիրտուալիզացիայի համակարգերի (QCOW2, VHD, VMDK, raw) և ամպային միջավայրերի համար, ինչպիսիք են Amazon EC2-ը, Google Compute Engine-ը և Vagrant-ը:
Սկսած FreeBSD 15 ճյուղից, առաջին թողարկումից (15.0) հետո հիմնական ճյուղերի սպասարկման ժամկետը կրճատվել է 5-ից մինչև 4 տարի, ընդ որում՝ նոր հիմնական ճյուղերը ստեղծվում են յուրաքանչյուր երկու տարին մեկ։ Միջանկյալ թողարկումները (15.1, 15.2, 15.3) կմշակվեն ֆիքսված մշակման ցիկլով, որտեղ նոր տարբերակները կհրապարակվեն մեկ ճյուղում մոտավորապես յուրաքանչյուր վեց ամիսը մեկ, այլ ոչ թե տարին մեկ անգամ, ինչպես նախկինում էր։ Հաշվի առնելով երկու տարբեր հիմնական ճյուղերի միաժամանակյա սպասարկումը, նոր միջանկյալ թողարկումը կհրապարակվի յուրաքանչյուր 3 ամիսը մեկ (15.4, 16.1, 15.5, 16.2 և այլն), բացառությամբ նոր հիմնական ճյուղերի առաջին թողարկումների նախապատրաստման, որից առաջ թողարկումների միջև կլինի 6 ամսվա ընդմիջում (օրինակ՝ 15.3 թողարկումը կձևավորվի 2027 թվականի հունիսին, 16.0-ը՝ 2027 թվականի դեկտեմբերին, 15.4-ը՝ 2028 թվականի մարտին, 16.1-ը՝ 2028 թվականի հունիսին)։
FreeBSD 15.0-ի հիմնական փոփոխությունները (պաշտոնական թողարկման նշումներում, 15.0-ի համար նախատեսված փոփոխություններից բացի, նշվում են 14.1, 14.2 և 14.3 ճյուղերին նախկինում ավելացված բազմաթիվ հնարավորություններ):
- Ներդրվել է pkg փաթեթների կառավարիչը օգտագործելու հնարավորություն՝ բազային համակարգի բաղադրիչները տեղադրելու և թարմացնելու համար: pkgbase փաթեթները կարող են տրամադրվել տեղադրման կրիչի վրա՝ անցանց տեղադրման համար կամ ներբեռնվել pkg.freebsd.org պահոցից: FreeBSD-base պահոցը լռելյայնորեն միացված չէ pkg կոնֆիգուրացիայում (/etc/pkg/FreeBSD.conf): bsdinstall տեղադրողն առաջարկում է տեղադրման երկու տարբերակ՝ ավանդական և փաթեթների միջոցով (pkgbase): Ավանդական մեթոդի աջակցությունը, որի դեպքում բազային համակարգը դիտարկվում է որպես մոնոլիտ միջավայր, որը թարմացվում է freebsd-update օգտակար ծառայության միջոցով, նախատեսվում է հեռացնել FreeBSD 16 ճյուղից: Նոր մեթոդ, որը ներառում է բազային համակարգի տեղադրումը որպես փաթեթների հավաքածու FreeBSD-base պահոցից, լռելյայնորեն առաջարկվում է կառուցվածքներում՝ վիրտուալ մեքենա և պատկերներ ամպային միջավայրերի համար, բայց ներկայումս համարվում է փորձարարական սովորական համակարգերի համար։
- Ավելացվել է FreeBSD-ի ստեղծման աջակցություն ոչ արտոնյալ միջավայրերում, որոնք չեն պահանջում root արտոնություններ: Վիրտուալ մեքենաների տեղադրման ISO պատկերները և համակարգի պատկերները նույնպես կարող են ստեղծվել առանց root արտոնությունների: Կառուցման գործընթացի ընթացքում root արտոնություններ էին պահանջվում սարքի ֆայլեր ստեղծելու, թույլտվություններ սահմանելու և լրացուցիչ ֆայլային համակարգեր միացնելու համար (օրինակ՝ սկավառակի պատկերներ ստեղծելիս):
- Վերարտադրելի կառուցվածքների աջակցություն է ներդրվել, որը ապահովում է, որ բաշխված բինար ֆայլերը կառուցվեն տրամադրված սկզբնական կոդից և չպարունակեն թաքնված փոփոխություններ: Վերարտադրելի կառուցվածքները ապահովում են, որ տարբեր կառուցվածքային միջավայրերում սկզբնական կոդից ստեղծված բինար ֆայլերը նույնական լինեն:
- 32-բիթանոց i386, armv6 և powerpc ճարտարապետությունների համար տեղադրման պատկերների և երկուական փաթեթների կառուցվածքների ստեղծումը դադարեցվել է: 32-բիթանոց հարթակներից միայն armv7-ն է մնացել: 32-բիթանոց ծրագրեր կառուցելու և COMPAT_FREEBSD32 ռեժիմն օգտագործելու հնարավորությունը 64-բիթանոց միջուկային միջավայրում 32-բիթանոց կատարվող ֆայլեր աշխատեցնելու համար կմնա առնվազն մինչև FreeBSD 16 ճյուղի կյանքի ցիկլի ավարտը:
- Ավելացվել են համակարգային կանչեր, որոնք իրականացնում են inotify մեխանիզմը՝ ֆայլային համակարգերում փոփոխությունները հետևելու համար։
- Ավելացվել է անվանված ֆայլի ատրիբուտների աջակցություն (Solaris ոճի ընդլայնված ատրիբուտներ), որոնք նախատեսվում է աջակցել որպես ZFS-ի և NFSv4-ի համար հասանելի ընդլայնված ատրիբուտների կառավարման այլընտրանքային մեխանիզմ: Տարբերությունները ավանդական FreeBSD-ից և Linux Ընդլայնված ատրիբուտների հետ աշխատելու մեթոդը կայանում է ատրիբուտները ծառայությունների գրացուցակում ներկայացնելու մեջ, որոնք անտեսանելի են հիմնական ֆայլային համակարգի անվանատարածքի համար և կապված են ֆայլի հետ։ Ատրիբուտները մշակվում են ինչպես սովորական ֆայլերի դեպքում. օրինակ, ատրիբուտների ցանկը որոշելու համար կարող եք օգտագործել readdir() ֆունկցիան։
- mac_do մոդուլը հայտարարվել է օգտագործման համար պատրաստ, ինչը թույլ է տալիս սահմանել քաղաքականություններ, որոնք թույլ են տալիս արտոնություններ չունեցող օգտատերերին փոխել գործընթացի մուտքագրումները: Հրամաններ մեկ այլ օգտատիրոջ ներքո գործարկելու համար պատրաստվել է mdo ծրագիրը, որը նման է su ծրագրին, բայց չի պահանջում suid root:
- i915 և amdgpu DRM դրայվերների վիճակը համաժամեցված է միջուկի հետ։ Linux 6.9. Драйверы беспроводных устройств rtw88 (Realtek 802.11n/ac), rtw89 (Realtek 802.11ax) и iwlwifi (Intel 02.11a/b/g/n/ac/ax/be) синхронизированы с ядром Linux 6.17:
- Միջուկի կողմի TLS (KTLS) իրականացումը միացված է լռելյայնորեն։
- Ավելացվել է sndctl ծրագիրը ձայնային քարտի կարգավորումները կառավարելու համար։
- Ավելացվել է mididump գործիքը՝ MIDI 1.0 իրադարձությունները իրական ժամանակում արտածելու համար։
- Bhyve հիպերվիզորին ավելացվել է նոր ցանցային backend՝ «slirp»-ը, որն օգտագործում է libslirp գրադարանը՝ ցանցային կույտի օգտագործողի տարածքի իրականացմամբ: «slirp» backend-ը թույլ է տալիս կազմակերպել հյուր համակարգի ցանց մուտքը հոսթ միջավայրից՝ առանց հոսթինգային կողմում ցանցը առանձին կարգավորելու:
- FreeBSD-ի հիմնական տարբերակում Kerberos իրականացումը փոխարինվել է Heimdal Kerberos-ի MIT Kerberos-ով: WITHOUT_MITKRB5 դրոշը կարող է օգտագործվել Heimdal Kerberos-ը վերականգնելու համար: FreeBSD 16-ում Heimdal Kerberos կառուցման աջակցությունը կհեռացվի:
- setgroups, getgroups և initgroups համակարգային կանչերի վարքագիծը օգտատերերի խմբերի հետ աշխատելիս նման է այլ հարթակների վարքագծին (FreeBSD-ում իրականացումը տարբերվում էր խմբերի ցանկով զանգվածի զրոյական տարրում արդյունավետ պրոցեսների խմբի նույնականացուցիչը պահպանելով):
- Նոր FreeBSD-kmods պահոցը լռելյայնորեն միացված է pkg փաթեթների կառավարչի կարգավորումներում: Այն պարունակում է միջուկի մոդուլի փաթեթներ, որոնք կառուցված են 15.x-RELEASE թողարկման որոշակի ճյուղերի համար, այլ ոչ թե անընդհատ թարմացվող 15-STABLE ճյուղի: FreeBSD-kmods պահոցը լուծում է անկայուն միջուկի ինտերֆեյսների (օրինակ՝ գրաֆիկական դրայվերների) վրա հիմնված դրայվերների տեղադրման խնդիրը: /etc/pkg/FreeBSD.conf-ում նախկինում առկա «FreeBSD» և «FreeBSD-kmods» պահոցները վերանվանվել են «FreeBSD-ports» և «FreeBSD-ports-kmods»:
- NFS-ը այժմ աջակցում է CLONE գործողությունը, որը սահմանված է NFSv4.2 սպեցիֆիկացիայում, որը թույլ է տալիս արագ պատճենել ֆայլերը՝ սերվերի վրա բլոկներ կլոնավորելով: Ռեժիմը ներկայումս աշխատում է միայն ZFS բաժինները NFS-ի միջոցով արտահանելիս:
- amd64 համակարգերում ավելացվել է 4 ՏԲ-ից ավելի օպերատիվ հիշողություն օգտագործելու հնարավորություն։
- Ավելացվել է ufshci դրայվեր՝ UFSHCI (Universal Flash Storage Host Controller Interface) ինտերֆեյսով պահեստավորման համակարգի կարգավորիչներն աջակցելու համար։
- Sysctl net.link.bridge.member_ifaddrs-ը լռելյայնորեն սահմանված է 0-ի վրա, այսինքն՝ ինտերֆեյսները կարող են ավելացվել ցանցային կամուրջներին առանց IP հասցեներ.
- Ավելի քան 2,000,000,000 ինոդ պարունակող UFS բաժինների հուսալիության բարելավում: UFS1 իրականացման մեջ լուծվել է 2038 թվականի խնդիրը (կարող են օգտագործվել մինչև 2106 թվականներ):
- Ավելացվել է SO_SPLICE ցանցային սոքեթների տարբերակը TCP կապերի միավորման համար (ինչպես պրոքսի, որն աշխատում է առանց տվյալները օգտատիրոջ տարածքում պատճենելու):
- Ըստ լռելյայնի, grep ծրագիրը անջատում է խորհրդանշական հղումների անցումը ռեկուրսիվ որոնման ընթացքում։
- Ավելացվել է nvmftа միջուկային մոդուլ՝ NVMe over Fabric կարգավորիչներին աջակցելու համար, և nvmecontrol օգտակար ծրագիր՝ արտաքին NVMe over Fabric կարգավորիչին միանալու համար։
- Ամսաթվի ծրագիրը այժմ աջակցում է ժամանակի արտածումը նանովայրկյանների ճշգրտությամբ, օրինակ՝ «date -Ins»-ը կարտածի «2024-04-22T12:20:28,763742224+02:00»:
- Jail-ը այժմ աջակցում է zfs.dataset տարբերակը՝ մեկուսացված jail-ին ZFS բաժին, snapshot կամ կլոն ավելացնելու համար: Jail հրամանն այժմ աջակցում է "meta" և "env" պարամետրերը, որոնք կարող են օգտագործվել մետատվյալները կապելու կամ միջավայրի փոփոխականներ փոխանցելու համար: Jail-ի նկարագրիչի հասցեավորումն այժմ աջակցվում է՝ օգտագործելով jail_set և jail_get ֆունկցիաները, ինչպես նաև jail_attach_jd և jail_remove_jd համակարգային կանչերը: Kevent ֆիլտրերը այժմ կարող են օգտագործվել jail-ի ստեղծման, ջնջման, փոփոխման և կցման գործողությունները հետևելու համար:
- Newsyslog ծրագիրը ունի պարամետր՝ լռելյայն սեղմման մեթոդը (bzip2, xz, zstd, gzip) սահմանելու համար, որը վերացնում է newsyslog.conf ֆայլի յուրաքանչյուր տողում առանձին դրոշներ (J, X, Y, Z) նշելու անհրաժեշտությունը։
- Ստանդարտ C գրադարանում շատ տողային և հիշողության ֆունկցիաներ օգտագործում են SIMD-ի վրա հիմնված օպտիմալացումներ։
- Վիրտուալ տերմինալներում օգտագործվող Gallant տառատեսակը թարմացվել է ավելի քան 4300 նոր գլիֆներով, այդ թվում՝ կիրիլիցա տառերով և մաթեմատիկական խորհրդանիշներով գլիֆներով։
- tty-ն լռելյայնորեն ունի IUTF8 դրոշը, որը ապահովում է, որ UTF-8 նիշերը ճիշտ հեռացվեն Backspace կոճակը սեղմելիս։
- Bsdconfig կոնֆիգուրատորում և bsdinstall տեղադրողում օգտագործվող երկխոսության ծրագիրը փոխարինվել է bsddialog-ով։
- Bsdinstall-ում օգտագործվող adduser ծրագիրը այժմ ստեղծում է առանձին ZFS տվյալների հավաքածու (բաժանում, snapshot կամ կլոն) օգտատիրոջ տնային գրացուցակի համար, եթե ZFS տվյալների հավաքածուն արդեն օգտագործվում է մայր գրացուցակի համար: Այժմ աջակցվում է նաև տնային գրացուցակների ZFS կոդավորումը: «Zcreate» և «Zencrypt» պարամետրերը ավելացվել են adduser.conf ֆայլին՝ այս գործառույթների ակտիվացումը կառավարելու համար:
- Հնարավորություն է տալիս ստեղծել OCI-համապատասխան կոնտեյներների և համակարգի պատկերներ Oracle Cloud-ի համար։
- AWS EC2-համատեղելի ամպային միջավայրերի համար ավելացվել է նոր «փոքր» պատկերի տեսակ: Հիմնական պատկերներից տարբերվող այս պատկերները չեն ներառում վրիպազերծման տվյալները, թեստերը, 32-բիթանոց գրադարանները, LLDB վրիպազերծիչը, Amazon SSM Agent-ը և AWS CLI-ն: EC2 հիմնական պատկերները այժմ բեռնվում են 76%-ով ավելի արագ:
- net.inet.tcp.nolocaltimewait կարգավորումը լռելյայնորեն անջատվել և հնացել է, այսինքն՝ վերադարձվել է տեղական համակարգի կողմից ավարտված TCP կապերի համար TIME_WAIT գրառումների ստեղծման լռելյայն կարգավորումը: Ավելացվել է նոր sysctl net.inet.tcp.msl_local ֆայլ՝ TIME_WAIT վիճակում կապի անցկացրած ժամանակը կարգավորելու համար:
- Ըստ լռելյայնի, localhost-ին INADDR_ANY նշող ցանցային կապեր ստեղծելու աջակցությունը անջատված է: Աջակցությունը միացնելու համար net.inet.ip.connect_inaddr_wild sysctl-ը սահմանեք 1-ի:
- gvinum տրամաբանական ծավալի կառավարիչը, որն օգտագործվում էր ծրագրային RAID-ի համար, հեռացվել է։ Gvinum-ի մշակումը դադարեցվել է մոտ 15 տարի առաջ, չնայած այն հանգամանքին, որ կոդն ունի մի շարք հայտնի խնդիրներ, որոնք ոչ ոք չի լուծելու համար։ gvinum-ի փոխարեն խորհուրդ է տրվում օգտագործել gconcat, gmirror, gstripe, graid կամ zfs:
- agp (Accelerated Graphics Port) դրայվերը, որը պարտադիր է հին տեսաքարտերի շատ դրայվերների համար, նախատեսված է հեռացնել FreeBSD 16-ում: Հետևյալ դրայվերները նույնպես հնացել են և նախատեսված են հեռացնելու համար՝ fdc (IBM PC Floppy Disk Controller), firewire (IEEE1394 Serial Bus), le (AMD Am7900 LANCE և Am79C9xx Ethernet) և upgt (USB 802.11g):
- readdir_r ֆունկցիան հնացել է։
- Bsnmpd SNMP սերվերը դադարեցրել է UDP փոխադրման աջակցությունը։
- SSH-ի և EC2 AMI-ի համար RSA հոսթի բանալիների ստեղծումը դադարեցվել է: DSA աջակցությունը հանվել է OpenSSH-ից: Հանրային բանալիների տվյալների բազան, որը հիմնված է DES ալգորիթմի վրա, հեռացվել է:
- ftpd-ն ու shar-ը հեռացվել են հիմնական համակարգից, և դրանց փոխարեն պետք է օգտագործվեն ftp/freebsd-ftpd և sysutils/freebsd-shar պորտերը։
- fdisk ծրագիրը հնացել է, և դրա փոխարեն պետք է օգտագործել gpart-ը։
- Syscons դրայվերը հնացել է, քանի որ այն անհամատեղելի է UEFI-ի հետ, չի աջակցում UTF-8-ը և հիմնված է գլոբալ կողպման վրա։
- LLVM 19.1.7, OpenSSH 10.0p2, OpenSSL 3.5.4, OpenZFS 2.4.0rc4, Lua 5.4.8, jemalloc 5.3.0, Awk 20250804 (UTF-8 աջակցությամբ), bc 7.1.0, unicode 16.0.0, ncurses 6.5, libarchive 3.8.2, tcpdump 4.99.5, unbound 1.24.1, less 679, file 5.46, GoogleTest 1.15.2-ի թարմացված տարբերակները։
Source: opennet.ru
