DragonFly BSD 6.0

Címkék

A DragonFly BSD projekt kiadta a DragonFly BSD 6.0-s kiadását. Telepítéshez elérhetők ISO lemezképfájlok, illetve upgrade is végezhető meglevő telepítésen a kiadási oldalon található instrukciók alapján.

Főbb változások:

Security Issues

  • CVE-2010-040, fixed with an import of bzip2-1.0.6.
  • Meltdown hardware is detected during boot on Intel.

Kernel

  • vfs_cache updated.
  • Memory paging improved.
  • Callout API rewritten, and callout structure revamped.
  • Optimizations for code paths, cache lines.
  • Fix shared spin-lock starvation vs exclusive locks.
  • refactor kern_kevent(), sysclock_t to 64 bit.
  • Improved EFI framebuffer support.
  • acpi_thinkpad updated.
  • sysmouse has evdev support.
  • machdep.hack_efifb_probe_early sysctl removed.
  • clock_nanosleep(2), fexecve(2) added.
  • Fix mptable search issue triggered by bhyve
  • uname sysctl fixes (minor stack disclosure).
  • Add fcntl(F_GETPATH).
  • Add IP_SENDSRCADDR support
  • Add SO_PASSCRED.
  • Introduce kmalloc_obj facility to reduce memory fragmentation
  • Implement existential locks and type-stable feature to kmalloc_obj
  • Fix /dev/fd/N to clone the file pointer instead of sharing it, so seeks do not mess up the running process.
  • Cleanup archaic dup*() code-paths.
  • vkernel support disabled (see note at top)
  • Fix an unintended pmap_remove() that caused extra page faults.
  • Allow XSAVE support without AVX (some VMs do this)
  • Improve clock_settime() portability.
  • Fix an unintended memory disclosure in nanosleep().
  • Fix atime field for PTYs ('w' program idle time reporting).
  • finger - remove -T option and fix lastlogx logic, widen TTY field.
  • Misc fstype adjustments.
  • Fix a serious callout*() structural corruption bug.
  • Fix an overflow in the non-EFI bootloader code.
  • Fix a slow memory leak in the resource limit structure.
  • Fix a bug that could cause excessive VM pageout flushes.
  • Refactor ifsq_watchdog*() adding features to better-support queue flushes.
  • Fix atomicy issue in APIC EOI() and enable_icus().
  • Fix a multitude of rename races, particularly with directories.
  • Bring amdsmn in from FreeBSD.
  • Improve open() errno compatibility.
  • Make the DMAP significantly larger to accomodate EFI frame-bufffers that have been mapped to very high physical addresses (recent intel HP laptops).
  • Remove P_SWAPPEDOUT flag and non-functioning (non-applicable) code.
  • Detect fixed Intel meltdown hardware.
  • Bring in wsp(4) for Wellspring touchpads and Apple laptops.
  • Adjust devd to automatically recognize wireless network adapters and create wlanX interfaces for them.
  • Default serial port speed changed from 9600 to 115200. Long overdue.
  • Refactor sysclock_t from 32 to 64 bits.
  • Refactor kern_kevent() and fix a panic.
  • Fix an efivar panic.
  • Remove long-deprecated getdomainname(), setdomainname(), and uname() system calls. libc handles these a different way.
  • Fix rare vm_map_entry exhaustion panic.
  • Refactor vfs_timestamp() and change default to TSP_USEC.
  • Allow the 8254 timer to be forced-on for machines which do not support the LAPIC timer during deep-sleep.
  • Improve calculations for user/sys/intr/idle times.
  • Implement sysctl kern.tls_extra to help the userland rtld deal with late library loads.
  • Fix minor scheduler bugs.
  • Optimize the system call code path.
  • Major refactor of the vfs_cache code to improve performance and reliability.
  • Improve cache_fullpath().
  • Add raw flame_graph sampling support.
  • Reduce SMP contention during low-memory stress.
  • Recode the namecache mount transition cache to improve performance.
  • Reduce excessive rdrand harveesting that was seriously impacting performance on some CPUs (rdrand is microcoded and concurrent per-cpu use does not fully scale on many CPUs).
  • Major revamp of jail support and related options. Restructure the jail.* sysctl tree. Fix broken port-matching code, fix loopback interface handling.
  • Major advancement of VM topology. Primarily change over to an extent-based representation and remove pv_entry's for terminal PTEs. Not yet extended to pmap_enter().
  • Create new linker segments for e.g. read-mostly globals and other partitioning.

Filesystems

  • HAMMER2 - multiple cleanups and fixes
  • HAMMER2 - initial multi-volume support (multi-local disk, not networked multi-master)
  • HAMMER2 - Fix rename over empty directory issue.
  • HAMMER2 - Volume expansion support (hammer2 growfs directive added).
  • HAMMER2 - Update ctime upon chmod().
  • HAMMER2 - Fix a serious de-duplication bug.
  • TMPFS - Significant performance enhancements.
  • TMPFS - Fix two directory-entry races.
  • TMPFS - Fix a file truncation bug.
  • MSDOSFS: last sector read bug fixed.
  • non-GPL ext2 filesystem support added.
  • Refactor VOP_GETATTR_LITE() a bit for performance and portability.

Networking

  • Support added for newer Intel I219 ethernet controllers.
  • re(4) updated to Realtek's re-196.04, plus misc fixes.
  • em/emx(4) updated to Intel's em-7.7.8 with support for I219 LM15~19 and I219 V15~19.
  • bnx: Support 57764, 57767 and 57787.
  • bnx: A multitude of fixes made.
  • Add AF_ARP support.
  • Fix panic after route purge.
  • Fix numerous issues related to if_tap and if_tun cloning.
  • Attempt to fix the TCP ISN generator in the face of very fast port reuse.

Graphics

  • Multiple updates to the i915 driver.
  • DRM system now matches Linux 4.10.17.
  • Additional stability fixes to i915.

Driver updates

  • Serial port default speed is changed from 9600 to 115200.
  • amdsmn, amdtemp added.

Userland

  • autofs - fix absolute path when creating a mountpoint.
  • calendar - Rewrite to support Chinese and Julian calendars, various enhancements.
  • cpdup - Now uses lchmod(), lutimes(), and lchflags() when available.
  • cpdup - Use POSIX-defined timespec fields in a more portable manner.
  • disklabel - Add -x and -xx label expansion options.
  • ifconfig - Support filtering output by interface group.
  • ifconfig - Add -f options
  • ifconfig - Many miscellaneous enhancements.
  • pkill(1): Add option -T.
  • shutdown(8), reboot(8), printf(1), test(1), sh(1) updated to match FreeBSD.
  • games ching, gomoku, monop, and cgram imported from NetBSD.
  • Multiple ifconfig updates.
  • talk and talkd updated.
  • multiple updates to pciconf, ACPICA, and tzdata.
  • mounttmpfs - Add utility to help support /tmp and /var/run tmpfs's.
  • mountd - Turn on SO_REUSEADDR if a specific port is specified.
  • sh - resynchronize /bin/sh from FreeBSD w/ many fixes.
  • libefivar, efivar, uefisign synced with FreeBSD.
  • efidp, efibootmgr imported.
  • gpt - fix corruption in device_name string which caused gpt to sometimes fail.
  • gpt - Add 'gpt expand' directive
  • grdc - Improve scrolling timestamp precision.
  • pciconf - implement -e and -B options
  • od - Fix long double and long int format output and alignment.
  • killall now handles -h and -? properly.
  • top, vmstat, who, rwhod, uptime - fix uptime calculation.
  • daemon(8) understands log rotation.
  • stdbuf(1), getaddrinfo(1) and timeout(1) added.

Libraries

  • pthreads - add support for pthread_getname_np() and other features.
  • pthreads - reduce type pollution.
  • pthreads - respect RLIMIT_STACK for the main thread's stack.
  • c++ - Execute new atexit() destructors during _cxafinalize()
  • libaura fixes
  • libc - typeing fixes for ualarm() and usleep()
  • libc - Add unlocked versions of stdio functions
  • libc - Make signal names upper-case (posix compat).
  • libc - Refactor printf() (from FreeBSD)
  • libc - Provide __udivti3() for intermediate 128-bit calculations.
  • libc - Fix serious bug in nmalloc (malloc implementation).
  • libc - Use a fixed blocksize for the DB hash and btree methods, significantly improving performance.
  • libstdbuf - Import from FreeBSD
  • libutil - Add sockaddr_snprintf() from NetBSD
  • terminfo - Drop repeat-character capability from 'xterm-new'. Fixes mis-generated output in some situations that can lead to output corruption in nvi.

Miscellaneous

  • Many manual page fixes
  • Make the initrd subsystem more termcap-friendly
  • Remove the obsolete dev_mkdb()
  • Many fixes to the nrelease build.
  • Allow special characters in passwords created via the installer.

DSynth work

  • dsynth now allows ports-mgmt/pkg to be explicitly specified
  • dsynth now supports zstd
  • Report additional information in the build output.
  • Warn the user if the world and kernel are out of sync.
  • Set OPSYS according to detection or the profile config.
  • Now collects and presents meta-node statistics.
  • Now deletes obsolete packages on 'prepare-system'.
  • Log the portdir for all bulk-scan errors.
  • Fix count mismatch issues and binary pkg deletion issues.
  • dsynth now automatically runs itself at nice 10 by default.
  • tune max_load and other heuristics to handle a wider range of machine capabilities automatically.
  • retune the pkg dependency memory target heuristic.
  • Get ccache support working.
  • Fix a stack buffer in dequote() that was causing corruption.

Various tools have been upgraded in the base system:

  • awk updated to 20200612.
  • bmake updated to 20210206.
  • cgram synced with NetBSD
  • dhcpcd updated to 9.4.0.
  • diffutils updated to 3.7.
  • dma updated to 0.13+.
  • dialog updated to 1.3-20200327.
  • dsynth added support for zstd compression.
  • file updated to 5.39.
  • grep updated to 3.4.
  • less updated to 551.
  • less wrappers added for various compression types.
  • ldns/drill updated to 1.7.1.
  • libressl updated to 3.2.5.
  • libedit updated to 2019-12-31.
  • libpcap updated to 1.9.1.
  • libarchive updated to 3.4.3.
  • xz updated to 5.2.5.
  • openssh updated to 8.3p1.
  • ncurses updated to 6.2-20200212.
  • nvi2 updated to 2.2.0.
  • openresolv updated to 3.12.0.
  • tcplay updated to 3.3.
  • tcpdump updated to 4.9.3.
  • tcsh updated to 6.22.02.
  • uname - remove (never worked) varsym support.
  • vmstat - make kmalloc zone display more readable (-m)
  • wpa_supplicant updated to 2.9
  • zstd 1.4.8 added to base.
  • Prep work for -fno-common becoming a compiler default.

Compiler status

  • Currently using GCC 8 by default, with GCC 4.7 built but not used as fallback.
  • A multitude of header inclusion fixes to improve portability.
  • Adjust C++ headers to survive -Wsystem-headers option.

Package updates

  • A full set of new binary packages has been built for 6.0, available through the pkg(8) tool.