These files are released under the GNU Public License, Version 2.
All the images require a Pent Pro or better with at least 32 Meg of memory.
*NEW* as of Mar 11, 2002: I have it running on a stRAaIGhT Pentium. At least one that CPUID's as type 052C and features mask 01BF. All I test for in the features mask is for 0019. I used to require 8019, but now I emulate the CMOV's if not present.
Click here for Bochs infoHere are some images for downloading that contain a bootable OZONE system:
I also put together a simple floppy image. It uses the memory from 24M..32M for the system ramdisk. That leaves about 16 Meg left for applications.
Files (download either one):
Use:
ide_pm represents the master drive on the primary idecontroller. oz_dfs is the name of the template device for the filesystem driver. Thus ide_pm by itself references the raw hard drive, whereas ide_pm.oz_dfs references the filesystem of the hard drive.
If you want to put it in a partition on the hard drive, use fdisk under Linux to set the partition type to 0x69. Then when OZONE boots, use stuff like ide_pm.3, this refers to partition 3 (numbered 1 thru 4) on the primary master ide drive.So ide_pm.3.oz_dfs would refer to the filesystem on partition 3 of the primary master ide drive. You would have to have something like lilo set up to boot from partition 3.
run oz_util_writeboot.elf | -set load_device ide_pm.3 -set load_directory /ozone/binaries/ -set load_script ../startup/boothard.ldr -set startup_input ../startup/boothard.cli -set memory_megabytes 0 ide_pm.3.oz_dfs:/ozone/binaries/oz_loader_486.bb |
---|
The above works with a real system using a floppy and IDE hard drive. The Bochs I use has some patches I made and I sent in, and they adopted some of them. The only one they said they wouldn't do was to have the floppy drive accept a 'disable perpendicular' command as older floppy controllers choke on this command, so they wanted to trap it too. So I just removed it from my OS as it wasn't really necessary.
It still doesn't work with V1.3, though, as the Bochs floppy 'configure' command incorrectly expects 3 bytes for the command (total), instead of 4, so it prematurely indicates that it has received all command bytes before receiving the 4th. This is one I know they said they have fixed, but I haven't tested it with the most recent CVS stuff.
As of Bochs V2.0.2, stuff works as is. But if you try to use SMP, Bochs puques because it does not handle the local apic task priority register. There were also some small stuff that was messed up. So I modified it and now it works.
With Bochs V2.0.2, you will get a panic that says something like 'recal issued to non-hard disk' when OZONE probes for a CDROM. Just type in 'alwayscont' and Bochs will continue merrily on its way. I do a 'recalibrate' to probe for ATA drives and Bochs doesn't like it. I had to do the recal, it seemed at the time anyway, for an old hard drive I was using for testing.
Here are the repaired Bochs 2.0.2 source files:
If you are using Linux, just rename the .cpp files to .cc. They are otherwise identical.I put together a patched bochs zip file with everything self-contained. I tested it with Windows XP and 2000. I don't have an WindoesNT system handy. The EDT keypad keys are scrambled using Bochs, though. Also, a little patience is required while the loader is gunzipping the files from the floppy onto the ramdisk.
If you want to enable password prompt for logging in, do this:
create logical name -kernel OZ_SYSTEM_TABLE%OZ_LOGON_IMAGE {load_dir}oz_cli.elfin boothard.cli to
create logical name -kernel OZ_SYSTEM_TABLE%OZ_PASSWORD_FILE {load_dir}../startup/password.dat create logical name -kernel OZ_SYSTEM_TABLE%OZ_LOGON_IMAGE {load_dir}oz_util_logon.elf create logical name OZ_SYSTEM_TABLE%OZ_UTIL_LOGON_MSG "OZONE experimental system" "Authorized access only"
|root|pass|*|*|*|1000/5000|oz_cli.elf|OZ_LOAD_FS:/... without any spaces. The password in this example is pass. There really isn't anything special about the name root. The thing that makes this entry magic are the *s in there that give it unlimited access to everything. The 1000 says to run things by default as priority 1000. The 5000 means this user can start things up to priority 5000.
If you have a Dec Tulip card with a 21041 or 21140 in it, you can start the ip stack. It also works with a Realtek 8139. The tulip driver only supports twisted-pair 10MHz mode whereas the Realtek 8139 driver will autosense for either 10MHz or 100MHz, and half- or full-duplex (ie, the chip pretty much did it without any effort ;). You need something like this in the startup file (boothard.cli):
create logical name -kernel OZ_SYSTEM_TABLE%OZ_IP_HOSTNAME <its host name like ozonx.nii.net> # create logical table -kernel OZ_SYSTEM_DIRECTORY%OZ_IP_SERVICES create logical name -kernel OZ_IP_SERVICES%ftp tcp:21 create logical name -kernel OZ_IP_SERVICES%telnet tcp:23 create logical name -kernel OZ_IP_SERVICES%domain udp:53 tcp:53 # # Define filters (optional) # ip filter add input 0 accept srcipaddr <a net addr/mask like 6.8.9.144/28> # accept anything coming in from home ip filter add input 1 accept srcipaddr <a net addr/mask like 209.113.172.0/24> # accept anything coming in from nii ip filter add input 2 deny tcpflagsyn tcpflagack not # deny connection initiations from anywhere else ip filter add input 3 accept proto 6 # accept other tcp packets from anywhere ip filter add input 4 deny # deny everything else # # Start hardware # ip hw add etherloop ip hw ipam add etherloop 127.0.0.1 255.0.0.0 ip hw add <its devname like dectulip_0_10 or rtl8139_0_9> ip hw ipam add <its devname like dectulip_0_10 or rtl8139_0_9> <its ip address like 6.8.9.150> <its_net_address like 6.8.9.144> <its netmask like 255.255.255.240> ip route add 0.0.0.0 0.0.0.0 <the router ip address> ip dns server add <a dns ip addr> 53 ip dns server add <a dns ip addr> 53 # # Start daemons # run -orphan -nowait -thread OZ_SYSTEM_TABLE%ftpd_thread oz_util_ftpd.elf 21 -restrictports run -orphan -nowait -thread OZ_SYSTEM_TABLE%telnetd_thread oz_util_telnetd.elf 23Sorry I only have an FTP daemon, no client. There is both a telnet client and daemon.