JMpol

Genera LISP Environment

        Welcome Network SYMBOLICS Genera APPLE LINUX NOKIA PC Literature Workgroup

Genera

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:

Connection speed:

9600 Bits per second

Number of Data Bits:

8

Parity Bits:

none

Number of Stop Bits:

1

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

homepage.

FEP  -  Prepare FEP files required to boot Symbolics Genera

Once the COM port has been configured, you can use a serial port communication

software, e.g HyperTerminal or PuTTY, to connect to the FEP and control the cold

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 files hello.boot and boot.boot. Also available on this webpage is 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

X Terminal Emulator. Under Windows, for example, this can be X-Win32 or Exceed,

as described in webpage windows.html, as well as X2Go. Under Mac OS X, you

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

thumbnails Venus Peek Processes on Server via the Intranet, Telnet - X Session

Halt - Venus to Server via the Intranet and Logout - Machine Halt - Venus on Server

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.

sys.translations

Translation file defining the SYS logical pathname

lmfs.translations

Translation file defining the LMFS logical pathname

home.translations

Translation file defining HOME host's logical pathname

joshua.translations

Translation file defining the Joshua logical pathname

macsyma.translations

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

initialisation.

lispm-init.lisp

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.

y2k.lisp

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.

fspt.fspt

LMFS File System Partition Table

home-objects.text

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.

home.reel

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.

init-time.lisp

Use only, if the time from calendar clock is not available

merlin-ii-patch-2.lisp

Private-Patch-File for Symbolics XL1200 machines only

w83.lisp

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

steps.

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.

Distribution Worlds

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

World from PC CD-ROM and Restore Genera Distribution World from Mac CD-

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

interested on.

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

Genera Distribution Sources from PC CD-ROM and Restore Genera Distribution

Sources from Mac CD-ROM, respectively. For details, see the Genera document

Site Operations.

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

from PC CD-ROM via Mac and Restore Genera Distribution Sources from PC CD-

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

operating system

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",

described above.

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

below.

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

machines only

>  Load  File (file [default ...]) venus:>special>w83

; for all Ivory machines

20. In Genera's Dynamic Lisp Listener call the following function without arguments

>  (wform)

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

systems below

>  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,

use PuTTY with puttygen under Windows, or download and install OpenSSH from

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

server.

ssh-keygen

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

named server.

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

commands.

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.

PasswordAuthentication  no

ChallengeResponseAuthentication  no

X11 authentication

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

xhost  +venus

; 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

X11Forwarding  yes

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.

X11UseLocalhost

no

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.

GatewayPorts

yes

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  jm@server.jmpol.com   ; use DNS name of your server

to create an X proxy server, on the intermediate server host server.jmpol.com via

SSH.

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

-geometry  2560x1440

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

host macpro.

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

client via the Internet.

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

thumbnail Telnet - X Session Start - Venus to MacPro via the Internet.

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)

2048x1280+256+80

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

MacPro via the Internet.

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.

Security issues

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

host MacPro.

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  jm@server.jmpol.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.

Server Xnest from Venus to Luna 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.

Telnet - X Session Start - Venus to Luna via the Internet

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.

Venus Dynamic Lisp Listener on Luna via the Internet

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.

Venus Peek Network on Luna via the Internet

Select the Genera activity Peek

Network to inspect the connections established.

Venus Peek Processes on Luna via the Internet

Select the Genera activity Peek

Processes to inspect the ports used for the single X session devices.

Logout - X Screen Halt - Venus on Luna via the Internet

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.

Telnet - X Session Halt - Venus to Luna via the Internet 

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

Port Forwarding to Luna via the Internet.

luna:~ MdL$  ssh  -v  -R  6020:localhost:6000  jm@server.jmpol.com

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

server.

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

Venus via the Internet.

>  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)

1600x960+160+20

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

Server Forwarded Macsyma 3D Plot 2 to Luna via the Internet, respectively.