===================================================================
RCS file: /cvsrepo/anoncvs/cvs/www/68.html,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- www/68.html 2020/10/04 20:29:11 1.39
+++ www/68.html 2020/10/04 21:44:53 1.40
@@ -85,7 +85,7 @@
on real hardware yet.
-
General improvements and bugfixes:
+Improvements to time measurements, mostly in the kernel:
- Added support in the kernel and libc for timecounting in
userland, eliminating the need for a context switch everytime a
@@ -95,87 +95,84 @@
especially browsers and office software.
The userland timecounters
are enabled on the amd64, arm64, macppc, octeon and sparc64
architectures.
+ - Added a ktrace(1) -T option to make time-related system calls more prominent.
+
- Added tsc_delay(), a delay(9) implementation based on the TSC, to amd64.
+
- Used an LFENCE instruction everywhere RDTSC is used for a time measurement, reducing the jitter in TSC skew measurements.
+
- Introduced gettime(9) and getuptime(9) and substituted these for time_second(9) and time_uptime(9) throughout the kernel to prevent split-read problems on 32-bit platforms.
+
- Synchronized each core's CP0 cycle counter using the IO clock counter on mips64 and octeon, making the cycle counter usable as timecounter.
+
- Improved CPU frequency scaling in automatic performance mode by removing accounting for offline CPUs.
+
+Various kernel improvements:
+
+ - Added intrmap, an interrupt to CPU mapping API that is used by hardware drivers to use multiple CPUs for interrupt handling.
+
- Added an ioctl PCIOCGETVPD allowing userland to access read-only support information about pci devices via the vpd register.
- Set ddb(4) "/t" to show a trace via TID on all architectures.
+
- Introduced kstat(1), a subsystem to allow the kernel to expose statistics to userland.
+
- Added kstat to cnmac(4).
+
- Added support for remote coverage to kcov(4).
+
- Moved sysctl(2) CTL_DEBUG from DEBUG to the new DEBUG_SYSCTL.
+
- Prevented creation of bogus sd(4) devices for nvme(4) namespaces which are configured but have size 0.
+
- Used READ(16)/WRITE(16) commands for disks large enough to require them to access the last sectors, fixing large 512E devices plugged into USB to ATA/ATAPI bridges which mistakenly use 4K sector addresses/sizes.
- Restored VGA fonts on VT switch, preventing an unusable screen when switching to a VT with a custom VGA font from X.
-
- Fixed the ksh(1) exit code when evaluating a || compound list to prevent termination of the shell when running under -e.
-
- Relaxed filename checks in syspatch(8) to allow use of hyphens.
-
- Rewrote m88k mutex code as a slight variation of the MI mutex code, potentially improving stability and rendering mutex spinning time visible in top(1).
-
- Corrected getopt_long(3) parsing of a trailing dash in an option group, which was being incorrectly returned as an argument.
-
- Enabled building wsmoused(8) and wsfontload(8) on arm64 and armv7.
-
- Added a new column to wsfontload(8) -l output to report the number of characters contained in a loaded font.
-
- Prevented callers inspecting unrelated fields in the libc resolver function asr_run().
-
- Prevented rcs(1) removal of locked revisions with rcs -orange, avoiding leaving behind a lock for a revision which no longer exists.
+
- Ensured only pseudo-terminal devices use reprint delays.
+
- Prevented improper disabling of the backlight in umstc(4) when brightness is adjusted to 0.
- Provided an optimized implementation of ffs(3) in the kernel on arm64/powerpc/powerpc64.
-
- Improved CPU frequency scaling in automatic performance mode by removing accounting for offline CPUs.
-
- Fixed sndiod(8) crashes when USB devices are disconnected.
-
- Fixed the initial sndiod(8) alternate device number, preventing device number 1 from being skipped on first use.
-
- Allowed switching between alternate devices (-F) with sndioctl(1).
+
- Rewrote m88k mutex code as a slight variation of the MI mutex code, potentially improving stability and rendering mutex spinning time visible in top(1).
+
- Reworked kernel loading with octboot(4), which now does not rely on a mounted filesystem.
+
+
+Various new userland features:
+
+ - Imported login_ldap(8), using ldap(1) rather than openldap.
+
- Added support for set -o pipefail to ksh(1), potentially helping error checking.
+
- Cleared the screen in ksh(1)'s vi editing mode before redrawing the line with ^L.
- Implemented the gensub(), systime() and strftime() functions for awk(1).
-
- Stopped incrementing openclass for a literal "[" in awk(1), allowing parsing of expressions such as "/[[/[]/".
-
- Added intrmap, an interrupt to CPU mapping API that is used by hardware drivers to use multiple CPUs for interrupt handling.
-
- Added an ioctl PCIOCGETVPD allowing userland to access read-only support information about pci devices via the vpd register.
-
- Introduced gettime(9) and getuptime(9) and substituted these for time_second(9) and time_uptime(9) throughout the kernel to prevent split-read problems on 32-bit platforms.
-
- Fixed merging of files that lack newlines for diff3(1), OpenRCS and OpenCVS.
-
- Switched the default CDDB database for cdio(1) to gnudb.gnudb.org:8880.
-
- Introduced a darker xenodm(1) login widget and a lower contrast default background.
-
- Prevented creation of bogus sd(4) devices for nvme(4) namespaces which are configured but have size 0.
-
- Initialized v4l2_requestbuffers for libv4l compatibility, allowing view of video encodings not directly supported by video(1).
-
- Added video(1) white balance temperature control through w/W keys.
+
- Allowed specification of supported TLS protocols in ftp(1) "-S protocols".
+
- Switched the default man(1) pager from "more(1) -s" to less(1).
+
- Supported -T html -O tag in man(1) by passing a file:// URI to the pager.
+
- Added fstat(1) support for looking up unix domain sockets by file name.
+
- Added / as an alias for g (grep) in top(1).
+
- Provided a naptime variable for userspace via kvm_read(3), usable by vmstat(8).
+
- Allowed switching between alternate devices (-F) with sndioctl(1).
- Added the ability to set and display video(1) control values directly on the CLI.
- Allowed the combination of video(1) "-dc" options, reset and display control values.
+
- Added video(1) white balance temperature control through w/W keys.
- Added control for backlight compensation to video(4).
-
- Used an LFENCE instruction everywhere RDTSC is used for a time measurement, reducing the jitter in TSC skew measurements.
-
- Prevented a core dump in ftp(1) during fetch abort.
-
- Allowed specification of supported TLS protocols in ftp(1) "-S protocols".
-
- Fixed an xconsole(1) crash by starting it after setting the background.
-
- Fixed ls(1) -R mode to not display subdirectories of a directory beginning with '.' and ensure directory names are always displayed.
-
- Introduced kstat(1), a subsystem to allow the kernel to expose statistics to userland (and kstat(8), the userland side).
-
- Added kstat(1) -w option, allowing update and printing of stats at a specified wait interval.
-
- Added kstat to cnmac(4).
-
- Added tsc_delay(), a delay(9) implementation based on the TSC, to amd64.
-
- Synchronized each core's CP0 cycle counter using the IO clock counter on mips64 and octeon, making the cycle counter usable as timecounter.
-
- Added support for set -o pipefail to ksh(1), potentially helping error checking.
-
- Taught su(1) -l -f to start a regular shell for non-csh shells rather than a login shell.
-
- Enabled spleen16x32 and spleen32x64 fonts on armv7 for GENERIC kernels.
-
- Implemented linear and power-of-two histograms in btrace(5).
-
- Added btrace(8) -p flag to filter all actions by PID.
+
- Initialized v4l2_requestbuffers for libv4l compatibility, allowing view of video encodings not directly supported by video(1).
+
- Added a new column to wsfontload(8) -l output to report the number of characters contained in a loaded font.
+
- Relaxed filename checks in syspatch(8) to allow use of hyphens.
- Enabled btrace(8) (dt(4) not yet enabled in GENERIC, though).
+
- Added btrace(8) -p flag to filter all actions by PID.
+
- Implemented linear and power-of-two histograms in bt(5).
- Added support for "&" and "|" operators in btrace scripts.
-
- Used su(1) -fl to avoid sourcing the target user's .profile in rc.d(8)/rcctl(8).
-
- Added a ktrace(1) -T option to make time-related system calls more prominent.
-
- Switched the default man(1) pager from "more(1) -s" to less(1).
-
- Supported -T html -O tag in man(1) by passing a file:// URI to the pager.
-
- Ensured only pseudo-terminal devices use reprint delays.
-
- Prevented mg(1) from running out of memory or segfaulting with
query-replace-regex ^
.
- - Prevented an unveil(2) failure with chdir / on sensorsd(8).
-
- Ported NetBSD's arm64 disassembler for ddb(4).
-
- Added / as an alias for g (grep) in top(1).
-
- Added support for remote coverage to kcov(4).
-
- Avoided reading one byte before the path buffer in mountd(8).
-
- Added the ability to filter which kstat(1) entries are displayed.
-
- Moved sysctl(2) CTL_DEBUG from DEBUG to the new DEBUG_SYSCTL.
-
- Added fstat(1) support for looking up unix domain sockets by file name.
-
- Fixed make(1) :S with anchors and replacement.
-
- Imported login_ldap(8), using ldap(1) rather than openldap.
-
- Used READ(16)/WRITE(16) commands for disks large enough to require them to access the last sectors, fixing large 512E devices plugged into USB to ATA/ATAPI bridges which mistakenly use 4K sector addresses/sizes.
+
+
+Various bugfixes and tweaks in userland:
+
+ - Fixed the ksh(1) exit code when evaluating a || compound list to prevent termination of the shell when running under -e.
- Fixed "$@" splitting with empty IFS in ksh(1).
-
- Prevented improper disabling of the backlight in umstc(4) when brightness is adjusted to 0.
+
- Stopped incrementing openclass for a literal "[" in awk(1), allowing parsing of expressions such as "/[[/[]/".
+
- Fixed make(1) :S with anchors and replacement.
+
- Prevented mg(1) from running out of memory or segfaulting with
query-replace-regex ^
.
+ - Fixed ls(1) -R mode to not display subdirectories of a directory beginning with '.' and ensure directory names are always displayed.
+
- Prevented a core dump in ftp(1) during fetch abort.
+
- Taught su(1) -l -f to start a regular shell for non-csh shells rather than a login shell.
+
- Used su(1) -fl to avoid sourcing the target user's .profile in rc.d(8)/rcctl(8).
+
- Fixed merging of files that lack newlines for diff3(1), OpenRCS and OpenCVS.
+
- Prevented rcs(1) removal of locked revisions with rcs -orange, avoiding leaving behind a lock for a revision which no longer exists.
+
- Fixed sndiod(8) crashes when USB devices are disconnected.
+
- Fixed the initial sndiod(8) alternate device number, preventing device number 1 from being skipped on first use.
+
- Switched the default CDDB database for cdio(1) to gnudb.gnudb.org:8880.
- Stopped syslogd(8) from closing UDP sockets for sending messages when DNS lookup of a UDP loghost fails, allowing them to be used to send if DNS is working during the next SIGHUP.
- Prevented established TCP and TLS sockets of syslogd(8) from staying open forever if a client aborted the connection silently.
-
- Provided a naptime variable for userspace via kvm_read(3), usable by vmstat(8).
-
- Cleared the screen in ksh(1)'s vi editing mode before redrawing the line with ^L.
+
- Avoided reading one byte before the path buffer in mountd(8).
- Made apmd(8) always ask the kernel about current hw.perfpolicy rather than maintaining state.
-
- Reworked kernel loading with octboot(4), which now does not rely on a mounted filesystem.
-
- Converted macppc, octeon and loongson to use machine-independent installboot.
-
- Forced long-names on msdos filenames for installboot on most 32-bit architectures.
-
-
- Improvements in the FFS2 filesystem:
-
- - Made FFS2 the default for newfs(8), except for mfs.
-
- Enabled the FFS2 option on the luna88k ramdisk.
-
- Made FFS2 the default non-root filesystems on landisk, sgi and luna88k.
-
+ - Prevented an unveil(2) failure with chdir / on sensorsd(8).
+
- Corrected getopt_long(3) parsing of a trailing dash in an option group, which was being incorrectly returned as an argument.
+
- Prevented callers inspecting unrelated fields in the libc resolver function asr_run().
+
- Introduced a darker xenodm(1) login widget and a lower contrast default background.
+
- Fixed an xconsole(1) crash by starting it after setting the background.
Improved hardware support and driver bugfixes, including:
@@ -265,6 +262,9 @@
Added bcmtmon(4), a driver for the temperature sensor on the Raspberry Pi 4.
Introduced mvpp(4), a driver for the Marvell Packet Processor v2 as used on the Armada 7K and 8K SoCs.
Improved PLL1(CPU_PLL) stability for the Allwinner H3/H2+.
+ Ported NetBSD's arm64 disassembler for ddb(4).
+ Enabled spleen16x32 and spleen32x64 fonts on armv7 for GENERIC kernels.
+ Enabled building wsmoused(8) and wsfontload(8) on arm64 and armv7.
IEEE 802.11 wireless stack improvements and bugfixes:
@@ -309,6 +309,15 @@
- On systems with multiple root disks, the installer will upgrade the disk with auto_upgrade.conf present when the upgrade was initiated by sysupgrade(8).
- Changed install images called *.fs to *.img to accommodate some UEFI bootloaders.
+
- Forced long-names on msdos filenames for installboot on most 32-bit architectures.
+
- Converted macppc, octeon and loongson to use machine-independent installboot.
+
+
- Improvements in the FFS2 filesystem:
+
+ - Made FFS2 the default for newfs(8), except for mfs.
+
- Enabled the FFS2 option on the luna88k ramdisk.
+
- Made FFS2 the default non-root filesystems on landisk, sgi and luna88k.
+
Security improvements: