[Oberon] Building a minimal Oberon

Srinivas Nayak sinu.nayak2001 at gmail.com
Sat Apr 16 20:25:15 CEST 2016


Dear All,

I was trying to build a minimal Oberon.
Idea was, minimal Oberon will work only with
- IDE Disk
- VGA display
- serial US keyboard
- serial mouse
- Aos file system

Here is how I did it.

Prepared the build system on Vbox.
- Installed Native Oberon Alpha using Oberon0.Dsk.
- Installed Source1.zip, Build.zip and SourceB.zip on top of it.

Followed the below commands:

This compiles the necessary modules.

Compiler.Compile \s.Obj
Kernel.Mod
Disks.Mod
PCI.Mod
ATADisks.Mod
OFS.Mod
Files.Mod
Modules.Mod
OFSDiskVolumes.Mod
OFSCacheVolumes.Mod
OFSAosFiles.Mod
OFSBoot.Mod

Objects.Mod
VGA.Display.Mod
V24.Mod
Input.Mod
Fonts.Mod
Viewers.Mod
Reals.Mod
Texts.Mod
Oberon.Mod
MenuViewers.Mod
TextFrames.Mod
System.Mod

Bitmaps.Mod
Out.Mod
Pictures.Mod
Centronics.Mod
Printer.Mod
Edit.Mod ~

The last 6 modules are just for Edit application to work.

This creates the Native.Bin which is the kernel image needed for booting.

BootLinker.Link Native.Bin \refs \integrate 1000H Kernel Disks PCI ATADisks
OFS Files Modules OFSDiskVolumes OFSCacheVolumes
OFSAosFiles  OFSBoot ~

Created a .vdi file using Vbox. On this new virtual disk, minimal Oberon will be installed.
Attached this .vdi file to a Linux guest on Vbox.
Used "cfdisk -z /mnt/sdb" to create a bootable partition of type 6.
Cfdisk writes MBR code and creates partition table implicitly.
In Gparted, one has to create partition table explicitly.

Once the new virtual disk gets prepared, attached it to Native Oberon guest.
The following commands prepare it further.

Partitions.Show~
Partitions.ChangeType  IDE1#01   6   76 ~
Partitions.Unsafe
Partitions.Format ^   (select IDE1#01 partition)
FileSystem.Mount DST AosFS ^   (select IDE1#01 partition)
System.Directory DST:*.* ~

Format implicitly writes OBL.Bin (found on build system) to PBR of the partition.
Also implicitly writes Native.Bin to reserved area for boot image.

Rather than simple copying, zipped and unzipped the rest necessary modules
to the new virtual disk.

System.DeleteFiles System.zip ~

ZipTool.Add \9 System.zip
Objects.Obj
VGA.Display.Obj
V24.Obj
Input.Obj
Fonts.Obj
Viewers.Obj
Reals.Obj
Texts.Obj
Oberon.Obj
MenuViewers.Obj
TextFrames.Obj
System.Obj

Bitmaps.Obj
Out.Obj
Pictures.Obj
Centronics.Obj
Printer.Obj
Edit.Obj

Default.Pal
Oberon10.Scn.Fnt
Oberon10i.Scn.Fnt
Oberon10b.Scn.Fnt
Oberon.Text
System.Tool ~

ZipTool.ExtractAll \o \p  DST:  System.zip ~

Default.Pal is needed for a colorful Oberon.

Now boot parameter needs to be written to new virtual disk.
There is a bug somewhere in NO.
I had to write (to new virtual disk) boot parameter for VESA first and then for VGA.
Otherwise it doesn't boot.

Config.Mode VESA 2.0: 800*600*8
Config.BootPartition menu ~
Config.Mode VGA 16-color:640*480*4
Config.BootPartition menu ~

Config.BootPartition implicitly looks for a mount point DST, which is here the new virtual disk.

Unmounted the new virtual disk. Shutdown Native Oberon guest, the build system.

FileSystem.Unmount DST

System.Quit

Now the new .vdi file can be used as a bootable disk containing minimal Oberon.
This booted up a minimal Oberon on Vbox.


Hope this helps others who need a minimal Oberon for OS study.
Kindly let me know if we can still minimize it.


With thanks and best regards,

Yours sincerely,
Srinivas Nayak

Home: http://www.mathmeth.com/sn/
Blog: http://srinivas-nayak.blogspot.in/


More information about the Oberon mailing list