LINUX-Oberon (TM) V4 Release 0.9 (Linux 1.X version) ==================================================== Copyright 1990-1994 ETH Zurich Linux-Oberon is an implementation of Oberon for Linux based machines. It covers both the programming language Oberon and the Oberon system closely resembling the original implementation by N. Wirth and J. Gutknecht. Linux-Oberon implements the Oberon-2 language extensions. DOCUMENTATION ------------- Linux-Oberon contains some basic online documentation to enable first-time users to get started with Oberon. However, for serious work we recommend the following books published by Addison-Wesley. Note that "Project Oberon" contains the full source code of the Oberon system and compiler. The source code is also available via ftp from neptune.inf.ethz.ch:~ftp/Oberon/Sources/ProjectOberon.tar.Z. N. Wirth and M. Reiser: Programming in Oberon. Steps beyond Pascal and Modula-2. Addison Wesley, 1992, ISBN 0-201-56543-9. Tutorial for the Oberon programming language and concise language reference. M. Reiser: The Oberon System. User Guide and Programmer's Manual. Addison Wesley, 1991, ISBN 0-201-54422-9. User manual for the programming environment and reference for the standard module library. N. Wirth and J. Gutknecht: Project Oberon. The Design of an Operating System and Compiler. Addison Wesley, 1992, ISBN 0-201-54428-8. Program listings with explanations for the whole Oberon system including the compiler for NS32000. REQUIREMENTS ------------ Cpu: Intel 386 Operating system: Linux 1.x Mouse: three buttons Terminal server: X11 INSTALLATION ------------ To install Linux-Oberon execute the following steps. The directory containing the Oberon installation is refered to as "Oberon" throughout this document. # make an Oberon directory (preferably /usr/local/Oberon) mkdir Oberon # go into this directory cd Oberon # copy the compressed archive oberon.tgz into this directory, for # example with mcopy when copying it from a DOS disk mcopy a:oberon.tgz . # uncompress archive and extract all files tar zxvf oberon.tgz # probably delete the archive file rm oberon.tgz # change the owner of the Oberon files chown root.bin * # leave the Oberon directory cd ~ SYNOPSIS oberon [-h heapSize] [-f defaultFont] [-x Mod Proc] [-g geometry] [-c] DESCRIPTION oberon starts the Linux-Oberon process which may be terminated by executing the Oberon command System.Quit or by selecting the Quit menu Item in the Window menu. The oberon command is usually located in /usr/local/Oberon. Special characters: key meaning ---------------------------------- F1 mark viewer F2 alias to Escape F3 Break character F4 init colors Ctrl-L redraw all viewers Keyboard interrupts may be generated by sending the oberon process a SIGINT signal (e.g. kill -2 pid). OPTIONS -h heapSize set heap size to specified number of bytes. If not specified, 4 MB are used for the Oberon heap. -f defaultFont set default font to specified font name. If not specified, Syntax10.Scn.Fnt is taken as default font. -x Mod Proc execute command Mod.Proc. If not specified, Oberon.Loop is executed. -g geometry specify the size of the Oberon window. Note that the geometry option is taken as a hint, not as a command, by the window manager. -c request 256 colors from the window manager. If not specified, Oberon requests 16 colors only. ENVIRONMENT OBERON A colon-separated list of directories in which to search for files. If OBERON is not defined, .:/usr/local/Oberon is taken as default. Note that shell specific characters like "~" are not supported by Oberon. The environment variable OBERON may be set e.g. under the C-shell by % setenv OBERON .:Mylib:Oberon. LD_LIBRARY_PATH A colon-separated list of directories in which to search for shared object libraries. Oberon links libc and libX11. IMPLEMENTATION LIMITATIONS The procedures Kernel.dlopen and Kernel.dlsym are not yet working as they should. Kernel.dlsym should return the address of an object in a shared library which has been opened with Kernel.dlopen. At the moment this works only for objects which are themselves used by Linux-Oberon. If you try to get the address of an object and Kernel.dlsym can't find it, Linux-Oberon will exit with an error. If someone knows how to interface to the dynamic shared library loader of Linux, we would be happy to get this informations (we also tryed the dld package, but we were not successful). We propose to discuss Oberon related questions in comp.lang.oberon on usenet. As Linux-Oberon is not an official ETH-release (it has been done by two ETH students just for fun - and getting rich and famous too), any problems or comments should be reported to Markus Daetwyler Marc Sperisen Toessstrasse 1 Weiherstrasse 34 8427 Rorbas 8307 Effretikon Switzerland Switzerland mdaetwyl@iiic.ethz.ch msperise@iiic.ethz.ch We'd like to especially thank M. Hausner and J. Templ for their help and all the other people who supported us while doing this implementation. ------ M. Daetwyler, M. Sperisen 14.7.94 (original readme from J. Templ)