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.
It's been a while since I checked in on your project. Wow, it seems you've made quite a few improvements. BTW: thanks for adding that packet filter. I'll have to fire up the new image in my QEMU emulator and see how it goes. How's things in England?
andymc wrote: ↑Thu Sep 21, 2023 9:34 pmIt's been a while!
Indeed Btw I tried building Visopsys 0.92 from source today, but after building the toolchains (binutils-2.34.90 and gcc-9.3.0, exactly as recommended at BUILDING.txt) - while running "make" at the toplevel directory, I ran into the following problem:
Yes, sorry, store.c builds using the local native compiler rather than the toolchain. Mine didn't pick up that double-free for some reason. This is the patch:
andymc wrote: ↑Thu Jan 04, 2024 9:53 amBoth of these are fixed in the next release I'm working on
very much! Also, Visopsys 0.92 runs fine as a virtual floppy under coreboot+SeaBIOS - if to make a "/ramdisk" file, of course. By the way, please could you tell me the differences between the floppy versions of Visopsys 0.92 and Partition Logic 0.92?
qmastery wrote: ↑Fri Jan 05, 2024 10:07 pm
please could you tell me the differences between the floppy versions of Visopsys 0.92 and Partition Logic 0.92?
Visopsys and Partition Logic are essentially the same, on any given medium. Just some different config files and different startup programs.
Hi andymc, nice to see that the development of Visopsys is going on It has been a while, since my last post.
It seems that my old account doesn't even exist anymore because I had to re-register
Fosforito wrote: ↑Fri Apr 19, 2024 7:49 am
Hi andymc, nice to see that the development of Visopsys is going on It has been a while, since my last post.
It seems that my old account doesn't even exist anymore because I had to re-register
Hey Fosforito!
Sorry, I don't know what happened with your old 'fosforito' account. I would never have deleted it deliberately (I only delete obvious spammers). Huh. I noticed that Liss's account is also gone