Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 23 Jan 1997 13:44:15 -0700 (MST)
From:      Nate Williams <nate@trout.mt.sri.com>
To:        hackers@FreeBSD.org
Subject:   New Bootloader
Message-ID:  <199701232044.NAA05815@trout.mt.sri.com>

next in thread | raw e-mail | index | archive | help
Path: helena.MT.net!news.sprintlink.net!news-stk-11.sprintlink.net!www.nntp.primenet.com!nntp.primenet.com!cs.utexas.edu!uwm.edu!newsfeeds.sol.net!newspump.sol.net!howland.erols.net!agate!news.ucsc.edu!osr
From: shaggy@csh.rit.edu (Frank Barrus)
Newsgroups: comp.os.research
Subject: ANNOUNCE: SOLO 0.97 OS Boot Loader
Date: 23 Jan 1997 19:22:08 GMT
Organization: Computer Science House @ Rochester Institute of Technology
Lines: 189
Approved: comp-os-research@ftp.cse.ucsc.edu
Message-ID: <5c8dp0$2pe@darkstar.ucsc.edu>
NNTP-Posting-Host: ftp.cse.ucsc.edu
Originator: osr@cse.ucsc.edu


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?


Frank "Shaggy" Barrus: shaggy@csh.rit.edu; http://www.csh.rit.edu/~shaggy
-- 
Frank "Shaggy" Barrus: shaggy@csh.rit.edu; http://www.csh.rit.edu/~shaggy





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701232044.NAA05815>