"Linux Gazette...making Linux just a little more fun!"

Sharing a Linux server under X in the classroom

By Alan Ward

The current situation:

I manage a high school computer lab of 14 Pentiums under Windows 98. These are used for basic instruction in Windows, Works, Office and the basics of programming.

This term, I would like to introduce the older students (17 - 18 year-olds) to Unix, specifically Linux. Besides normal user tasks, I would like them to do a bit of programming, especially with X: drawing sine curves and the like. I would also like them to use Unix math programs such as gnuplot and octave.

However, I need to keep the Pentiums as they are, under Windows. This is for the younger students (16 - 17 year-olds) and staff, who are not--and will not be in the foreseeable future--Linux literate.

Lasciate ogne speranze, voi qu'intrate ...

Everything is connected together via Ethernet.

The extra hardware I have been able to squirrel out of various people consisted of a 486 DX 2 (our server !!), several rather elderly 386 and 486s, and the future prospect of a Pentium of indeterminate speed. None of these has more than 16 Mbytes of RAM.

Personal comment: some people in the administration are not yet confortable with the idea of a free system - it goes against years of "tradition". That may be the worst Linux has to face!

My approach

I undertook this from two different directions:

Configuring the 386 and 486s as X terminals.

Although all these boxes are different, our "best" configuration is more or less as follows:

In all, a typical 1985 MS-DOS configuration. This meant we had to get things rather tight for it to work for us.

Building a working 386 out of spare parts

To save space, I installed an old 1.2.13 kernel. This has the double advantage of taking up less hard disk space and memory, and also booting rathing quickly (no modules).

It came from a Slackware distribution, of which I installed only the A and X series. I rather like slack for this kind of project, as you have much control over exactly what is installed. It is also the only distribution that can be installed by diskette if you can't get nfs to work!

The hard disk partitioning was: 34 M as Linux native, 6 M as Linux swap. I formatted hda1 with 1024 byte inodes, which may have been a mistake. df reports HD use as 28K inodes out of 31K, and 98% of our 34 Mbytes (ouch! gasp!).

As for memory, normal use amounts to about 7 Mbytes (3.5 M hard + 3.5 M swap).

A normal student session on one of these clients consists of the following, most of which is scripted:
startxin .login: NOTE tcsh shell, not bash
xtermin xinit
xhost "server IP"allow server to use local screen
rsh "server IP"login on server
xterm -display "client IP":0.0get a server terminal on our client window, screen 0.0
exitfrom server remote shell
...continue on client

X server on the Pentiums under Windows

The X server I used was MIXServer 5.6 from Microimages. This is a rather standard X server for Windows 9X, with a twm type window manager built-in. I got it on the S.U.S.E. 5.1 distribution CD.

It works quite nicely in 640x480x8 to 800x600x24 resolutions. (I haven't tested it any further.) Most line art and characters come out well, but there can be some problems with bitmaps. My final tests were kmahjongg and netscape.

The X screen as seen under Windows

A typical student session is as follows:
start MIX
telnet the serverwith standard c:\windows\telnet.exe
xterm -display "client IP":0.0don't forget the 0.0 screen!
logout from telnet
... continue on client
As you see, no xhost is necessary, since MIX accepts all X requests without blinking.

I hope to publish some results obtained with the kids during the 1999-2000 term on our web site (Sorry, it's still only in Catalan. But many pretty pictures, for what that's worth).

[Especially these pictures. --Ed.]

Meanwhile, I would welcome both comments and constructive criticism :-)

The author: Alan Ward
CS Department
Escola Andorrana (Batxillerat)
Principality of Andorra
Phone 327.185

Copyright © 1999, Alan Ward
Published in Issue 45 of Linux Gazette, September 1999