Announcing-- the new release of: SOLO 0.97 A standalone shell and boot loader for protected mode 32-bit i386/486/Pentium microkernels, full operating systems, and standalone programs. ----------------------------------------------------------------------------- Available now in full source-code from: http://www.csh.rit.edu/~shaggy/software.html ftp://ftp.csh.rit.edu/pub/csh/shaggy (Floppy disk images are also available for a demo) ----------------------------------------------------------------------------- SOLO is free software, for non-profit use. SOLO COMES WITH NO WARRANTIES, EXPRESSED OR IMPLIED. New features, since version 0.96: SOLO shell features: o Full environment variable support, with the environment passed to the loaded kernels o Bourne-shell style quoting and escape rules for shell commands, along with '$' environment variable substitution o Can display dates and times on files o Can list all available boot devices/partitions and files o Flag commands (paging, msg, and diskwrite) have been replaced with environment variables (PAGING, MSG, and DISKWRITE) o Printing executable header information can be toggled with 'DEBUG' variable o 'PS1' variable can be used to set the prompt o Breakpoints (up to 4) can be set and displayed o Virtual memory support [ virtual, as well as physical, locations can be examined, copied, etc, to aid in debugging kernels ] o Better trapping for CPU resets, CTRL-ALT-DEL, etc. o Can list information about all open file descriptors o Default number base can be set (with BASE environment variable) o Can convert a number to binary, octal, decimal, and hexadecimal, as a convenience for debugging BootParam Interface: o The environment is now passed to the loaded kernel o Segment registers, as well as the GDT, are now saved and restored, so that more complex crashes can be trapped and debugged LibSOLO: o solo_getenv() added o solo_WriteMsg() added [for writing to the circular message buffer] o functions provided for mapping BootParam structure in and out of low memory [standard library functions automatically map it in when needed] o Split into separate headers and separate source files for each function, so there's no overhead for functions that aren't used Configuration: o Faster configuration process (over twice as fast in many cases) [ configuration of files (including making dependencies) is only performed when a file is first compiled ] o Alternate configuration target types can be set, and selected from any Make file or source file Misc: o screen is restored when changing video modes, or running 'vtest' to scan for all available modes o 'vidmode', 'vidhgt', 'vidwid', 'vidcrtc', and 'vidbase' variables are set to reflect the current video parameters, and to make this information available to kernels o 'lvidmode' environment variable added for setting default Linux video mode (for 'lboot' command) [ definitions for video modes for new Linux kernels are in 'solo.cmd' now ] o Includes two new standalone 32-bit sample programs: shuffle - uses the new video environment variables to write directly to the video display and shuffle the screen lsboot - lists all available boot devices and files [ an example of getting directory and device information ] o SOLO is only 14K in size (which means it grew by nearly 2K, but the usefulness of the new features was enough to justify the increase in size) o Various bug-fixes, code cleanups, etc... ----------------------------------------------------------------------------- Brief Feature Overview: (not including new features listed above) o Great testbed for writing new operating systems on the PC platform, or for porting existing OS's to it o Loads 32-bit protected mode executables (ELF or a.out format) o Allows BIOS calls from 32-bit mode o Provides file access and console I/O from 32-bit mode o Statically mapped file system provides up to 32MB of startup files (depending upon block size and degree of fragmentation) o Built-in shell o Can run simple shell scripts (can provide menus, prompt for passwords, have timeouts, etc) o Can be booted from any partition (primary or extended) o Can be used to boot any partition (primary or extended) (thus, having SOLO on a floppy disk is great for booting from your hard drive if your master boot record ever gets damaged) o Uses only 32K total memory (which can be reclaimed if needed) o Can pass arguments to 32-bit programs o Can load Linux directly o Can boot other operating systems (and can stuff characters in the keyboard buffer before doing so) o Can co-exist with other operating systems on the same partition or floppy disk o Can scan and list all available text and graphics video modes and let you choose your preferred startup mode o Can redirect console I/O over serial port o Built in monitor for examining/changing memory and I/O o Built in "panic", with full register dump, for standalone programs and kernels that have not yet loaded their own trap or interrupt table - can even trap a CPU reset o Protected mode and virtual memory initialization, to allow kernels to actually start executing in the memory region they are expected to run in, without having to map memory themselves or relocate their code o Circular message buffer survives panics to save information that leads to system crashes o Extensible built-in "help" command, with descriptions of all built-in commands and other general information o 32-bit test programs included: solotest, hello, fdisk o Free for non-profit use (contact me for information about other uses) ----------------------------------------------------------------------------- For a more complete feature listing, go to the web site, or FTP site, and get the file 'announce-solo-0.96', which contains more in-depth descriptions of all the original features. ----------------------------------------------------------------------------- SOLO 0.97 is a pre-released portion of the full Shag/OS operating system distribution. However, it is meant to be useful as a standalone part, and will continue to be released as such even when full Shag/OS releases become available. The purpose of this "sneak preview" is to make this functionality and the knowledge of it available now to those who would find it useful, and to gather comments, suggestions (and even bug-reports) from others to aid in finishing the complete SOLO 1.0 release. SOLO 0.97 is *not* a finished a product, although it has most of the functionality most people probably need. As such, however, I can not and will not take any responsibility for any damages caused by this product. The risk is entirely yours. Therefore, back up all important data before running this program. If you are running SOLO off a floppy disk, you are probably safe as long as you avoid using the hard-disk devices, but it is still a wise idea to back up any important data on your machine. (or disconnect the hard-drive, just in case) To date, I know of no reason why this program would cause any damage to your system or your data if used sensibly, but with any new product on an untested system, it is better to be safe than sorry. ----------------------------------------------------------------------------- Some operating system boot loaders take away your independence, by only allowing you to boot their operating system, and making it somewhat complicated to load others. Isn't it time to go SOLO, and have the freedom to boot your system any way you choose?