

WHAT'S WRONG WITH VISOPSYS?
What follows is a description of some issues that I perceive as problems with the
current version of Visopsys, explanations of why they're problems, and basic plans for
addressing them.
VISOPSYS PROVIDES NO I/O PROTECTION
Currently there is no I/O port protection provided by the system. This makes
it possible for low-privilege applications to read or write directly to/from the ports
used to control the hardware devices. This is primarily a security concern, as there
is little chance of an application "accidentally" performing inappropriate
hardware I/O. It makes it theoretically possible for a malicious application to
subvert security features such as file permissions on disks.
This issue is scheduled to be fixed in the first maintenance release of Visopsys
(version 0.1.1?).
VISOPSYS IS CURRENTLY LIMITED TO SINGLE-USER
OPERATION
Although Visopsys is able to multi-task very well (i.e. a sound foundation for
multiple users accessing the system at once), there is still no practical implementation
of multi-user support. Multi-user capabilities have been planned from the
beginning, and all of the existing code is written with this in mind; however without
networking support there is no real way to use Visopsys other than from the local console.
Additionally, although users are asked to provide a login name, in its current
form Visopsys is not able to perform user authentication with passwords.
User authentication may be added for the initial public release (version 0.1), but
will more like appear in version 0.2. Networking support will be added for version
0.2 (possibly 0.3). Multi-user capability will appear in conjunction with
networking.
VISOPSYS DOESN'T PRESERVE THE STATE OF THE FLOATING
POINT MATH UNIT
In the course of its multitasking duties, Visopsys saves the states of processes
when switching between them (for example at the end of a time slice, or after a yield
request). However, this state save is incomplete in one respect: the FPU (Floating
Point Unit). If two tasks are performing floating point math operations
concurrently, it is possible or even likely that one will interfere with the other.
This is planned to be rectified in the first maintenance release, version 0.1.1.
|