Oberon/A2

From Wikibooks, open books for an open world
< Oberon
Jump to navigation Jump to search

Installation[edit]

A2 may be run as an emulated OS on various platforms after checking it out from the subversion repository at ETHZ[1]. As of August 2018 it contains completely working executables in subdirectories for (at least) Windows (32 and 64bit versions) and Linux (Intel 32 and 64 bit versions). There is also an ARM subdirectory, as yet receiving minimal attention and feedback from users.

Clone the repository into an existing directory a2:

svn checkout \
        --username eth.a2guest \
        --password a2guest \
    https://svn.inf.ethz.ch/svn/lecturers/a2/trunk a2

Then start A2, e.g.:

a2/Linux64/a2.sh

If you want to update your copy later you may use

svn update \
        --username eth.a2guest \
        --password a2guest 

and if you would like to see what has changed (including every changed file) since this subversion repository was created, you can do a

svn -v log

Older instructions are in http://www.ocp.inf.ethz.ch/wiki/Documentation/Installation (beware: these instructions are partially obsolete).

The shell script used to install UnixAos assumes existence of a sys group in the host. For systems lacking this group, the script is easily adapted. By replacing

chgrp -R sys ${aosdir}

with

chgrp -R bin ${aosdir}

the bin group is substituted.

Some authorities recommend the ext2 filesystem for a removable flash store.

User and Machine Specific Configuration of UnixAos[edit]

UnixAos is configured by Configuration.XML. The Oberon subsystem is configured by Oberon.Text. Refer to http://www.ethoberon.ethz.ch/betadocu.html for explanations of Oberon.Text.

The aos start script installed by install.UnixAos, by default to /usr/bin/aos, adjusts the operating system environment before starting aos.{solaris,linux,darwin}. If your working directory is on a hard disk drive aos can be started with two commands. Replace <myWorkingDirectory> with a specific destination.

cd <myWorkingDirectory>
aos

If the working directory is on a removable store, the myaos script is beneficial. It allows the storage device to be used in multiple machines with differing configurations and applies e2fsck before mounting the filesystem. A reasonable location for the myaos script is the home directory of the user. For each host, create in the working directory, files Configuration.<Host>.XML. To use the Oberon subsystem, create Oberon.<Host>.Text also. This can be done by copying the installation defaults and editing the copies. For example, a host named blunder requires Configuration.blunder.XML and Oberon.blunder.Text. The XML file contains ASCII text and can be edited with leafpad or gedit or with PET in A2. The installed Oberon.Text contains some binary data and should be edited with Edit or ET in Oberon.[2] myaos copies Configuration.blunder.XML to Configuration.XML and Oberon.blunder.Text to Oberon.Text before starting UnixAos.

The Oberon Subsystem in A2[edit]

The Oberon subsystem in UnixAos on an XO-1.5.

Opening the Oberon Sub-system[edit]

An Oberon subsystem can be opened with a command in the Autostart section of Configuration.XML as in this example.

<Section name="Autostart"> 
	... 
	<Setting name="Start an Oberon" value="Oberon.Start Oberon 1100x704 0 74  ~"/> 
	... 
</Section>

The dimensions, 1100x704, can be adjusted for satisfactory proportioning of text in a viewer. If the Oberon window is stretched, by grabbing the lower right corner with the mouse, the proportionality of text to viewer is preserved.

Usage Tips, Keyboard and Mouse[edit]

Mouse usage is unusual but efficient. Definitely worth the small effort to learn. A mouse with three buttons or two buttons and a wheel is essential. If a mouse button is pressed unintentionally, press all mouse buttons before releasing any. All mouse buttons together have no effect. The <Esc> key is used to interrupt a task. For example it can interrupt a long running FTP.GetFiles in the Oberon subsystem. <F1> sets the * marker. <F2> clears all marks. Additional details are in the keyboard section of the tutorial.

Receiving and Sending Email[edit]

The Mail.Panel in the Oberon subsystem can receive mail from a smarthost with TLS provided by stunnel. Install stunnel on the *nix host and configure as in this example.

# localhost:/etc/stunnel/stunnel.conf
# Example SSL client mode services 
[pop3] 
client = yes 
accept = localhost:110 
connect = smart.host.com:995

In Oberon.Text, or Oberon.<Host>.Text if using myaos, set the POP server and SMTP servers to localhost. Mail is sent via the local Exim daemon which supports TLS.

NetSystem = { 
     SMTP = "localhost"  {* outgoing mail server *}
     ... 
     POP = "localhost"  {* incoming mail server *} 
     ... 
     POPMode = "POP3"  {* POP3 or APOP *} 
     EMail = "me@my.domain.name"  {* your return address *}
     ... 
}

Set the POP authentication using NetSystem.SetUser. "@" can not appear in the client ID. This will fail.

NetSystem.SetUser pop:me@my.email.domain:password@localhost ~

If the client ID contains @, percent-encode it as %40 in the NetSystem command.

NetSystem.SetUser pop:me%40my.email.domain:password@localhost ~

For the percent-encoding to work, add Oberon.Percent.Mod and modify or replace Unix.Oberon.NetSystem.Mod to use the encoding. Then compile with a MM click on this command in an A2 window.

Compiler.Compile Oberon.Percent.Mod Unix.Oberon.NetSystem.Mod ~

Compilation won't work in the Oberon subsystem and Percent is compiled first because it is imported.

Subsystem Configuration Text[edit]

Release.Oberon.Text, the configuration of the Oberon subsystem as released.
Release.Oberon.Text, the configuration of the Oberon subsystem as released in LinuxA2 Generic, Jan 31 2018.
Oberon.Text, the configuration of the Oberon subsystem, slightly customized to a user.
Oberon.Text, the configuration of the Oberon subsystem, slightly customized to a user.

Sources in A2[edit]

Oberon.Desktops.Mod
Oberon.Documents.Mod
Oberon.HTML.Mod
Oberon.HTMLDocs.Mod
Oberon.Input.Mod
Oberon.ISO9660Files.Mod
Oberon.ISO9660Volumes.Mod
Oberon.Mail.Mod
Oberon.MediaWiki.Mod
Oberon.Objects.Mod
Oberon.OutStub.Mod
Oberon.Percent.Mod
Oberon.Sort.Mod
Oberon.Strings.Mod
Oberon.Texts.Mod
Unix.Oberon.NetSystem.Mod

Tool Texts[edit]

Oberon.HTML.Tool
Oberon.HTML.Tool

Footnotes[edit]

  1. The original instructions for installing UnixAos on a *nix system are in http://www.informatik.uni-bremen.de/~fld/UnixAos/Readme.txt.
  2. Plain text will also work. After storing Oberon.Text with ET.StoreChar, it can be edited with Leafpad or Gedit in Linux. This will resolve the difficulty of the Oberon.<Host>.Text name exceeding the 32 character limit of the Oberon system.