Download - Change Log


Overview: This release consists of hardware support updates and bug fixes, with particular focus on USB. Support for USB 2 controllers and devices has been added.

  • Added initial USB2 (EHCI) support.
  • Added a stub USB3 (XHCI) driver.
  • Improved the output of the Devices program so that it's a little bit more readable.
  • Improved the collection and recording of the CPU vendor string.
  • Did a bit more development of the simple ACPI driver.
  • Fixed: USB hub detection could happen twice - once during the controller's initial device connection detection, and again when device driver detection happened for hubs.
  • Fixed: The first (number 1) USB port didn't work on many systems.
  • Fixed: Certain USB hard disks not working, and/or causing boot failure.
  • Fixed: The AHCI driver no longer fails to initialize if PCI bus mastering can't be enabled.
  • Fixed: ACPI (soft) power off could cause some systems not to boot the operating system on the next attempt.
  • Fixed: Removed possible infinite loop condition in the 'real time clock' driver.
  • Fixed: When installed somewhere via the native installer (for example on a USB stick) with a FAT32 filesystem type, the volume label was not being set properly.
  • Fixed: The graphical native installer would often skip the password setting box (flashing up and then disappearing).
  • Fixed: The TAB key was not working when using a USB keyboard.


Overview: This maintenance release consists of general bug fixes, and improvements to hardware detection and device drivers, with particular focus on USB. New features include the ability to boot from a USB device (a new USB image is available for download) and the ability to power down the system.

  • Implemented USB booting.
  • Added a USB blank-image file and a script for installing into it.
  • Improved detection of USB devices by always separating hotplug behaviour from coldplug detection at boot time.
  • USB 2.0 (EHCI) controllers are detected and disabled (reset) so that they don't interfere with access to the legacy USB 1.1 UHCI ports.
  • Search all 255 possible PCI buses, not just the first 10. It's slower to search them all, but some devices have been seen to reside on e.g. the 17th bus.
  • Improved recognition of PCI device classes and subclasses.
  • Added support for multiple buses of any type (such as PCI and USB)
  • Implemented a partial ACPI power management driver, so that the shutdown command can power off the system.
  • Updated GPT GUIDs for partition types, and moved the definitions and descriptions into the header file src/include/sys/guid.h
  • The boot menu installer now shows a warning that Windows 7 (and maybe Vista) will require the installation CD, in order to 'repair' its boot configuration.
  • The OS loader now passes a boot sector 'signature' found on the boot device (such as in the MBR) to the kernel in order to help the kernel figure out for itself which device it should mount as the root filesystem.
  • We now mark the logical disks of non-partitioned physical disks as being 'primary' partitions.
  • The kernel's disk management code now recycles disk numbers, so that for example, inserting a USB stick which gets named sd0, then removing it and reinserting, doesn't result in the disk being named sd1
  • Reformatted the output of the disks command.
  • The EXT 2/3 driver can now mount filesystems with variable-sized inode structures.
  • The filesystem 'resize constraints' call (such as to the kernel or NTFS) now passes a 'progress' parameter just like a real resize, so that error messages, etc., can be presented to the user.
  • Fixed: USB endpoint enumeration no longer discards the 0x80 bit of the endpoint address, since some devices require it in order for the endpoint address to be unique.
  • Fixed: A number of USB sticks would fail to enumerate, because port reset timings/logic were not technically correct.
  • Fixed: Pulling a USB stick that hadn't been successfully configured by the SCSI USB code would cause the USB thread to page fault in kernelDeviceHotplug().
  • Fixed: An EXT 2/3 symbolic link was showing up as an empty icon in the file browser.
  • Fixed: FAT volume label entries stored in the root directory were not being re-created when the directories were written.
  • Fixed: The kernel's GPT partition table code was not correctly reading partition table entries; it was failing to correctly calculate the buffer size and number of sectors of the entries.
  • Fixed: The Disk Manager program was incorrectly calculating the ending sector of entries in GPT partition tables.


Overview: More than four years in the making, this is a major new release offering an updated look and a number of new features, including 64-bit disk support, UDF (DVD) filesystem support, and GPT partition table support, as well as file browsing functionality. New administrative applications and functionality have been added, and the ATA/IDE driver has been enhanced, including the ability to better support backwards-compatible SATA controllers, and a number of tweaks and bug fixes are also included.

  • Updated the appearance of windows and several types of widgets.
  • Added 64-bit disk support.
  • Added UDF (DVD-ROM) filesystem support.
  • Added GPT disk label support to the kernel and to the Disk Manager program.
  • Included a quantity of new icons based on contributions provided by Leency <>, including the folder icon, and all of the file browser icons for different file types.
  • Implemented keyboard navigation of the GUI menus using 'Alt' to activate them, and the cursor and 'Enter' keys to navigate and select.
  • Alt-Tab now raises the root window's 'window' menu for keyboard navigation between open windows, in a way somewhat analogous to the way Windows and other GUIs do it.
  • Added loader file class support for the ability to recognise GIF and PNG images, Zip, Gzip, and Ar archives, and PDF and HTML documents. Also added file browser icons for PDF, HTML and archive files.
  • New splash image for the 0.7x series.
  • Added support for some new (non-4:3 aspect) graphics modes.
  • Improved the IDE driver so that it can detect and operate multiple controllers, correctly use PCI I/O port remappings, and PCI interrupts, as well as adding improved support for things like backwards-compatible SATA disks/controllers.
  • Added initial, very basic detection of AHCI SATA controllers (operating in native AHCI mode) and their disks.
  • Added more efficient power management, idling the processor during spare cycles.
  • Added basic internationalization library support (libintl), modeled on the GNU gettext system.
  • Added new keyboard mappings: French, Belgian, and Spanish.
  • Added some extra error checking in the filesystem detection code.
  • Added right-click context menus to the disk icons in the computer browser. The menu currently contains 'Browse', 'Mount as...', 'Unmount', and 'Properties' choices.
  • The computer browser now shows the filesystem label, if applicable, in its icon text.
  • When displaying an image, the 'view' program now scales large images down by default so that they use no more than 2/3 of the screen.
  • The 'view' program now has a right-click context menu to zoom in and out on images, or show them actual size.
  • The boot menu installer program 'bootmenu' now checks for previous installations and remembers the old entries.
  • Added mouse support for scroll wheels.
  • Fixed: The OS loader could hang during disk detection (divide by zero error) if the BIOS 'get drive parameters' function returned success despite there being no such drive.
  • Fixed: The PS/2 mouse driver has been reworked to deal properly with mouse interrupts from various types of mouse hardware.
  • Fixed: The FAT filesystem driver no longer sets the size of the file to a multiple of the block (cluster) size on every write. Only if the number of blocks changed.
  • Fixed: Clicking on a filename with embedded spaces failed to open the file in the file browser, because it wasn't quoting the name.
  • Fixed: The 'cdrom' program was crashing with a page fault during device scanning.
  • Fixed: The partition diagram in the Disk Manager was showing extra border lines when clicked, that didn't appear until moused over and made stranger-looking by the phantom redrawing of invisible menu items at the same theoretical coordinates that caused them to be discontiguous. The superclass image component was unhelpfully drawing its border when focused.
  • Fixed: Detecting USB mice and keyboards at boot time could fail and prevent other devices such as PS/2 mice and keyboards from working properly.
  • Fixed: Opening the edit program when running from a read-only filesystem produced the following error in the window:
    "Error:edit:kernelFile.c:kernelFileGetTemp(3304) Filesystem is read-only"
  • Fixed: When running the edit program from a read-only filesystem, specifying a non-existent file would close the program without any message.
  • Fixed: Recursive copying of a directory into another directory using the 'cp -R' command did not create the destination top-level directory, but instead merely copied the contents of the source directory.
  • Fixed: A disk caching bug wherein the cachePrune() function could be called in the middle of a mult-part cache read or write operation.
  • Fixed: A page fault exception that could occur when starting the 'filebrowse' File Browser program.
  • Fixed: The 'edit' program was creating temporary files that weren't being deleted on exit.
  • Fixed: A number of components were creating error messages and/or crashing when certain files (such as mouse pointer images and icons) aren't present.
  • Fixed: When using a FAT12 filesystem, writing any FAT sector after the first one was causing 2 sectors to be written - resulting in a write of the last FAT sector overwriting the first root directory sector.
  • Fixed: The FAT filesystem driver was under-calculating the correct size for the free-cluster bitmap in the case where the data clusters were not a multiple of 8.
  • Fixed: Passing an empty string to the kernelFilesystemMount() command was resulting in the new filesystem being mounted over top of the current directory.


Overview: Four months in the making, this is a maintenance release comprising the final round of tweaks and bug fixes to the 0.6x series of Partition Logic, featuring lots of work on the USB subsystem including support for USB mice/keyboards and hubs, tuning of the FAT filesystem driver, usability fixes for various user programs, and loads of Visopsys operating system kernel and C library improvements and bug fixes.

  • Lots of improvements to the USB subsystem, the UHCI controller driver, and the USB SCSI disk driver.
  • Added support for USB mice and keyboards
  • Implemented a driver for USB hubs.
  • Extensive tuning of the FAT filesystem driver, and the scanning of the FAT at mount time is much faster. Also fixed a small fragmentation bug, and turned a bunch of extraneous error messages into debug messages.
  • The FAT filesystem driver no longer stores the entire FAT in memory.
  • Added basic hardware detection for OpenHCI (OHCI) USB controllers so that they're at least indicated correctly at boot time.
  • Improved checks for removable (CD, floppy, flash, etc.) media changes, invalidating the disk cache when the media changes.
  • The file browsing program now shows the name of the current directory, and remembers any selection from the parent directory so that it's still selected if the user goes back up.
  • Re-wrote much of the PS/2 mouse driver, primarily to deal with out-of-sync situations that could cause the mouse pointer to jump around.
  • Added a '-n' option to the 'format' program, for specifying the volume name (label).
  • Fixed: Partitions were shown with the starting and ending cylinders determined from information in the partition table. This could be inconsistent (particularly in the case where geometries are guessed) with the geometry of the disk as seen by the operating system.
  • Fixed: Using a hotplugged USB disk caused a divide-by-zero exception because the geometry values were zeros. The SCSI disk driver now determines/guesses a geometry, and Partition Logic now ensures that the values are non-zero.
  • Fixed: The file browsing program could crash when you using the 'del' key to delete files.
  • Fixed: An occasional problem with ejecting ATAPI (CD-ROM, etc) devices.
  • Fixed: Spurious interrupts could cause a hang in the interrupt controller driver.
  • Fixed: Command line option processing for the 'format' and 'rm' commands.
  • Fixed: USB "can't enable port" messages.
  • Fixed: The USB UHCI driver was not returning the number of bytes transferred for transactions with a data phase.
  • Fixed: The _xpndfmt() function was causing exceptions when printing pointers in hex using the %p format specifier, and a divide-by-zero fault when printing GUIDs in Partition Logic.


Overview: This is an important maintenance release, with a focus on disk I/O performance, secure deletion (shredding) of files/partitions/disks, and bug fixes, including a data corruption problem, and changes to the OS loader resulting in more reliable booting on more systems.

  • Re-implemented software disk caching. Previously, performance was generally bad but could be horrendous under heavy I/O, as well as evidence that it was buggy and could occasionally cause data corruption.
  • Added read caching (lookahead) and write caching ability to the IDE disk driver.
  • Turn off software disk caching when doing disk copy, partition paste, and resize operations; vastly improves I/O throughput for faster finishes.
  • Implemented new A20 address line code in the 'vloader' OS loader, for successful booting on more systems.
  • Implemented secure deletion of disk data with an 'erase' operation to enable this for partitions and whole disks.
  • Implemented secure deletion for files, which does passes of overwriting the file data. Added a command line option to the 'rm' command to invoke it.
  • Reorganized heap memory management for more efficient memory usage.
  • Updated some partition type descriptions.
  • Added a '-R' option to the 'cp' command for recursive directory copying.
  • Added regular write-protect checking to the floppy driver, so that by the time a filesystem is mounted we should already know if we can't write to it.
  • The 'Devices' tool now contains an attribute with the system memory size.
  • The 'Program Manager' tool now shows disk performance stats.
  • Added a kernel call that allows, among other things, disabling the software cache for a disk.
  • Fixed: The floppy disk version was too full, crashed during boot when it subsequently couldn't write log files, etc., and otherwise spewed too many error messages.
  • Fixed: When an IDE disk had a small multi-sector value like 16, reading large files could fail with an error message about too many PRD entries.
  • Fixed: When NTFS resizing failed (for example with the unclean journal message) control didn't return - it just hung.
  • Fixed: With large IDE disks, on some systems, the kernel seemed to be getting 28-bit-limited geometry and size values from the BIOS. The IDE driver replaces BIOS values with ones from the device/controller wherever they make more sense.
  • Fixed: The mouse was leaving tracers at the rightmost and bottommost edges of the screen (1 pixel width).
  • Fixed: Most of the file system data allocated in the FAT filesystem driver was not deallocated, simply discarded.
  • Fixed: Recursive file copying caused a page fault when it encountered an empty directory.
  • Fixed: The 'move partition', 'copy disk', and 'paste partition' progress indicators would show the correct remaining time, but the percentage could overflow (going back to a smaller number and then climbing again).


Overview: This is a maintenance release, including a number of bug fixes and a significant re-engineering and modularization of the Partition Logic application, support for moving logical partitions and creating 'preceding' and out-of-order logical partitions, and the addition of new capabilities to the IDE disk driver including PCI, DMA (resulting in up to 700% performance improvement for raw disk I/O), and 48-bit addressing support (for disks larger than ~130GB).

  • Added PCI, DMA, and 48-bit addressing support to the IDE disk driver.
  • Did some touchups and corrections to the Visopsys I/O code in the libntfs (NTFS resizing) library.
  • Implemented the ability to move logical partitions.
  • Implemented the ability to create 'preceding' logical partitions.
  • Modularized the Partition Logic application for better organization, and so that it will be better suited for working with different types of disk labels in future releases.
  • Cleaned up new compilation warnings generated by GCC 4.1.1.
  • Progress dialogs that show time remaining no longer zero-pad the values, and specify the time in "X hours X minutes" format.
  • Fixed: The FAT filesystem driver's "get unused clusters" function was not properly returning an error if no free clusters were found.
  • Fixed: Using the cursor keys in Partition Logic's disk list or partition list did not change the selection.
  • Fixed: The kernel's GUID generation routine could hang because it was using an uninitialized lock structure.  Sometimes resulted in a 'hang' during EXT filesystem formatting.
  • Fixed: When creating a new logical partition in between two others, Partition Logic didn't set the disk order correctly.
  • Fixed: IDE disk driver now properly checks for sector number overflow.  Previously it could fail to detect attempts at >28-bit addressing, causing overflow at the ~130GB mark.
  • Fixed: Lines of only whitespace in configuration files halted processing.
  • Fixed: The progress dialog didn't layout properly when resized, and also fixed the layout of a few dialogs and windows vis. resizing.


Overview: This is a maintenance release, featuring the ability to resize Windows Vista partitions, more reliable loading on various systems, better progress indication when resizing NTFS filesystems, better error handling, some small but important GUI improvements, and a number of bug fixes.

  • Ported ntfsprogs 1.13.1 (including ntfsresize so that the Partition Logic can successfully resize Windows Vista NTFS partitions.
  • Improved the confirmation/warning message before resizing a partition.
  • When the progress dialog's 'Cancel' button is disabled, the mouse cursor shows 'busy'.
  • The progress indicator more accurately represents the actual times of the different stages of an NTFS resize.
  • The "Resetting $Logfile" stage of an NTFS resize shows progress indication.
  • Modified the vloader OS loader so that it only uses int 15 to move data into high memory. Improves reliability of loading on more systems.
  • The exception handler is now a separate task, for proper debugging and better reliability (in case of stack corruption, etc)
  • Implemented proper color text output in both text and graphics modes.
  • The boot sector code was further groomed and streamlined, though the work highlighted a bug in the GRUB bootloader that will always prevent chain-loading Visopsys from the second hard disk.
  • The MBR bootmenu code no longer has the number of sectors to load hardcoded into it. It now reads a tracks' worth. Also changed some of the memory locations used, since there might have been conflicts there.
  • The GUI "menu bar" component is no longer a container. It now *has* a container, so that it can also have state information about which menu is visible. Previously, raising a right-click menu in the Disk Manager could cause the corresponding menu bar title to draw itself raised when it shouldn't.
  • It is now possible to 'focus' the root window (without it going over top of the other windows, obviously).
  • Fixed: FAT32 bug in which the vloader OS loader was looking for the wrong terminating cluster number.
  • Fixed: When a window was bigger than the screen dimensions, moving the left side of it off the screen, then moving the mouse around the right side of the window caused mouse tracers (and perhaps a GUI crash).
  • Fixed: Dragging the initial splash window off the left side of the screen caused a system crash.
  • Fixed: When a list component was disabled, the list items did appear greyed-out.
  • Fixed: If the 'iconwin' program can't find the icon, it will try to use the standard 'executable' one instead of the generic visopsys one.
  • Fixed: The 'iconwin' program could still show an icon for a program that wasn't available. Also changed the config file format so that a list of icon names is not required to be specified before the individual specs
  • Fixed: In text mode, the 'more' command could leave its reverse characters on the last line if you're scrolling with any other key than [space].
  • Fixed: Printing a legitimately-escaped format sequence such as %%d in user space using printf() and friends didn't work, as the kernel's print routines would try to format their input again.
  • Fixed: The C library memcmp function was comparing one too many bytes.
  • Fixed: When the text was a different color (such as an error) and the screen scrolled, the cursor could remain the color of the previous line.
  • Fixed: When booting from a CD there was an error message:
    Error:kernel process:kernelFile.c:fileCreate(614):
    Filesystem is read-only.
  • Fixed: Broken CD-ROM emulation was not recognized on some systems.


Overview: This is a maintenance release, with new features including partition copy/paste (same disk or disk-to-disk), canceling of partition move operations, formatting of user-specified FAT subtypes (default, FAT12, FAT16, FAT32), and more user-friendly partition type selection.  Additional work has been done on the USB subsystem and the GUI.

  • Copy and paste partitions, on the same disk or disk-to-disk.
  • The "move partition" operation now allows the user to press the 'Cancel' button as long as no data from the original partition location has (yet) been overwritten.
  • Formatting FAT filesystems now allows the user to specify a FAT filesystem subtype (default, FAT12, FAT16, FAT32).
  • The "list types" and "set type" dialogs now display the partition types in a clickable list box selection; The user no longer has to type a hex code to set the type.
  • Lots of GUI enhancements including "mouse enter" and "mouse exit" events for windows, per-window mouse pointers, code improvements to the implementation of window component levels, and improved event handling.
  • Re-engineered the Visopsys kernel's USB subsystem and UHCI host controller driver and re-enabled basic USB support by default.
  • Added the ability to do FPU state saves and restores (with help from Davide Airaghi <> and Greg <>).
  • The floppy disk driver now does better memory management of its list of disks, devices, driver data, etc.
  • Fixed: Divide-by-zero fault in the kernel's random number code, caused by any call to the rand() C library function.
  • Fixed: The 'cat' and 'more' commands were crashy.
  • Fixed: Closing the Command Window program could occasionally cause system crashes.
  • Fixed: Booting could fail (system crash) when the (FAT) root filesystem was nearly full.
  • Fixed: A bug in the formatting function was preventing it from offering the choice 'none' (no filesystem/clobber).
  • Fixed: Creating logical partitions could cause page fault exceptions when writing the changes.
  • Fixed: Formatting a too-large disk as FAT12 caused a divide-by-zero fault.
  • Fixed: Clicking on a context menu item that didn't fall within the bounds of its parent window had no effect.
  • Fixed: When resizing the Partition Logic window, the partition diagram didn't completely redraw its entire width.
  • Fixed: When the Display Settings program was used to set the global colors, there were some window components whose colors were changing incorrectly including icons, lists, and menu items/list items.


Overview: This is a maintenance release, with extensive code grooming and bug fixes.  There are a handful of new, user-visible features, such as right-click context menus on the disk list and partition diagram/list, and 32-bit bitmap image/icon support. The real focus of this release has been stability, quality, and large scale re-engineering of the graphical interface code.

  • Implemented right-click context menus.
  • Added support for 32-bit .bmp bitmap images and .ico icons
  • The partition diagram now responds to keyboard cursor inputs.
  • Did general, large scale GUI re-engineering.
  • Dialog windows no longer appear in the window shell's window list.
  • Disabled USB support for now, since it's broken and can cause some boots to hang
  • Booting now works under the Bochs 2.3 emulator (failed in graphics mode under earlier versions)
  • The window border component only ever drew when it was called to draw the top border, since it could only draw the entire border. Now the 'draw gradient border' function can draw individual lines of a border and the border component draws the parts individually.
  • Did some cleanup of the vloader OS loader code
  • Added a function to redraw all the windows, and another one that resets all of the (non-custom) colors of all the windows' components. Setting the colors in the 'Display Settings' program uses this to change all of the window colors immediately.
  • Window canvas components now show a visual change when they are focused.
  • GUI menu components now have their own graphic buffers, so that regardless of what window they come from they can stay on top, extend outside the window, etc.
  • Fixed: The vloader OS loader was being written to the *second* free cluster by the Fedora VFAT driver when not using FAT32. Made a hack to adjust it when installing from Fedora, and generally streamlined the copy-boot program.
  • Fixed: A slight bug in the FAT code in that it relied too strictly on the Microsoft definition of FAT-type detection. Now it takes into account a couple of extra hints.
  • Fixed: The 'view' program wasn't showing tab characters properly in text files.
  • Fixed: The 'vsh' shell would crash if the user entered a line containing only whitespace.
  • Fixed: A bug in the copyArea() function of the framebuffer graphic driver in that it wasn't checking to see whether the areas were outside the buffer.


Overview: This is a maintenance and bugfix release, with numerous small tweaks throughout the entire system. New features include the ability to format and resize Linux swap partitions, more reliable loading, more detailed CPU detection, and a simple text editor.

  • Added formatting and resizing support for Linux swap partitions.
  • Added a basic, simple text editor (currently only works in graphics mode).
  • The OS loader now does improved memory moves to high memory for better reliability on more systems.
  • Added improved CPU detection to the kernel 'system' driver.
  • The file list widget and the file dialog (for example in the 'Computer Browser') have been reworked so that they don't use a separate GUI thread, since that was unreliable and crashy.
  • Removed the hard limit on the maximum number of window components.
  • The kernel now records and uses a network domain name, both via DHCP and via the kernel's config file.
  • Window resize events now go into the window's event stream so that applications can catch them.
  • The scrollbar slider now has a minimum size, so that it's clickable even when there's lots of data to scroll through.
  • The makefile variables for $CC, etc., are now settable from the top-level makefile.
  • Fixed: PS/2 mouse driver synchronization problems on some systems.
  • Fixed: Partition Logic's 'set type' menu item was failing to bring up the dialog window.
  • Fixed: After resizing a filesystem, Partition Logic no longer shows the warning "Can't write partition table backup in read-only mode" (if booted from a CD, for example). This just scared people.
  • Fixed: When entering the filesystem resizing value in Partition Logic's text mode, it didn't allow you to append 'c' or 'm' for size in cylinders or megabytes.
  • Fixed: Partition Logic no longer continually pesters users about incorrect CHS values in partition entries; one 'no' answer now turns it off.
  • Fixed: The FAT filesystem driver now ensures that items it's processing (when it's constructing short filenames, or writing directories) belong to its own filesystem (as opposed to mount points for other filesystems, for example).
  • Fixed: If the 'iconwin' program's config files contained commands with arguments, the icons weren't shown because the program didn't separate off the arguments and therefore couldn't locate the commands.
  • Fixed: Using the 'view' program to view a really small or really large image caused GUI crashiness.


Overview: This is a maintenance release.  New features include basic USB controller support, a USB mass-storage driver, device hotplugging, and Qemu support.

  • Implemented basic USB support for UHCI controllers.
  • Implemented a SCSI driver that can support USB mass storage devices.
  • Added basic hot-plugging support for devices.
  • Implemented a proper kernelBus top-level infrastructure for use by the PCI driver, USB driver, etc.
  • The display devices and text console drivers are now initialized separately and before other hardware, so that hardware detection messages can be shown while detection is going on.
  • The 'computer' program now continuously scans for new disks.
  • The 'iconwin' and 'filebrowse' programs now change the mouse pointer when they're busy loading up a file or program.
  • The 'iconwin' program now continues silently when programs or icons specified in the config file are missing.
  • The boot menu now has a default selection and timeout period (settable by the 'bootmenu' program).
  • There is now an 'active menu' global window system variable so that the focused menu can always be on top, and always go away then it loses focus.
  • Fixed: Booting failed on Qemu due to a PS/2 mouse driver hang.
  • Fixed: The 'bootmenu' program failed to run from a read-only media.
  • Fixed: The boot menu timer was counting down too quickly.
  • Fixed: The 'defrag' program was giving "can't defrag filesystem type 'unknown'" messages for things like floppies that hadn't been mounted.
  • Fixed: The kernelDiskGetMediaState() function was returning 0 for flash disks


Overview: This is a maintenance release.  New features include support for resizing NTFS filesystems and arbitrary partitions, IDE block mode I/O, Linux swap detection and clobber, and improvements to the operating system, plus assorted bug fixes.

  • Partition Logic can now resize Windows XP (NTFS) partitions, as a result of porting Linux ntfsprogs NTFS resizing code.
  • Allows partition-only resizing regardless of the filesystem type (with appropriate warnings).
  • Improved IDE/ATA hard disk driver performance by implementing block-mode I/O.
  • Added basic 'stub' NTFS filesystem support (detection and clobber).
  • Added basic 'stub' Linux swap filesystem support (detection and clobber).
  • Added a kernel disk function for rescanning the partitions of a single disk.
  • Add a kernel filesystem function for getting statistics about a filesystem (whether it's mounted or not, or indeed, properly supported or not).
  • Added a kernel filesystem function for getting resizing constraints.
  • Added a kernel filestystem function for requesting specific detection of filesystem type (useful for removable media and such).
  • Text mode now shows the operations/commands in two columns.
  • The 'move partition' and 'copy disk' functions now use standard progress dialogs and show time estimates.
  • Fixed: After formatting FAT32, Linux and older Windows installers would show the filesystem as 100% full.
  • Fixed: Errors with IDE/ATA hard disks as secondary masters.
  • Fixed: Unformatting (clobbering) a partition in the didn't seem to convince the kernel to un-detect the previous filesystem until reboot.


Overview: This release introduces new functionality including tools for browsing the computer, file systems, and administrative tasks, FAT defragmenting, a built in chain-boot loader and simple MBR formatting, file browsing widgets and dialogs, ELF dynamic linking, Windows .ico icon file support, and Italian keyboard support.  It represents a major upgrade of the underlying Visopsys operating system, and also includes a number of important bugfixes.

  • Added a 'Computer browser' toolbar item, equivalent to 'My Computer' in Windows.  It shows the different disks, auto-mounts them (if applicable) when clicked, and launches a file browser.
  • Added a 'File browser' toolbar item.
  • Added an 'Administration' toolbar item which brings up a window with icons for various other programs.
  • Added defragmenting capability to the FAT filesystem driver.
  • Implemented a simple, chain-loading MBR boot menu for loading from different partitions and operating systems.  It lets the user edit the menu strings and set parameters.  ** Note that this will NOT load any Linux installation that uses an initrd.
  • Implemented simple MBR code, which can for example be used to rescue a system from a deleted or corrupt GRUB installation.
  • Implemented shared libraries and dynamically linked executables.  All included libraries and programs are now dynamic.
  • Added .ico icon file format support and converted many existing icons to that format.
  • Created file browsing widgets/dialogs.
  • Added Davide Airaghi's Italian keyboard mapping.
  • Some preliminary networking support has been added, but for the moment it is disabled by default.
  • The text-mode formatting now shows a progress bar in text mode.
  • Refuse outright, or warn/confirm before moving, formatting, or deleting mounted partitions.
  • The 'disks' command now shows mount points.
  • Implemented a 'progress' data structure that can be passed to (for example) long filesystem operations such as format, check, resize.  Based on that, a 'progress dialog' window library feature that utilizes the 'progress' structure and shows a progress bar and status messages.
  • Fixed: Canceling a new partition creation at the label type stage caused 2 changes to show as pending.
  • Fixed: The partition reordering menu didn't display changes properly in text mode.  It worked but the changes weren't reflected in the menu.
  • Fixed: The lost+found directory created by the EXT2 formatting code was not readable when we mounted the filesystem.  Also, the permissions are now set to the same values as Linux mke2fs.
  • Fixed: Selecting partition/list types could crash the program.
  • Fixed: The Program Manager was associating some child threads with the wrong parents in the process list.


Overview: This is a maintenance and bugfix release. Some new features include support for EXT2 filesystem formatting, German keyboard layouts, GUID (Globally-Unique Identifier) generation, and filesystem clobber.  Also includes a number of important bugfixes.

  • Implemented EXT2 formatting.
  • Added Jonas Zaddach's German keyboard layout
  • Added GUID-generating capability.
  • Filesystem drivers that support 'format' functionality now also support 'clobber' functions, so that for example when a format is done, the filesystem doesn't still get detected as the previous type.
  • The filesystems code now has a proper array of all the different filesystem drivers, that can be iterated through (for example, when doing filesystem detection).
  • Implemented a "multi choice dialog" that shows buttons with user-specified text strings and returns the index of the specified choice.
  • Fixed: When creating partitions, it wasn't possible to create logical partitions. When choosing primary, no primary/logical attribute was shown.
  • Fixed: The EXT filesystem code would fail to mount small filesystems with only a single block group, where the number of blocks was less than the maximum blocks per group.
  • Fixed: In graphics mode, after specifying start and end values for a new partition, pressing 'Cancel' in the tag type dialog didn't stop the partition from being created.
  • Fixed: The 'move partition' function check for empty space on either side of a partition could produce a false error
  • Fixed: The partition table was being reread too frivolously (especially in between writing main and extended partition tables).


Overview: This is a maintenance and bugfix release.  There are various GUI touch-ups, and disk geometry information is updated in FAT partitions after disk copy operations.  Important fixes include the elimination of boot hangs due to faulty mouse initialization and full kernel variable lists, a fix to the detection of secondary hard disks, and a fix to faulty mounting of EXT2/3 filesystems.

  • Now ensures that the disk geometries stored in any FAT partitions are correct.
  • Window lists components now have multi-column mode implemented, are now capable of showing various combinations of icons, text, or both, and they are now able to resize successfully, so that more rows can become visible and multi-column lists get extra columns.
  • Back-ported the 0.6 branch multitasker changes (to do with processImage structures and argument passing).
  • The exception handler process now displays a dialog box when a program crashes, so that they don't simply disappear (requiring the user to look at the console output for the reason)
  • Changed the FAT, EXT, and ISO filesystem drivers to take more advantage of packed structures for better efficiency.
  • Fixed: The system could fail to boot in graphics mode due to faulty mouse initialization
  • Fixed: The kernel's symbol variable list was becoming full and causing various boot initializations to fail. The kernel's variableList code has been changed so that it automatically manages list memory.
  • Fixed: "ID or target sector not found" messages during boot when a second (slave, for example) hard disk was present.
  • Fixed: EXT2 mounting had become generally broken
  • Fixed: The 'format' function was inadvertently ignoring the '-t' filesystem type option.
  • Fixed: When a mount attempt failed, it was possible to end up with a rogue '/' entry added to the root directory, which could render the whole directory tree useless until reboot.
  • Fixed: Depending on screen contents, the icon layout in the kernel window shell could allow the text of the bottom-most icon to wrap off the screen.
  • Fixed: The console window's scroll bar was not being added to windows when the rest of the text area was added; thus the scroll bar did not appear.
  • Fixed: The 'wallpaper' function failed to set the wallpaper if the file name supplied in the file dialog was an absolute path.


Overview: This is a maintenance release, with some additional capabilities including installation support for all FAT filesystems, primitive PCI driver support, parallel I/O for disk copy operations, and better multitasking and interrupt handling performance.  In addition, GUI window layout and resizing has been reimplemented and generally fixed.

  • The system can now install to and boot from any kind of FAT filesystem (FAT12, FAT16, and FAT32/VFAT).
  • Updated the IDE disk controller locking, so that each now have their own locks; thus I/O can be done in parallel between disks on different controllers.
  • Back-ported large numbers small changes and improvements from the 0.6 development branch, including improvements to the operating system's disk layer.
  • The bootable floppy image for the ISO distribution now contains only the OS loader and the kernel, because only these are used. This shrinks the (zipped) ISO image size.
  • Fixed window relayout when windows are sized.
  • Added a basic PCI bus driver, the initial implementation of which was provided by Jonas Zaddach. Only logs a bus device scan, for the moment.
  • Fixed: Copying a big file such as an .iso image could fail because the copy code tried to allocate enough memory for the whole file. Now it allocates as much as possible and does multiple reads/writes
  • Fixed: Typing and using the mouse at the same time was causing funny things to go on. The interrupt handlers for the two devices needed to be better synchronized.
  • Fixed: Interrupts are now disabled during the pause before reboot, so that for example the operating system is not still processing I/O interrupts and such.
  • Fixed: In the install program, installing on a freshly-inserted floppy. could produce the error message "can't install a boot sector for filesystem type 'unknown'".
  • Fixed: When installing from a 'basic' install, there was a spurious error message resulting from attempting to look for the 'full' install file.
  • Fixed: When dragging an icon, one pixel-width of the icon title wasn't being erased properly.


Overview: This is a maintenance release, with numerous small improvements and bug fixes and some additional features, such as improved disk-to-disk copies, filesystem display, and partition table reordering.  A number of unnecessary files and programs have been removed.

  • Implemented threaded, double-buffered disk IO for the 'copy disk' operation.
  • The slice list now indicates the disk name and file system type (if available), and it is now possible to change the partition table ordering - i.e., changing drive names/letters.
  • Re-engineered the file handling code
  • The format operation causes a re-scan of the partitions, so that the new filesystem type is shown in the menu
  • The Program Manager now shows overall memory usage totals.
  • The shutdown program now attempts to eject the CD-ROM a second time if required, since it seems that some drives will fail on the first attempt but succeed on the second.
  • The FAT boot sectors no longer rely on the disk geometry they get from the DOS BPB block. They get it from the BIOS instead.
  • Removed the 'move' command (there's already a 'mv' command)
  • The 'disks' command now reports the filesystem type, if known, and not just the partition label.
  • Fixed: Showing 1MB total size for all disks
  • Fixed: The 'copy disk' failure was leaving the dialog box on the screen.
  • Fixed: Formatting operation could hang when doing a large FAT32 filesystem.
  • Fixed: In the 'create partition' function, if you supplied bad start/end values, the logical/primary choice would be disabled when the dialog box came back.
  • Fixed: In the 'create partition' function, specifying a megabyte size value overflowed at 4096m.
  • Fixed: When copying a file, if the destination was a directory (rather than a fully-specified file name), it would fail and there was a spurious error message
  • Fixed: when the text mode menu scrolled the screen, it looked funny.
  • Fixed: 'ls' an unknown file, hang!
  • Fixed: The 'rmdir' functionality was broken, because the '.' and '..' entries were not being removed correctly.
  • Fixed: The 'umount' command failed when a following / was after the mount point name.


Overview: This is primarily a maintenance/bugfix release for the base operating system. New features include the ability to fix small partition table inconsistencies and the ability to take screenshots. It is now easier to toggle between text and graphics modes.

  • Enhanced the bootstrap code so that it is possible to boot on some trickier hardware platforms, such as Toshiba laptops.
  • Now offers to fix errors turned up by the partition table check.
  • When the shutdown program is attempting to eject the disk, it now shows a banner dialog since sometimes it takes a couple of seconds.
  • Fixed: The Program Manager wasn't really putting threads under their correct process parents; it merely put them in order as received from the kernel.
  • Fixed: Broken CD-ROM floppy disk emulations no longer trick the loader into detecting nonexistent floppies.
  • Fixed: On some hardware, the kernel's hardware detection could be tricked into detecting nonexistent fixed disks with NULL geometry.
  • Fixed: The 'megabytes' value being printed for hard disks by the loader was severely wrong.
Copyright © 1999-2013 J. Andrew McLaughlin | Visopsys and are trademarks of J. Andrew McLaughlin.    Contact