Oberon/ETH Oberon

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

Links[edit | edit source]

ETH Oberon Sitemap
ETH Oberon White Paper

Installing ETH Oberon[edit | edit source]

Originally, Oberon was installed on a bare machine using an Oberon0 diskette. The procedure may still interest an enthusiast.

In a contemporary system the Oberon0 installer can run on a virtual machine. The virtual machine is installed once and can be used for any number of installations. With this method, no time is spent recording and booting from a diskette and the unreliability of diskettes and drives is avoided. The installer runs faster on the virtual machine than it does from a diskette. The method has proven successful in installing ETH Oberon to a variety of laptop and desktop machines including a Micron Trek 2, AGP laptop. Detailed instructions for installation with the QEMU hypervisor are provided. The instructions can be adapted to other virtual machines.

After installation and configuration on a storage medium, the system can be used routinely on a native machine. Alternatively, use can continue on the virtual machine. In the native case, a network connection will be over Ethernet or a serial crossover cable. In the virtual machine case, a network connection uses a TAP or bridge interface connected to the host system.

Text in ETH Oberon[edit | edit source]

These tables show the structure of records in memory representing a Text. When Texts.Store() records a Text in a file for a storage medium, the information in the record structure is serialized. In the inverse process, Texts.Load() deserializes the information to the record structure of the Text in memory.

TextDesc is an extension of Objects.ObjDesc. The fields added to make TextDesc are distinguished from the fields inherited from ObjDesc by a differing background color.

The Type Text
Type Fields of
TextDesc
Type of Field Notes
Texts.Text, a pointer to a Texts.TextDesc stamp LONGINT Integer
dlink Objects.Object Pointer
slink Objects.Object Pointer
lib Objects.Library Pointer
ref INTEGER  
handle Objects.Handler Pointer
len LONGINT Length of text.
obs Objects.Library Pointer
trailer Texts.Piece Pointer to Sentinel node in list of pieces.
org LONGINT Offset in [0,len) of first character in last found piece.
pce Texts.Piece Last found piece.
Objects.Library in the table above
Type Fields of LibDesc Type of Field Notes
Objects.Library, a pointer to a LibDesc next Objects.Library Pointer
ind Objects.Index Pointer
f Files.File Pointer
R Files.Rider Pointer
name Objects.Name  
dict Objects.Dictionary Pointer
maxref INTEGER  
GName POINTER  
Texts.Piece
Type Fields of PieceDesc Type of Field Notes
Texts.Piece, a pointer to a Texts.PieceDesc f Files.File Pointer
off LONGINT Integer
len LONGINT  
obj Objects.Object Pointer
lib Objects.Library Pointer
ref INTEGER  
col SHORTINT  
voff SHORTINT  
prev Piece Pointer
next Piece Pointer

Texts.FindPiece and the cache[edit | edit source]

For a given Text, T, and offset pos in [0, T.len), procedure Texts.FindPiece has the task of locating the piece containing pos. At each execution, FindPiece could begin at offset 0 and add lengths of pieces until the piece containing pos is located. A cache based upon T.pce and T.org allows better efficiency. When FindPiece completes a search, the pointer to the found piece is recorded in T.pce; the offset of the first character of that piece is recorded in T.org. The next execution of FindPiece begins at that cached location. With a result from FindPiece often being near the preceeding result, this strategy avoids repeated summation of lengths from the beginning of the first piece.

Text Dataflow in ETH Oberon[edit | edit source]

This dataflow example illustrates relationships between Oberon Text, HTML and ASCII text.

Oberon Text with
non-text features
Oberon
Edit.StoreAscii
command
Oberon Text with non
-text features omitted
      Oberon Text with non
-text features omitted
Oberon
MediaWiki.Markup
command
 
Oberon
Desktops.OpenDoc
command
     
Oberon
mouse
copy
MediaWiki markup with color
and syle but hyperlinks
and images omitted
MediaWiki
processor
HTML5 text with
text color and style
Web
  browser  
   browser   
  text
Clipboard or
Save operation
ASCII
text file

Text color and style, images and hyperlinks are lost by conversion of browser text to ASCII. Consequently the rightmost Oberon Text has the same appearance as plain ASCII text. Text color and style can assist with reading and understanding a source but compilation is not influenced by color and style.

Module Sources in ETH Oberon, PC-Native[edit | edit source]

The last release of ETH_Oberon at the ETHZ was described as Alpha. Sourceforge has the file "Native Oberon 2.3.7 Alpha/NativeOberon_2.3.7.tar.gz" and bootable installer images in "Oberon0 boot disk/". Package structure is in Native.Tool. Sources and Tools remain under the ETH Oberon License.

Module Sources in System Package[edit | edit source]

The System Package in the Alpha release contains 170 modules. Refer to Native.Tool.

ETHZ Alpha Release
2003-01-05[1]
Wikibook variant[2] Notes
ATADisks.Mod ATADisks.Mod Support for Compact Flash added.
Compiler.Mod
Dialer.Mod Dialer.Mod
FTP.Mod FTP.Mod
NetSystem.Mod
Objects.Mod
PPPDebug.Mod
PPPFSM.Mod PPPFSM.Mod
PPPHDLC.Mod PPPHDLC.Mod
PPPIPCP.Mod PPPIPCP.Mod
PPPLCP.Mod PPPLCP.Mod
PPPMain.Mod PPPMain.Mod
PPPPAP.Mod
PPPTest.Mod
PPPTools.Mod PPPTools.Mod
PSPrinter.Mod
Texts.Mod

Module Sources in Gadgets Package[edit | edit source]

ETHZ Alpha Release
2003-01-05[1]
Wikibook variant[2] Notes
Mail.Mod Mail.Mod
FTPDocs.Mod
HTMLDocs.Mod

Module Sources in Apps2 Package[edit | edit source]

ETHZ Alpha Release
2003-01-05[1]
Wikibook variant[2] Notes
HTML.Mod HTML.Mod
Sort.Mod

Module Source for Documentation[edit | edit source]

ETHZ Alpha Release
2003-01-05[1]
Wikibook variant[2] Notes
MediaWiki.Mod Translation of Oberon Text to MediaWiki markup.

Sources of SSL Modules[edit | edit source]

The SSL modules for ETH Oberon were written by Guenter Feldmann.

ETHZ Alpha Release
2003-01-05[1]
Wikibook variant[2] Notes
SSHTransport.Mod

Tools in ETH Oberon, PC-Native[edit | edit source]

ETHZ Alpha Release
2003-01-05[1]
Wikibook variant[2] Notes
Native.Tool    
PPP.Tool    
Sort.Tool    

Footnotes[edit | edit source]

  1. a b c d e f ISO 8601 date format.
  2. a b c d e f Compare ETHZ Alpha and wikibook sources using Diff.Do in Oberon or the MediaWiki facility described on the front page.