Available on the download page.
From the change log (https://visopsys.org/download/change-log/):
Overview: This maintenance release introduces usability and stability improvements to the multitasker, filesystems, text editor, and networking programs, and a number of bug fixes.
- Added support for 64-bit EXT filesystems (read-only, as before).
- Implemented a series of steps on the way to changing the kernel’s multitasker to use software task switching, as opposed to using the processor feature. This is a prerequisite for adding x86_64 builds.
- Implemented a contextSwitch() function.
- Added a ‘collector’ thread to do the work of cleaning up finished processes, instead of doing it within the scheduler itself.
- Eliminated the use of x86 IDT task gates, and removed the multitasker’s scheduler process and converted it into an interrupt handler.
- Updated the ‘edit’ Text Editor program to add ‘New’ and ‘Save As’ menu items, bringing it more in line with conventions used by other editors. When invoked without a filename or creating a ‘New’ document, the ‘Save’ menu item is disabled. Use of a temporary file for unsaved documents has been discontinued.
- Added a Window library ‘cancel’ dialog for stopping an in-progress operation.
- Because connecting via TCP can potentially block for a fairly long time, networking programs now use a connection thread that can be killed via the new ‘cancel’ dialog.
- Added filtering (for instance TCP only, ARP only, etc) for the packet sniffer. By default, all network packets are shown. A new button at the bottom of the left-hand panel will raise a dialog window which allows the user to (de-)select various types of packets to be displayed. As requested by forum user ronaldlees.
- Added an ‘errno’ program to print error messages associated with error codes.
- Updated the kernel’s MD5 hashing functions to (correctly) match the usage and behaviour of the more modern SHA1 and SHA256 code.
- Removed the ‘md5’ program, and replaced it with ‘md5pass’ and ‘md5sum’ programs for hashing strings and files, respectively.
- Added a lock to the freeEntries list in kernelFile.c.
- Added locking to directory fileEntry structures when adding to or removing from their lists of entries.
- Added the standard C library function strndup().
- Added a global error strings table to the C library, and moved the definitions for strtol() and family from <stdio.h> to <stdlib.h>.
- Changed the ‘test’ program’s file_ops test to create its temporary directory in /temp, so that it works by default even on a read-only boot disk.
- Fixed: A SATA driver problem with VmWare’s virtual SATA disks. There was an error in the setting of SATA AHCI DMA modes during initial disk enumeration.
- Fixed: Problems with Jpeg loading and/or image resizing when creating thumbnails or clicking on multiple images. In a number of cases, thumbnails were created, but the View program would report an error trying to load them.
- Fixed: When booted from a read-only filesystem (CD), pressing PrtScn could cause a page fault, and error messages on the console saying “Filesystem is read-only” and “Unable to open [file] for writing”.
- Fixed: When clicking the Text Editor in the Programs window, it would show an error dialog “Error -11 loading file” when booted from a read-only medium/disk, such as a CD/DVD.
- Fixed: When mounting a new filesystem, it would appear before the other, alphabetically-sorted, items in a directory listing. The most recently mounted filesystem was always being inserted as the first entry in its mount point’s parent directory, because the file name had not yet been set.
- Fixed: The kernel API was returning incorrect 64-bit values in the high 32 bits. For example, the free bytes values shown by the ‘ls’ command, and the time values shown by the ‘ping’ command, were obviously wrong.
- Fixed: Attempts to iterate through empty window containers could result in “Can’t allocate zero bytes” errors being logged to the console, for example after switching languages on the first boot screen.
- Fixed a number of warnings generated when building with the ‘clang’ compiler.