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
- 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
- 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
- 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
- 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
- Added 64-bit disk support.
- Added UDF (DVD-ROM) filesystem support.
- Added GPT disk label support to the kernel and to the Disk
- Included a quantity of new icons based on contributions
provided by Leency <email@example.com>, including the folder
icon, and all of the file browser icons for different file
- 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
- 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
- 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
- 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
- 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
"Error:edit:kernelFile.c:kernelFileGetTemp(3304) Filesystem is
- 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
- 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
- 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
- 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
- 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
- Reorganized heap memory management for more efficient
- Updated some partition type descriptions.
- Added a '-R' option to the 'cp' command for recursive
- 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
- 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
- Fixed: When NTFS resizing failed (for
example with the unclean journal message) control didn't return - it just
- 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
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
- 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
- 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
- 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 188.8.131.52) 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
- 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
- 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
- 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
- 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
- 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
- Fixed: When the text was a different color (such as an
error) and the screen scrolled, the cursor could remain the color of the
- Fixed: When booting from a CD there was an error message:
Filesystem is read-only.
- Fixed: Broken CD-ROM emulation was not recognized on some
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
- 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 <firstname.lastname@example.org> and Greg <email@example.com>).
- 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
- 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
- Implemented right-click context menus.
- Added support for 32-bit .bmp bitmap images and .ico icons
- The partition diagram now responds to keyboard cursor
- Did general, large scale GUI re-engineering.
- Dialog windows no longer appear in the window shell's
- 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
- 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
- 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
- Added a basic, simple text editor (currently only works in
- 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
- Removed the hard limit on the maximum number of window
- 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
- 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
- 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
- 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
- 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
- Fixed: Booting failed on Qemu due to a PS/2 mouse driver
- Fixed: The 'bootmenu' program failed to run from a
- 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
- 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
- Added basic 'stub' Linux swap filesystem support (detection
- 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
- Added a kernel filesystem function for getting resizing
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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'
- 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
- 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
- Fixed: The 'copy disk' failure was leaving the
dialog box on the screen.
- Fixed: Formatting operation could hang when doing a large
- 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
- 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
- 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.