This section details the steps required to boot Genera on Ivory based Symbolics
machines, the way to control the NXP1000 cold load stream, and how to access
Genera both from a host on the same Intranet and from a remote host via the
Internet, respectively. In addition, details of Genera utilities are outlined.
The description applies to Ivory based machines (iMACH), i.e NXP1000 and XL
machines. Unlike XL machines which have their own console, i.e monitor, mouse
and keyboard, the NXP1000 needs both a VT100 compatible Serial Terminal to
control the cold load stream and an X Terminal in order to interact with Genera.
Configuration details required to achieve this goal are given below.
COMx - Configure serial port parameters to control the FEP
The serial COM port parameters required to connect to and control the Front-End
Processor (FEP) of a Symbolics NXP1000 are as follows:
9600 Bits per second
Number of Data Bits:
Number of Stop Bits:
Flow control can be left with the hardware of your serial COM port. If your computer
does not have a serial COM port, you can use a USB to RS232 port adapter. e.g a
VScom USB-2COM PL, a small and reliable VScom adapter, which provides two
RS232 serial ports, easy to configure and to use. Thumbnail COM3 Properties
shows the configuration of a COM port in HyperTerminal under Windows using the
aforementioned adapter. Drivers and documentation for this adapter are available
for Windows and for other Operating Systems from the aforementioned product
FEP - Prepare FEP files required to boot Symbolics Genera
Once the COM port has been configured, you can use a serial port communication
load stream on NXP1000 machines and the process of booting Genera, as shown
in thumbnail HyperTerminal - Cold Load Stream Venus.
As you can see, only two commands are required to boot Genera on a Symbolics
machine. This are the commands hello and boot. Hello loads the FEP overlays,
assigns an IP Internet address to the machine's Network Interface and includes
declarations that enable boot to load a World and start Genera.
For use on Ivory based machines, here are available for download examples of the
FEP command file named autoboot.boot, by which you can automate Genera's boot
process. You can create .boot files in Genera using Zmacs.
xterm - Access Genera on a NXP1000 from a host on the Intranet
On the NXP1000, you can access Genera from a host on the same Intranet using an
can use the X Terminal Emulator xterm. Xterm allows Genera PCF fonts to be used
during an X session and use Telnet to start an X screen on your X server's display,
as shown for the host Server in Telnet - X Session Start - Venus to Server via the
Intranet, using the commands,
$ xhost +venus
; add venus to the X server's host list
$ xset fp+ /usr/X11/share/fonts/genera
; adjust font path as appropriate
$ telnet venus
and from withinTelnet, launching the following Genera command to get an X screen
on your X Server's display.
> start x screen (the name of a host [default ...]) serverhostname
The default values used by the X Server for display and screen are :display 0
and :screen 0.
On your display it will appear an X screen similar to that shown by the thumbnail
Venus Dynamic Lisp Listener on Server via the Intranet, thus allowing you to log
into Genera and start using Lisp.
As you can see in thumbnail Venus Peek Network on Server via the Intranet, the X
Server's display 0 is bound as foreign port 6000 (the default display port), and
Telnet port 23, in this X session, is bound as foreign port 49183.
Also note, that the Telnet process on the X Server host doesn't return, waiting for
input, until either the Remote Terminal or the X session are halted, as shown in
via the Intranet, respectively.
For who might be interested, also available for download on this webpage is a set
of Genera configuration files that could be useful when setting up a new Site.
Translation file defining the SYS logical pathname
Translation file defining the LMFS logical pathname
Translation file defining HOME host's logical pathname
Translation file defining the Joshua logical pathname
Translation file defining the Macsyma logical pathname
Translation files define the translations from logical directories (on the logical host)
to physical directories (on a physical host). Except for sys.translations, any other
system translation file can be created and modified manually using Zmacs. Upon a
LMFS is available, also a personal lisp initialisation file similar to the one provided
below, can be created and saved in the user's home directory, to customise Lisp's
LISP User initialisation File
The following Private-Patch-File can be used to cure the "Year 2000 problem" in
Genera. That is, it can be included in an Incremental World, in order to avoid the
FEP asking for the Date and Time, when booting a Genera Distribution World in a
year 2000 onwards. See section Distribution Worlds below.
Private-Patch-File for the Year 2000 problem
The following two files are examples provided only for information. They are created
by special Genera commands and should never be manually modified.
LMFS File System Partition Table
Namespace objects of Site Home
The tape provided below contains the sources and associated ibin files of patches
that cure remaining problems in Genera_8_3, and tools that extend its functionality.
Tape including the sources of home-site and home-tools
Also available for download, sources of the Private-Patch-Files provided below, and
the file w83 that may be used to build a complete world.
Use only, if the time from calendar clock is not available
Private-Patch-File for Symbolics XL1200 machines only
Lisp file containing definitions to build a complete world
Except of sys.translations, fspt.fspt and home-objects.text, but including hello.boot,
boot.boot and autoboot.boot, download and write the aforementioned files on a CD-
ROM, eventually removing the extension .txt from .lisp files if attached to the files by
the downloader, and title it Downloads. It will be useful, should you decide to build a
new world, incremental or complete, as described further below.
NFS - Restore a Genera Distribution CD-ROM via PC and Mac
A CD-ROM drive for NXP1000 and XL machines normally has had to be ordered
separately. Should a CD-ROM drive not be available to your machine, you can
restore a Symbolics Distribution World into Genera, using the CD-ROM drive of
another workstation on the LAN, i.e PC or Mac.
Of course this can be done only, if a LMFS already exists on your machine, and PC
and Mac are defined as hosts in Genera's namespace database, as shown for Pluto
and MacPro in home-objects.text for the site home. If either no LMFS is available or
PC or Mac are undefined, consult the documentation for Adding a LMFS partition or
for using the command Create namespace object host in Site Operations.
A CD-ROM mounted under Windows can be accessed from Genera by installing
Allegro NFS onto your PC. All you need to do to export a CD-ROM filesystem via
NFS, is to specify the path to the CD-ROM drive on the PC and define User access
privileges, as shown in the thumbnail Allegro NFS - Export CDROM.
Under Mac OS X a CD-ROM, e.g a Genera_8_3 Distribution CD-ROM, gets
mounted as a Volume. Exporting the CD-ROM filesystem requires the following
From within OS X System Preferences - Sharing, allow the Mac's CD-ROM drive to
be accessed from other hosts on the LAN, by setting DVD or CD Sharing as shown
in thumbnail OS X NFS - Export CD-ROM.
Configure Mac OS X to allow exporting a CD-ROM filesystem via NFS, as shown in
file /etc/exports, using hostnames of your LAN hosts and User ID, as appropriate.
In Genera's Dynamic Lisp Listener you can then ask for filesystems exported by a
specific host, PC or Mac, using the command,
> show NFS exports (the name of a host [default ...]) hostname
You can then proceed, mounting the CD-ROM filesystem, e.g using Genera's File
System Manager, as shown for PC host Pluto and for the workstation MacPro in the
thumbnails Exported Genera_8_3 CD-ROM Filesystem from PC Pluto and Exported
Genera_8_3 CD-ROM Filesystem from MacPro, respectively.
From Genera 8.1.1 onwards, you can restore Distribution worlds from CD-ROM
using the FEP-Tape activity. As shown in thumbnails Restore Genera Distribution
ROM, do this, typing Read Image File and supplying a CD-ROM pathname to a
world image. Do not use the [Read Image File] menu item, because it will not
prompt you for a world image pathname. If necessary, use "Ctrl-Shift ?", which
provides the possible path completions to identify and restore the world you are
The same way, you can copy also other software from a CD-ROM onto an Ivory's
LMFS, as for example shown below for copying the y2k Private-Patch-File from the
CD-ROM Downloads on MacPro into the directory special on the NXP1000 venus,
using the command.
> copy file (pathname of files [default ...]) MP:/Volumes/Downloads/y2k.lisp
(to [default ...]) v::>special>
IDS - Build an IDS World based on a Genera Distribution World
On a Symbolics machine, e.g on the iMACH venus, you can build an Incremental
Disk Save (IDS) world, including a Distribution World, restored from CD-ROM as
described above, e.g Genera_8_3, and the y2k Private-Patch-File, performing the
sequence of steps given below.
1. Insert the CD-ROM Downloads into the CD/DVD drive of your PC or Mac
2. Onto your iMACH Symbolics workstation create the directory special
3. Copy the file y2k.lisp from CD-ROM into the directory special, as shown
above for the host MacPro. If, however, the CD-ROM has been placed in
the CD/DVD drive of a PC, e.g Pluto, use instead the following command.
> copy file (pathname of files [default ...]) pluto:/CDROM/y2k.lisp
(to [default ...]) venus:>special>
4. Issue the following command in order to compile the Private-Patch-File
> Compile File (file) venus:>special>y2k.lisp
5. Create a new version of boot.boot that points to the Distribution World
6. Logout and issue following command to halt the current Genera session
> Halt Machine (keywords) :query no
7. In the FEP, boot the Distribution World, using the file boot.boot.newest
8. In the cold load stream you will be asked to provide the Date and Time
9. Enter dd/mm/yyyy and hh:mm:ss separated by a blank and press return
10. In DIS-LOCAL-HOST's Dynamic Lisp Listener log in as LISP-MACHINE
11. Put mouse pointer away to avoid highlighting objects by screen scrolling
12. Issue the following command to load the compiled Private-Patch-File
> Load File (file [default ...]) venus:>special>y2k
13. Issue the following command in order to save the current world incrementally
> Save World (Complete or Incr... [...]) Incremental Genera_8_3_y2k.ilod
14. Create a new version of boot.boot that points to world Genera_8_3_y2k.ilod
15. Logout and boot Genera_8_3_y2k.ilod on your workstation, as done before
The Genera_8_3_y2k World will now boot and the Genera Dynamic Lisp Listener
be started without being asked in the cold load stream to enter the Date and Time.
Using the world Genera_8_3_y2k.ilod you can create a complete personalised
world on a higher-capacity, custom-supplied SCSI disk, and replace the small 1GB
disk, delivered by Symbolics on NXP1000 or XL machines. For details, see section
Build a complete World on a customer-supplied SCSI Disk below.
You can also use the Genera activity Restore Distribution to load special programs,
systems, or Genera sources into a current world, as shown in thumbnails Restore
Sources from Mac CD-ROM, respectively. For details, see the Genera document
With the NFS settings for exporting CD-ROM filesystems described above, you can
even place a Genera_8_3 Distribution CD-ROM into a PC's CD/DVD drive, then
use an X Terminal Emulator on a Mac to mount the CD-ROM's filesystem under
Genera's File System Maintenance Program, as shown in thumbnail Exported
Genera_8_3 CD-ROM Filesystem from PC via Mac, and restore a Distribution world
and Genera sources, as shown in thumbnails Restore Genera Distribution World
ROM via Mac, respectively
SCSI - Build a complete World on a customer-supplied SCSI Disk
You can use a higher-capacity customer-supplied SCSI disk to replace the small
1GB disk usually installed on Symbolics NXP1000 and XL machines on delivery.
Be however aware, that because a word on Ivory based Symbolics machines uses
40 bits, i.e for each 32-bit word there are 8 additional tag bits, only specific SCSI
disks with a variable sector size can be low-level formatted for use on NXP1000
and XL machines. as for example a 9.1GB Seagate ST39173N SCSI disk. The
default sector size for formatting such a SCSI disk is 1280 Bytes per sector. That is,
each sector on a SCSI disk for Ivory based machines comprises 256 40-bit words.
To proceed with the installation of a virgin SCSI disk onto an iMACH workstation
this are the steps you might take. However, take into account that the convention for
mapping SCSI addresses to FEP unit numbers is that the FEP unit number, but only
for XL machines, is 7 greater than the SCSI address, with the first SCSI disk of a
machine having the SCSI address 0.
1. Connect the SCSI disk to the NXP1000 or XL machine and power up the disk
2. Boot your machine using the current Genera version available on FEP0 or FEP7
3. Unless explicitly requested, in the following always log in as LISP-MACHINE
4. Type in the command "Show machine configuration", followed by return
5. Retrieve the SCSI address of the new SCSI disk from the system's response,
i.e if only two disks are connected, the new disk should have SCSI address 1
6. Issue the following command to format the SCSI disk 1 at the lowest level
> Format SCSI Disk (SCSI address) 1 :sector size 1280
7. On completion, warm boot the Genera version available on FEP0 or FEP7
8. Issue the following command to create an Initial FEP File System on unit 1
> Create Initial FEP Filesystem (FEP unit number) 1 ; or 8 for FEP8
9. Type in the command "Show machine configuration", followed by return
10. This time, both FEP0 or FEP7 and either FEP1 or FEP8 is referred to by the
The next step is to copy the IDS world Genera_8_3_y2k.ilod created above, see
section Distribution Worlds, from FEP0 to FEP1 or from FEP7 to FEP8, depending
on the machine type, using the "Copy World Command".
Note, however, that the Copy World Command makes a copy of a world load file.
This includes the specified world as well as any IDS worlds on which it was built.
After you issue the Copy World Command, unless ":Query No" was specified,
Genera pops up a menu allowing you to specify the actions you want it to take. The
default values are fine, so just select <end> use these values. That is, in order to
copy the world Genera_8_3_y2k.ilod from FEP0 to FEP1 issue the command
> copy world (from FEP files(s) [default ...]) FEP0:>genera_8_3_y2k.ilod FEP1:>
This will copy to FEP1 or FEP8 also the Distribution world genera_8_3.ilod on
which the IDS world genera_8_3_y2k.ilod was built.
In order to boot a world, the destination FEP needs using the appropriate FEP
overlays. That is, I328 FEP overlays for SCSI disks up to 1GB, and I333 FEP
overlays for disks over 1GB. So, if the required overlays are already available on
FEP0 or FEP7, just copy them over to FEP1 or FEP8, i.e to the destination Disk Unit
1 or 8, using the "Copy Flod Files Command" shown below.
> copy flod files :disk unit 1 :version i333
On iMACH machines, this command copies flod files and FEP kernel from host
SYS:IFEP to the specified destination Disk Unit, it makes sure that FEP kernel and
overlay versions are consistent with one another, and also installs the previous FEP
kernel, if any, as the FEP backup kernel.
If no I333 FEP overlays are available on your machine, contact Symbolics-dks to get
these overlays, put them onto a CD-ROM titled Overlays, and restore them from CD-
ROM Overlays onto FEP1 or FEP8, as described below.
1. Insert the CD-ROM Overlays into the CD/DVD drive of your PC or Mac
2. Run Select activity restore distribution to restore the content of the CD-ROM
Overlays onto your machine,
Note: If you placed the CD-ROM into the Mac's CD/DVD drive, check that
the Volume Overlays is exported on your Mac, as shown in the file
/etc/exports for Volume Genera_8_3.
3. Copy i333 flod files and FEP kernel from host SYS:IFEP over to FEP1 or FEP8,
i.e to the destination Disk Unit 1 or 8, using the "Copy Flod Files Command",
Now, in order to boot the world Genera_8_3_y2k.ilod from the destination FEP, i.e
FEP1 or FEP8, you need either to create from new or to copy the two files hello.boot
and boot.boot from CD-ROM Downloads to the destination FEP using the "Copy file
Command", and to update these files using Zmacs, to point both to FEP1 or FEP8
and to Genera_8_3_y2k.ilod, as appropriate. If you placed the CD-ROM into the
Mac's CD/DVD drive, before copying check that the Volume Downloads is exported
on your Mac, as shown in /etc/exports for Volume Genera_8_3.
You are now ready to boot the world Genera_8_3_y2k.ilod from the destination disk
FEP1 or FEP8, and complete the configuration of your new SCSI disk, as described
1. Shut down the machine and boot Genera_8_3_y2k.ilod from FEP1 or FEP8
2. Unless explicitly requested, in the following always log in as LISP-MACHINE
3. See section Adding a LMFS Partition in Genera handbook Site Operations
4. Press Select F, to select the File System Maintenance Program (FSMP)
5. Create an LMFS New File System of 500000 blocks on FEP1 or FEP8
6. Issue the following commands to create two paging files on FEP1 or FEP8
> Create FEP File (FEP file [default ...]) fep1:>paging-1.page 200000
> Create FEP File (FEP file [default ...]) fep1:>paging-2.page 200000
7. Issue the following command to define a new namespace called site-name
> Define Site (site name) site-name
You will now be asked to specify the name of the local machine that shall be the
primary namespace server, SYS host, host for storing the namespace database
files, and host for bug reports. See document Site Operations for more details.
Note: In the following, HOME is used as site-name and VENUS as host-name
8. Shut down and boot Genera_8_3_y2k.ilod from FEP1 or FEP8, as before
9. Log in and configure the local world as an existing site using the command
> Set Site (site name [default ...]) home
; as specified by Define Site
10. Issue the following command in order to save the current world incrementally
> Save World (Complete or Increm... [...]) Incremental home_8_3_y2k.ilod
11. Using Zmacs, create a boot.boot file that points to world home-8-3-y2k.ilod
12. Shut down and boot the world home-8-3-y2k.ilod from FEP1 or FEP8, as before
13. Create a LMFS directory special to hold files from CD-ROM Downloads
14. Copy the files from CD-ROM Downloads to the appropriate LMFS directory
Note: It's assumed that the CD-ROM is placed in Pluto's PC CD/DVD drive.
If you placed the CD-ROM into the MacPro's CD/DVD drive, in place
of pluto:/CDROM/ use macpro:/Volumes/Downloads/.
Note also that copying the files from the CD-ROM into a LMFS directory is
possible at this time, only because NFS Client is included in Genera_8_3.
In the following for simplicity it is assumed that the iMACH workstation
you are logged in is called venus
> copy file (pathname of files [default ...]) pluto:/CDROM/*.lisp
(to [default ...]) venus:>special>
> copy file (pathname of files [default ...]) pluto:/CDROM/*.reel
(to [default ...]) venus:>special>
> copy file (pathname of files [default ...]) pluto:/CDROM/*.translations
(to [default ...] venus:>sys>site>
15. Invoke the following command to compile one at a time the copied Lisp files,
i.e init-time.lisp, merlin-ii-patch-2.lisp and w83.lisp
> Compile File (file) venus:>special>filename.lisp
16. Restore Genera_8_3 Distribution Systems and Sources from CD-ROM, using
"Select activity restore distribution", as shown in section Distribution Worlds
17. Shut down and reboot the world home_8_3.ilod from FEP1 or FEP8, as before
18. Login and press "Function M 1" to toggle global **More** processing to on. An
argument of 1 turns it on; 0 turns it off.
19. Dependent on the machine type load the following files into the current session
> Load File (file [default ...]) venus:>special>init-time
; if no Time from
calendar clock is available
> Load File (file [default ...]) venus:>special>merlin-ii-patch-2 ; for XL1200
> Load File (file [default ...]) venus:>special>w83
; for all Ivory machines
20. In Genera's Dynamic Lisp Listener call the following function without arguments
21. Move the mouse pointer over the left or right most parenthesis of the PROGN
form that appears on the screen to select it, and click it left to activate the form
22. Put the mouse pointer away to avoid highlighting objects by screen scrolling
23. On completion, issue the following command to save the current world as
> save world (Complete or Incremental [...]) complete Symbolics_8_3.ilod
24. Create a new version of boot.boot that points to the world Symbolics_8_3.ilod
25. Shut down and boot world Symbolics_8_3.ilod from FEP1 or FEP8, as before
26. If you own a licence put Macsyma's CD into the PC's or the Mac's CD/DVD drive
27. Invoke "Select activity restore distribution" and restore the macsyma system
28. Shut down and reboot world Symbolics_8_3.ilod from FEP1 or FEP8, as before
29. Invoke the following command to load macsyma into the current Genera session
> load system (a system) macsyma :version released
30. Put the mouse pointer away to avoid highlighting objects by screen scrolling
31. On completion, save the current world incrementally using the command
> Save World (Complete or Incremental [...]) Incremental macsyma.ilod
32. Create a new version of boot.boot that points to the world macsyma.ilod
33. Invoke "Select activity restore distribution" and restore the tape home.reel
34. Shut down and boot the world macsyma.ilod from FEP1 or FEP8, as before
35. Invoke the following commands to load into the current Genera session the
> load system (a system) home-site :version released
> load system (a system) home-tools :version released
36. Put the mouse pointer away to avoid highlighting objects by screen scrolling
37. On completion, save the current world incrementally using the command
> Save World (Complete or Incremental [...]) Incremental standard.ilod
38. Create a new version of boot.boot that points to the world standard.ilod
39. Shut down and boot the world standard.ilod from FEP1 or FEP8, as before
40. Login and create a user "xyz" in the namespace database, using the users
bb and jm of venus's namespace file home-objects.text as example
> create namespace object (class) user (name) xyz
41. Copy the following files into the appropriate destinations, as shown below
> copy file (pathname of files [default ...]) venus:>special>lispm-init.lisp
(to [default ...]) venus:>xyz>
; i.e the home directory of user xyz
> copy file (pathname of files [default ...]) venus:>special>autoboot.boot
(to [default ...]) FEP1:>
; or FEP8, as appropriate
42. Dependent on whether you plan to substitute the current Disk unit 0 by the SCSI
Disk unit 1 or not, modify above files and the files hello.boot and boot.boot using
Zmacs to point to the appropriate FEP, and satisfy Lisp initialisation preferences
43. Logout, issue the command halt machine :query no, shutdown and switch your
iMACH machine again on, this time, to allow it auto-booting
44. Login as the user xyz, add other users, printers and hosts in the namespace
database of your machine, using the contents of the venus's namespace file
home-objects.text as example.
Congratulations. You have now a complete, configured and customised world on
your NXP1000's or XL machine's high-capacity SCSI disk. Enjoy !
SSH - Configure Secure Shell Identification using ssh-keygen
You can access and use Genera on a Symbolics machine also remotely. All you
need to do is to make your machine securely accessible from the internet via SSH.
Since SSH, however, is not directly supported by Genera, you need to go through
an intermediate SSH server available on your site, and then use Telnet to access
Genera. I.e you can use OpenSSH on a Mac, which in OS X is included by default,
the associated Software Center for other OS, like SuSe or Ubuntu. You need both,
the SSH client and the server, as well as ssh-keygen, required for authentication
key generation, management and conversion.
Following the configuration of rsa key and X11 authentication, you should open port
22 on your router, to allow requests from remote hosts to be forwarded to your SSH
Using ssh-keygen, you first have to generate a rsa authentication key and optionally
a passphrase on the host you wish to connect from to a Symbolics machine running
Genera through an intermediate SSH server. Invoking ssh-keygen from within your
home folder, authentication keys and passphrase will be generated in the subfolder
~/.ssh. The steps below show how, using ssh-keygen, first an authentication key is
generated by the user jm on a iMac named luna, and then installed onto a Mac mini
luna:~ jm$ ssh-keygen -t rsa -b 2048
You will be requested to enter a passphrase. Enter your passphrase or nothing if
you don't wish one and press return. In the subfolder .ssh of your home directory
you will find the authentication keys id_rsa and id_rsa.pub.
Forward the authentication key id_rsa_pub to the SSH server using a secure
channel, then copy it into the user's home directory, and execute the following
server:~ jm$ cat id_rsa.pub >> .ssh/authorized_keys
server:~ jm$ chmod go-rwx .ssh/authorized_keys
Enter also the following command,
server:~ jm$ ls -l .ssh/authorized_keys
and verify that the file attributes of authorized_keys are as shown below.
-rw------- 1 jm staff 1568 Nov 11 15:57 .ssh/authorized_keys
At this point, rsa authentication for the host luna is configured on the SSH server.
However, in order to use rsa authentication only, you should disable tunnelled clear
text passwords in /etc/sshd_config, by setting the following two options to no.
Symbolics Genera, i.e venus can only authenticate with host based authentication
and does nothing know about xauth. So, on the X server host you wish to connect to
venus from, must be run
; or IP address, as appropriate
to add venus to the X server's host list. You can then use Telnet to start a Genera X
screen on the display of the X server host, as we did above for both the Intranet host
server and for macpro under Mac OS X.
Assume now, you wish a Genera X screen from Symbolics machine venus to be
displayed on the host macpro, through an X proxy server created via SSH on the
LAN host server, as shown in the following configuration.
macpro <------ LAN ------> server <------ LAN ------> venus
This will not work, even though in /etc/sshd_config on server you have set
and every of the above hosts resides on the same Local Area Network. The reason
for that is, that the host list is kept in the X server, and the X proxy server created by
SSH does not use host based authentication. Therefore, venus cannot connect to
the X proxy server.
There would, however, be two possibilities to achieve this goal. The first one is to
set the option below to no in /etc/sshd_config on server and use Xnest.
This is the safer method, as discussed further below in section Security issues.
The other possibility is to set in /etc/sshd_config on server also the following option
to yes, which allows remote hosts to connect to ports forwarded for clients, and use
a plain remote port forwarding.
This second method, however, compared to the first one is less safe, as discussed
further below in section Security issues.
TellStick - Control LAN and Symbolics workstations from anywhere
Unless LAN and Symbolics workstations on your site stay permanently on, you can
use a TellStick, a control stick produced by Telldus Technologies, to switch on/off
electric devices from anywhere, through an Intertechno ITL-3500 radio-controlled 3-
channel switching receiver, which allows you to switch three loads individually or
simultaneously in groups, up to a total power absorption of 3500 watts.
The thumbnail Electric power scheme for LAN and Symbolics Workstations shows
how easy this can be achieved. Installation manuals and technical details about the
aforementioned components are available from the corresponding webpages.
Xnest - Access Genera through an X proxy server on your LAN
Following the configuration of rsa key authentication, you can use Xnest to get an X
screen from Genera on a host on the Intranet or on a remote host via the Internet
through an X proxy server on your LAN, as shown for macpro in thumbnail Server
Xnest from Venus to MacPro via the Internet for the configuration below.
macpro <------ Internet ------> server <------ LAN ------> venus
From within xterm, i.e on macpro, use regular X11 forwarding, as shown below,
macpro:~ jm$ ssh -X firstname.lastname@example.org ; use DNS name of your server
to create an X proxy server, on the intermediate server host server.jmpol.com via
In xterm you should now see the prompt of the X proxy server. On that server, start
Xnest, a nested X server, using values for geometry according to the resolution of
your monitor, and by adjusting the paths to xterm and Xnest, as appropriate.
server:~ jm$ startx /opt/X11/bin/xterm -- /opt/X11/bin/Xnest :20 -wr
Xnest is a virtual X server, that displays inside a window on another X server. In this
case, it displays over the forwarded X connection in a window on the X server of the
The command startx starts a complete X session. I.e an X server and a client on that
server. When the client (xterm), the terminal emulator, exits, the session is over and
the server (Xnest) is taken down as well. I.e, you do not get your prompt back until
the Xnest server exits. However, meanwhile, on your display on macpro, the Xnest
window pops up, and inside that window, with a delay of about a minute depending
on the speed of your Internet connection, an xterm terminal emulator with a bash
shell prompt, as shown in the thumbnail X Session Panes - Xnest server and xterm
Now, in "that" xterm, first allow the Genera host (venus) to access the Xnest server,
by the command
bash-3.x$ xhost +venus
Enable the Xnest server to use Genera fonts adjusting the font path in the command
below, as appropriate.
bash-3-x$ xset fp+ /usr/X11/share/fonts/genera
As next, telnet to Genera on venus as follows.
bash-3.x$ telnet venus
You should now get a response from venus and the Genera prompt, as shown in
On venus, start a Genera X screen to display on server:20, i.e the same :20 we gave
to Xnest in the command starx above. The Genera X screen will be displayed in the
Xnest window on macpro, i.e the remote host you used to connect from to the Xnest
server. Do this, avoiding typos, by using the following Genera command
> start x screen (the name of a host [default ...]) server (keywords) :display
(an integer [default 0]) 20 :screen (an integer [default 0]) 0 :geometry (a string)
and, by adjusting :geometry to the resolution of your monitor and, by specifying
"width x height + width_offset + hight_offset", such as to keep visible a portion of the
xterm client pane.
With a small delay, on your display you should now get an X screen similar to that
shown by the thumbnail Venus Dynamic Lisp Listener on MacPro via the Internet,
thus allowing you to log into Genera.
By pressing Select P you can enter Genera's activity Peek Network and verify that
now the X server's display port 20 and Telnet port 23 in Genera are bound to
foreign ports 6020 and 49220, as shown in thumbnail Venus Peek Network on
Furthermore, thumbnail Venus Peek Processes on MacPro via the Internet shows
that all X server specific devices are bound in Genera to server: 20.0 0 and, as
mentioned before in particular also note, that Telnet on the X Server doesn't return,
waiting for input, until either the X session or the Remote Terminal are halted, as
shown in thumbnails Logout - X Screen Halt - Venus on MacPro via the Internet and
Telnet - X Session Halt - Venus to MacPro via the Internet, respectively.
As shown above, accessing Genera on a Symbolics workstation from the Internet is
fine but to a large extent a question of security since Genera does not support xauth
authentication and SSH directly. This fact becomes even more important, if a foreign
host shall be allowed to connect to Genera from the internet, as e.g the iMac host
luna below, which is not a host on the own Local Area Network, as opposed to the
luna <------ Internet ------> server <------ LAN ------> venus
In fact, another possibility to access Genera from the Internet through an X proxy
server on an intermediate host server, without using Xnest, is via a plain remote port
forwarding, forwarding tcp port 6020 on server back to port 6000 on luna, as shown
below for server host server.jmpol.com.
luna:~ MdL$ ssh -R 6020:localhost:6000 email@example.com
That is, venus connects to server:20, that is port 6020 of server. The connection gets
forwarded to the real X server on luna. The X server on luna sees a connection
coming in from localhost, because that's where the "reverse" tunnel ends.
Since venus cannot do xauth authentication, this localhost connection must be
allowed using host based authentication. So the X server must allow host based
authentication from localhost. That means you'd have to run xhost +localhost on
luna. And this, means that anyone who can connect to port 6020 of server will get a
straight authenticated connection to the X server on luna. This, in fact, is not good.
On the other hand, allowing host based authentication from venus to the Xnest
server on server, as we did above starting from MacPro, means that the venus
Genera X screen will appear inside the Xnest window on the display of luna. And
this, means that anyone on venus can connect to the Xnest server that runs on
server, the intermediate SSH server. That's a lot better, security wise, than using a
plain remote port forwarding, because such connections are allowed from venus
only instead of the whole wide world, and access is only to Xnest, and not to the
whole X server on luna.
Basically, the trick is that Xnest has its own host list, after all it is an X server in its
own right, which brings host based authentication to server for the Symbolics host
venus to authenticate with.
Xnest - Access Genera from a remote computer via the Internet
Taking into account the above security issues, a connection to Genera on venus via
Internet from a remote computer, e.g the iMac host luna, through an X proxy server
running on the LAN host server, should be made only using Xnest.
The following thumbnails show the single phases regarding the connection via SSH
and Xnest, and details concerning the Genera X session. For details regarding the
single screenshots see the description provided above for the Genera X session
started from host MacPro via the Internet.
Log into your SSH server and
start Xnest, using :20 for display and appropriate values for geometry, according to
the resolution of your display. So for an iMac use a geometry of 1920 x 1080.
Allow host based
authentication from your Symbolics NXP1000 to the Xnest server, telnet to your
NXP1000, and start a Genera x screen on the Xnest server.
Depending on the speed
of your Internet connection, after a small delay, a Genera Dynamic Lisp Listener will
appear inside the Xnest window on the display of the host you are connecting from
to Genera, enabling you to log into Genera.
Select the Genera activity Peek
Network to inspect the connections established.
Select the Genera activity Peek
Processes to inspect the ports used for the single X session devices.
Select L to turn back to the
Dynamic Lisp Listener, in order to Logout from Genera and subsequently halt the X
screen of the current Genera X session.
Close the Telnet terminal
connection from within the xterm client window of Xnest on your host, by entering
the command halt remote terminal, confirming with yes, and shut down the Xnest
server by entering the bash command exit.
X Forwarding - Access Genera via plain SSH Remote Port Forwarding
Though, as discussed above, using Xnest is more safe, should you not have access
to Xnest and be required to use a plain remote port forwarding in order to connect to
Genera, the following are the steps you might take.
If Genera fonts are available on the remote host, e.g luna, from which you wish to
connect to a Symbolics machine, e.g venus, then invoke the command below from
within an X Terminal on luna to enable the X Server using Genera fonts.
luna:~ MdL$ xset fp+ /usr/X11/share/fonts/genera
From within the X Terminal on luna, invoke the command given below to establish a
plain remote port forwarding from server listening on port 6020 back to port 6000 of
localhost on luna. Should you wish, you can follow the steps performed to establish
this connection using the ssh option -v, as shown in thumbnail Server Plain Remote
luna:~ MdL$ ssh -v -R 6020:localhost:6000 firstname.lastname@example.org
In a second X Terminal tab on luna, invoke the command xhost +localhost, in order
to authorise host based authentication from the localhost on luna to the X server on
From the server's prompt on luna, proceed by invoking the command below, using
your own User ID.
server:~ jm$ telnet venus
From withinTelnet, start a Genera X screen to display on server:20, i.e the same 20
passed to the ssh command as listening port 6020, and adjust :geometry to the
resolution of your monitor, specifying "width x height + width_offset + hight_offset",
as shown at the bottom of thumbnail Server Forwarded Start X Screen Command to
> start x screen (the name of a host [default ...]) server (keywords) :display
(an integer [default 0]) 20 :screen (an integer [default 0]) 0 :geometry (a string)
On luna's monitor, it will appear an X screen similar to that shown in the thumbnail
Server Forwarded Dynamic Lisp Listener to Luna via the Internet, thus allowing you
to log into Genera and start using Lisp.
By pressing Select P you can enter Genera's activity Peek Network and verify, as
shown in Server Forwarded Peek Network to Luna via the Internet, that :display 20
is bound in Genera to foreign port 6020, and that all X server specific devices are
bound to server: 20.0 0, as shown in Server Forwarded Peek Processes to Luna via
the Internet, respectively.
Further on, you can proceed using other Genera applications, e.g macsyma, as
shown in Server Forwarded Macsyma Listener to Luna via the Internet and the 3D
demo plots in Server Forwarded Macsyma 3D Plot 1 to Luna via the Internet and