Vydání FreeBSD 13.0

Po dvou a půl letech od vzniku větve 12.x byl představen vydání FreeBSD 13.0, které je připraveno pro architektury amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 a riscv64. Dále byly vytvořeny obrazy pro virtualizační systémy (QCOW2, VHD, VMDK, raw) a cloudová prostředí Amazon EC2, Google Compute Engine a Vagrant.

Hlavní novinky:

  • Byl proveden přechod na unified c Linux implementaci souborového systému ZFS z projektu OpenZFS. Mezi funkcemi, které se staly dostupnými ve FreeBSD po přechodu na OpenZFS, patří: rozšířený systém kvót, šifrování datových sad, oddělený výběr tříd alokace bloků (allocation classes), použití vektorových procesorových instrukcí pro zrychlení implementace RAIDZ a výpočtu kontrolních součtů, podpora kompresního algoritmu ZSTD, režim multihost (MMP, Multi Modifier Protection), vylepšené nástroje příkazového řádku, opravy mnoha chyb souvisejících se stavy závodů a zámky.
  • Port pro architekturu ARM64 (AArch64) byl převeden na první úroveň podpory (Tier 1), která je udržována týmy odpovědnými za odstranění zranitelností, přípravu vydání a údržbu portů. První úroveň podpory zahrnuje tvorbu instalačních balíčků, binárních aktualizací a hotových balíčků, a také poskytování záruk na řešení specifických problémů a zachování neměnnosti ABI pro uživatelské prostředí a jádro (s výjimkou některých podsystemů).
  • Architektura i386 byla převedena na druhou úroveň podpory platforem (Tier 2), při které bude pokračováno v tvorbě instalačních balíčků, binárních aktualizací a hotových balíčků, ale nezaručuje se řešení specifických problémů. Typ CPU (CPUTYPE) pro architekturu i386 byl ve výchozím nastavení změněn z 486 na 686 (pokud je to žádoucí, balíčky pro i486 a i586 si můžete vytvořit sami).
  • Složky clang, lld, lldb, compiler-rt, llvm, libunwind a libc++ byly aktualizovány na verzi 11.
  • Vývoj byl převeden z centralizovaného systému správy zdrojových kódů Subversion do decentralizovaného systému Git.
  • Byl proveden úklid základního systému od aplikací distribuovaných pod licencí GPL. Ze stromu zdrojových textů byly odstraněny binutils 2.17 a gcc 4.2.1, všechny podporované architektury byly převedeny na nástroje LLVM/clang. Byly přidány varianty nástrojů grep a dtc (Device Tree Compiler) distribuované pod licencí BSD, které nahradily verze pod licencí GPL. Bylo odstraněno automatické montování amd, jehož funkčnost je nyní realizována pomocí autofs. Nástroj ctm byl odstraněn a doporučuje se použít port misc/ctm.
  • Byla přepsána routovací stack, ve které byla přidána podpora objektů nexthop, které ukládají informace o stavu používané pro přenos paketu do požadovaného cíle. Byla přidána možnost připojit vlastní algoritmy pro hledání tras. Byly přidány algoritmy pro hledání tras z DPDK (Data Plane Development Kit) librte, které umožňují optimalizaci práce s velmi velkými routovacími tabulkami. Pro požadavky proxyarp byl zapojen interface fib. Byla přidána možnost měnit počet fib za běhu prostřednictvím sysctl net.fibs. Byla implementována podpora dočasných tras pro IPv4 a IPv6 (s nastavenou dobou života).
  • Byla přepsána a učiněna škálovatelnější podpora Multipath routingu, kde doba hledání nezávisí na velikosti seznamu (O(1)). Nová implementace Multipath je nyní spojena s parametrem jádra ROUTE_MPATH, který nahradil RADIX_MPATH a je standardně zapnutý. Pro správu Multipath byl navržen sysctl net.route.multipath.
  • Byl přepracován kryptografický rámec na úrovni jádra, ve kterém byla přidána podpora moderních kryptografických algoritmů a zjednodušen rozhraní pro použití šifrování v ovladačích a dalších komponentách jádra. Byly odstraněny zastaralé algoritmy ARC4, Blowfish, CAST128, DES, DES, MD5-HMAC a Skipjack. V IPsec a Kerberos byla ukončena podpora algoritmů, které byly označeny jako zastaralé v RFC 8221 a RFC 6649/8429, včetně 3DES. Byly odstraněny dříve vyhlášené zastaralé algoritmy v subsystému šifrování disku geli a cryptodev.
  • Do jádra GENERIC byla zahrnuta podpora ovladačů aesni a armv8crypto pro zrychlení šifrování disku založeného na geli pomocí instrukcí AES-NI pro architektury amd64/i386 a AES-XTS pro ARM64.
  • Byl přidán ovladač qat pro kryptografické akcelerátory Intel QuickAssist (QAT) a ovladač ossl, který implementuje zrychlené programové šifrovací procedury z OpenSSL optimalizované pomocí assemblerového kódu. Ovladač armv8crypto nyní podporuje AES-XTS a AES-GCM s využitím příslušných instrukcí procesorů ARMv8.
  • Byla přidána implementace TLS (kTLS), která funguje na úrovni jádra FreeBSD a umožňuje podstatné zvýšení výkonu šifrování pro TCP sokety. Podporují se verze TLS od 1.0 do 1.3. Pro šifrování se používají jádrové kryptografické ovladače s podporou AES-CBC nebo AES-GCM. Pro použití kTLS v uživatelském prostoru je třeba překompilovat OpenSSL s volbou WITH_OPENSSL_KTLS.
  • Byl přidán nový typ síťových bufferů mbuf (buffer pro síťová data), který může představovat v jednom bufferu více neodrážených fyzických stránek paměti, což umožňuje zvýšit výkon volání sendfile(2) díky zmenšení velikosti seznamů mbuf v bufferech soketu.
  • Do TCP zásobníku byla integrována podpora algoritmu pro proporční snižování intenzity odesílání paketů (Proportional Rate Reduction, RFC 6937), který umožňuje rychleji obnovit optimální parametry toku po dočasných problémech s přenosem dat. Pro deaktivaci PRR je k dispozici sysctl net.inet.tcp.do_prr.
  • Byly rozšířeny možnosti hypervizoru Bhyve: Přidána podpora sdílení souborů pomocí VirtIO-9p (VirtFS). Byla implementována možnost práce se snapshoty. virtuálních strojůByla přidána podpora zařízení PCI HDAudio a dalších sériových portů COM3 a COM4. Byly odstraněny zastaralé modely zařízení bvmconsole a bvmdebug. Byla zvýšena stabilita práce s klienty VNC, včetně aplikace pro macOS "Screen Sharing".
  • Do ovladačů VirtIO byla přidána podpora specifikace VirtIO V1, což zlepšilo kompatibilitu hostitelských systémů s FreeBSD s různými emulátory a hypervizory.
  • Pro procesy připojené k jail prostředím je zajištěna konverze vazeb na CPU (původně přidělená k procesu cpuset bude nahrazena s ohledem na cpuset jailu a stanovená omezení).
  • Byla přidána možnost sestavování základního systému FreeBSD v prostředích na základě jiných operačních systémů. Potřeba sestavování v jiných operačních systémech vyplývá z touhy využít nástroje kontinuální integrace pro testování FreeBSD, které jsou navázány na Linux nebo macOS.
  • Byl navržen nový stack MMC/SD založený na rámci CAM, který umožňuje připojování zařízení s rozhraním SDIO (Secure Digital I/O). Například, SDIO se používá v WiFi a Bluetooth modulech pro mnoho desek, jako je Raspberry Pi 3. Nový stack také umožňuje používat rozhraní CAM pro odesílání SD příkazů z aplikací v prostoru uživatele, což umožňuje vytváření ovladačů zařízení, které pracují na úrovni uživatele.
  • Byla vylepšena práce vrstvy pro zajištění kompatibility s Linuxem. Soubor DTS (Device Tree Sources) byl synchronizován s jádrem Linux 5.8.
  • Byla přidána podpora NFSv4.2 (RFC-7862) a byla implementována možnost práce NFS přes šifrovaný komunikační kanál na bázi TLS 1.3, místo použití Kerberosu (režim sec=krb5p), který byl omezen na šifrování pouze RPC zpráv a byl realizován pouze softwarově.
  • Byla odstraněna zastaralá verze ladicího nástroje GDB, která byla dříve nainstalována v adresáři /usr/libexec a používána v utilitě crashinfo. Místo předinstalovaného GDB se doporučuje pro získání podrobných informací o příčinách pádu nainstalovat novou verzi GDB z portů nebo balíčků. Byla také ukončena podpora ladění procesů prostřednictvím procfs. Byl přidán ovladač netgdb, který umožňuje přístup k laděči jádra přes síť.
  • Z libc byla odstraněna nebezpečná funkce gets (od standardu C11 byla tato funkce vyloučena ze specifikace) a byly provedeny úpravy portů, které tuto funkci ještě používají. Byly odstraněny funkce cap_random (doporučuje se použít getrandom).
  • Byl přidán nový systémový hovor copy_file_range, kompatibilní s implementací v jádře Linux, který umožňuje urychlit kopírování dat z jednoho souboru do druhého díky provádění operace pouze na straně jádra bez předchozího čtení dat do paměti procesu. Systémový hovor se také používá v serveru NFSv4.2 pro lokální provádění operací kopírování na serveru (bez přenosu klientovi).
  • V mechanismu asynchronního vstupu/výstupu POSIX AIO je podpora vektorizovaných funkcí. Zejména byly přidány systémové volání aio_writev a aio_readv, které umožňují implementaci vektorizovaných ekvivalentů funkcí aio_read a aio_write.
  • Byla ukončena podpora komponent pro uživatelský prostor pro formát spustitelných souborů a.out na systémech s architekturou i386. Nástroj elf2aout byl odstraněn.
  • Nástroje ping a ping6 byly sloučeny. Do ping byla přidána možnost nastavení parametrů kvality služeb (QoS) pomocí IP DSCP a Ethernet PCP.
  • Nástroj freebsd-update nyní zobrazuje postup při stahování souborů a byly přidány příkazy updatesready a showconfig pro kontrolu aktualizací a zobrazení konfigurace.
  • Byla provedena rozsáhlá práce na vylepšení podpory systémů NUMA (Non-Uniform Memory Access).
  • Byly aktualizovány grafické ovladače a komponenty grafického stacku. Byly vyřešeny problémy s provozem prostředí založených na protokolu Wayland.
  • Byl přidán podsystem backlight pro vytváření ovladačů pro řízení podsvětlení. Byl přidán ovladač pwm-backlight pro řízení podsvětlení Pinebook a Pinebook Pro.
  • Podpora protokolu SCTP byla vyčleněna do samostatného modulu sctp.ko, který je ve výchozím nastavení v jádře GENERIC vypnutý.
  • Pro vstupní zařízení byl navržen nový ovladač usbhid, který používá framework hid pro práci s USB HID zařízeními, místo ovladačů ukbd, ums a uhid.
  • V ovladači cpufreq byla realizována podpora technologie Intel Speed Shift.
  • Byla přidána podpora nových desek založených na 64-bitových CPU ARMv8, včetně SoC Broadcom BCM5871X a NXP LS1046A.
  • Pro architekturu AMD64 byla implementována podpora 57-bitových virtuálních adres (LA57). Byla přidána podpora čínských x86 CPU Hygon Dhyana založených na technologiích AMD.
  • Port pro architekturu powerpc64 byl převeden na použití LLVM a ABI ELFv2 (binární soubory z předchozích verzí FreeBSD nebudou moci být použity ve FreeBSD 13). Pro powerpc64 byly portovány ovladače virtio, ixl, mrsas, aacraid, cpld.
  • Byly odstraněny ovladače pro zastaralé Ethernet adaptéry:
    • bm(4) BMAC
    • cs(4) Crystal Semiconductor CS8900/CS8920
    • de(4) DEC DC21x4x
    • ed(4) NE-2000 a WD-80×3
    • ep(4) 3Com Etherlink III (3c5x9) ISA
    • ex(4) Intel EtherExpress Pro/10 a Pro/10+
    • fe(4) Fujitsu MB86960A/MB86965A
    • hme(4) Sun Microelectronics STP2002-STQ
    • pcn(4) AMD PCnet
    • sf(4) Starfire
    • sn(4) SMC 91Cxx
    • tl(4) Texas Instruments ThunderLAN
    • tx(4) SMC 83c17x
    • txp(4) 3Com 3XP Typhoon/Sidewinder (3CR990)
    • vx(4) 3Com EtherLink III / Fast EtherLink III (3c59x) PCI
    • wb(4) Winbond W89C840F
    • xe(4) Xircom PCMCIA
  • Byly odstraněny ovladače ubsec (kryptoakcelerátory Broadcom BCM58xx), ufm (FM tunery s USB rozhraním), ctau (Cronix Tau), cx (Cronix Sigma) a vpo (paralelní port SCSI).

Zdroj: opennet.ru

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster