Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

Oberon/ETH Oberon

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

__TOC__ Wikibooks:Oberon The Oberon System, V1 and V2 Linz Oberon, V4 Links ETH Oberon Sitemap, including FAQ ETH Oberon Tutorial, Fischer and Marais Oberon Channel in Youtube, Andres Ramos ETH Oberon White Paper Contributions, formerly served from ETHZ Installing thumb|320px|The Oberon0 installer for ETH Oberon running on QEMU in Debian Linux. Originally, Oberon was installed on a bare 32 bit i386 or i486 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 installing with the QEMU hypervisor are provided and the instructions can be adapted to other virtual machines. Andres Ramos describes a installation method where a FAT filesystem on a diskette is used to transfer installation files to the target machine. System configuration notes in QEMU page are independent of method of installation. In the original installation notes, configuration is discussed under the heading Customization of the installed Native Oberon system. In the running ETH Oberon, Script.Open System.Text allows access to section "4. Configuring the system". After installation and configuration on a storage medium, the system can run directly on a native X86 PC. 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 case, a network connection uses a TAP or bridge interface connected to the host system. A Calendar and a Clock thumb|An Oberon document named Time with the hook caret allowing insertion. thumb|Time with the calendar and clock. Open an empty Time document with MM on Desktops.OpenDoc Time ~. Set the hook caret by ML in the document. Insert a calendar with MM on Gadgets.Insert Clocks.NewCalendar ~. Insert a clock with MM on Gadgets.Insert Clocks.NewClock ~. MM on [Store]. MM on [Close]. MM on Edit.Open Oberon.Text ~. Alternatively ET.Open Oberon.Text ~. Above the line { System.OpenLog } insert these three lines. { Configuration.Marker set 80% 94% } { Desktops.OpenDoc Time ~ } { Configuration.Marker set 80% 92% } MM on Edit.Store or ET.Store. MM on System.Reboot. Telnet Console Telnet is an insecure protocol but provides a host console in Oberon and in an Oberon sub-system of A2. A host of an Oberon subsystem and a network facing router in a LAN should have a firewall such as Shorewall. A telnet server daemon is required on at least one host. This in Debian Linux. sudo apt install openbsd-inetd inetutils-telnetd Configure with this line in /etc/inetd.conf. telnet stream tcp nowait <user> /usr/sbin/tcpd /usr/sbin/telnetd -E /bin/bash Refer to the telnetd manual. <user> must be replaced with the id of the Oberon user. Note the default to no authentication; equivalent to parameter "-a none". Restart the inet daemon. service openbsd-inetd restart Try telnet from within a console in the host. telnet localhost Then in Oberon. Desktops.OpenDoc telnet://localhost To be automatically located in the home directory, append this line to ~/.bashrc. cd ~ Email thumb|Mail.Panel in Oberon. TLS is essential for secure transmission of email and is now routine practice. Oberon supports POP and POP3 for retrieving e-mail and SMTP for sending it. E-mail can be received from a smarthost via a TLS tunnel and sent via Exim or a TLS tunnel.For ETH Oberon, a host on the LAN can provide Exim and Stunnel. For the Oberon subsystem in A2, Exim and Stunnel can run on localhost. In ETH Oberon, Oberon.Text make these settings. NetSystem = { SMTP = "<host on the LAN>" {* Outgoing local exim4 or TLS tunnel to smarthost. *} POP = "<host on the LAN>" {* TLS tunnel to smarthost for incoming mail. *} ... POPMode = "POP3" {* POP3 or APOP *} EMail = "me@my.domain.name" {* your return address *} ... } Ports 25 for SMTP and 110 for POP are visible in Oberon.Mail.Mod. In A2, Oberon.Text, or Oberon.<host>.Text if using myaos, make these settings. NetSystem = { SMTP = "localhost" {* Outgoing local exim4 or TLS tunnel to smarthost. *} POP = "localhost" {* TLS tunnel to smarthost for incoming mail. *} ... POPMode = "POP3" {* POP3 or APOP *} EMail = "me@my.domain.name" {* your return address *} ... } Ports are visible in Oberon.Mail.Mod. Install stunnel and configure as in this example. The server name and port, exemplified by my.email.server:995, should be adjusted according to smarthost documentation. # localhost:/etc/stunnel/stunnel.conf # Example SSL client mode services [pop3] client = yes accept = localhost:110 connect = my.email.server:995 Hypothetically, systemd should start stunnel. In Debian 11 a bug interferes with automatic startup. This line in /etc/crontab may work. @reboot root /bin/stunnel If all else fails, start stunnel interactively with root authority and submit a bug report against the stunnel package. Set POP authentication using NetSystem.SetUser as in this example. NetSystem.SetUser pop:myEmailID:myEmailPassword@my.email.server ~ The original SetUser command assumed the @ character did not occur in myEmailID or in myEmailPassword. This command, for example, would fail. NetSystem.SetUser pop:me@my.domain.name:r2d2$8Ch@my.email.server ~ The difficulty is resolved by more thorough parsing in the SetUser command. Retrieve the revised NetSystem.Mod in ETH Oberon; Unix.Oberon.NetSystem.Mod in A2. Compile the module. In ETH Oberon. Compiler.Compile NetSystem.Mod ~ In A2 apply the compile button in the editor (menu Files > Files > Unix.Oberon.NetSystem.Mod) or MM on this command. Compiler.Compile Unix.Oberon.NetSystem.Mod ~ Install Exim in the host according to system specific documentation for Debian, Fedora/CentOS and etc.The primary Exim documentation is also available. Exim authenticates to a smarthost according to a password file.In Debian, /etc/exim4/passwd.client associates a password with each (host, user) pair. Multiple host:user:password specifications are acceptable. The file does not determine the destination chosen by exim for sending a message. Refer to the exim4-config_files manual. Details of configuration for a specific mail server can be obscure. For example, the server can fail to specify STARTTLS or TLS on connect. Before attempting to configure Exim, ambiguities are best resolved using Swaks. Replace arguments of Swaks options -au, -ap, -f and -t with appropriate values for user, password and email address. Refer to the excellent manual for details. A userid pattern commonly used by ISPs is me@my.authentication.domain. swaks -tls \ -ao -apt -au me@my.authentication.domain -ap r2d2\$8Ch \ -s my.smarthost.com --port 587 \ -f me@my.email.address -t me@my.email.address The example password has eight characters; \ is not included in the password but prevents misinterpretation of $8 by the host shell. Swaks creates a trivial test message automatically. Arguments of options can be adjusted until transmission succeeds. Confirm transmission by receipt in Oberon as discussed above. News Reader Notes pending. Text 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. Texts.FindPiece and the cache 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 This dataflow example illustrates relationships between Oberon Text, HTML and ASCII text. Oberon Text withnon-text features OberonEdit.StoreAsciicommand⟶ Oberon Text with non-text features omitted       Oberon Text with non-text features omitted OberonMediaWiki.Markupcommand↓   ↑OberonDesktops.OpenDoccommand       ↑Oberonmousecopy MediaWiki markup with colorand syle but hyperlinksand images omitted MediaWikiprocessor⟶ HTML5 text withtext color and style Web  browser  ⟶    browser     text Clipboard orSave operation⟶ ASCIItext 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. Potential Developments A fresh release with bug fixes and improvements, posted on a public server. Improved support of Unicode. Huffman coding in JPEG. Improved HTML support. Support for styling and tables, for example. PNG. SSL based upon existing cryptography modules. Touchscreen support. Module Sources The last release of ETH_Oberon at the ETHZ was 2.3.7. At bootup, release date 2003-01-05ISO 8601 date format. is announced in the System.Log. Sourceforge has the file "green Native Oberon 2.3.7 Alpha/NativeOberon_2.3.7.tar.gz" and bootable installer images in "green Oberon0 boot disk/". Package structure is in Native.Tool. Sources are also available at https://github.com/schierlm/NativeOberon-2.3.6-Extracted in the directory green FullInstall_ASCII. Sources and Tools remain under the ETH Oberon License. Module Sources in System Package The System Package contains approximately 170 modules. Refer to Native.Tool. + Release 2.3.7 Wikibook variantCompare ETHZ and wikibook sources using Diff.Do in Oberon or the MediaWiki facility described on the front page. Notes ATADisks.Mod ATADisks.Mod Support for Compact Flash added. Compiler.Mod Dialer.Mod Dialer.Mod Dialer.Dial modified to support the ringback protocol as provided by mgetty. Refer to the Dialer page. DisplayLinear.Mod Displays.Display.Mod Displays.Mod Empty.Display.Mod FTP.Mod FTP.Mod GD54xx.Display.Mod Input.Mod Input.Mod NetSystem.Mod OGLDisplay.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 S3C805.Display.Mod S3C924.Display.Mod S3Trio.Display.Mod SVGA.Display.Mod Texts.Mod VGA.Display.Mod W32.Display.Mod Module Sources in Gadgets Package + Release 2.3.7 Wikibook variantCompare ETHZ and wikibook sources using Diff.Do in Oberon or the MediaWiki facility described on the front page. Notes Display3.Mod Displays.Colors.Mod Mail.Mod Mail.Mod FTPDocs.Mod HTMLDocs.Mod Module Source in Apps1 Package + Release 2.3.7 Wikibook variantCompare ETHZ and wikibook sources using Diff.Do in Oberon or the MediaWiki facility described on the front page. Notes GfxDisplay.Mod Module Sources in Apps2 Package + Release 2.3.7 Wikibook variantCompare ETHZ and wikibook sources using Diff.Do in Oberon or the MediaWiki facility described on the front page. Notes HTML.Mod HTML.Mod Sort.Mod Module Sources in Documentation Package + Release 2.3.7 Wikibook variantCompare ETHZ and wikibook sources using Diff.Do in Oberon or the MediaWiki facility described on the front page. Notes Examples.Mod Module Sources in Build Package + Release 2.3.7 Wikibook variantCompare ETHZ and wikibook sources using Diff.Do in Oberon or the MediaWiki facility described on the front page. Notes DisplayMach64.Mod DisplayTool.Mod DisplayVGA4.Mod S3TrioC.Display.Mod SVGAH.Display.Mod SVGAL.Display.Mod Trace.Display.Mod Module Source in Lab Package + Release 2.3.7 Wikibook variantCompare ETHZ and wikibook sources using Diff.Do in Oberon or the MediaWiki facility described on the front page. Notes DisplayBackdrop.Mod Source for Additional Module + Release 2.3.7 Wikibook variantCompare ETHZ and wikibook sources using Diff.Do in Oberon or the MediaWiki facility described on the front page. Notes MediaWiki.Mod Translation of Oberon Text to MediaWiki markup. Texts + Release 2.3.7 Wikibook variant Notes Oberon.Text Oberon.Text Edit according to local requirements and preferences. References.Text Tools + Release 2.3.7 Wikibook variant Notes Compiler.Tool     FTP.Tool     Native.Tool     PPP.Tool     Sort.Tool     Tutorials.Tool     Footnotes No escape character is involved in Oberon. Wikibooks:Oberon The Oberon System, V1 and V2 Linz Oberon, V4