Skip to content

Latest commit

 

History

History

tty

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Unix V6 Replacement terminal driver

The original V6 terminal driver was designed to be used with printing devices and doesn't play too well with the 'glass terminals' that we all use today. Personally I find that I don't get on with the use of '#' to delete a character, and 'delete' to send the interrupt signal. This was as true in the 1980's as it is now.

Luckily, help is at hand. In the late 1970's, various versions of an alternative driver began circulating. It started at UCLA, and was passed about the UK Universities that were using UNIX: Queen Mary College London, University of Glasgow, Swansea University, and to myself at the University of Kent. We all hacked them to fit into our local environment. The version I have adapted here came from Glasgow and can be found on a tape rescued by Henry Spencer on the www.tuhs.org archive.

By now, I had created my own user account, which means I login to my home directory, see user_acct.

Installation steps

  • Install and build the new kernel code replacing the old tty.c, its header and drivers. This uses files in the sys directory. For more on that see its sys/README.

  • Run mkestty to compile estty , install in your home directory. Once you've installed the kernel code, you'll be surprised that the new erase/kill characters you have installed in the kernel are not set up when you login. This will continue until you replace /etc/getty and /bin/login. This program can be compiled and installed to set the values to what are now the defaults. It's a temporary measure but makes your life easier. On the plus side, your Interrupt character (by default ^c) will work now.

  • If you've not built your system in /usr/sys, then you'll want to install sys/deftty.h in /usr/sys. You can now compile and install the other programs without messing with your system. You will need to change /usr/sys at some point, this is where most of the code looks to find definitions.

  • Install the glue code in s5 to put the terms system call into /usr/lib/libc.a. See s5/README. This is needed to some of the other new programs. The rawst.c program uses this system call and will dump out the values it returns.

  • With terms.o installed run compile

  • Install getty in /etc/getty, reboot and check that it works.

  • Install login in /bin/login, reboot and check that it works. Now the default character controls will all be available to you on login.

  • Install stty in /bin/stty.c. You can compile and run this without installing it.

  • The /bin/ps command uses /usr/sys/tty.h, and needs to be recompiled and re-installed, once your system code is set up.

  • Consider installing the manual pages in man. The V6 system doesn't come with working man command, I supply one, see ../man/README.

Directories

  • man - manual pages

  • s5 - Glue code for the terms system call

  • sys - Files for installing the new terminal interface and associated drivers into your kernel.