[clug] Programmable title [a riff on Days of Yore]

Bryan Kilgallin bryan at netspeed.com.au
Sat Oct 18 08:12:03 MDT 2014

Wow, that's historic! I remember as a kid visiting Jodrell Bank Radio 
Telescope, getting a length of punched tape as a souvenir. As a new 
undergraduate at Southampton, I played a lunar lander game via a 
teletype in the engineering department. As an investor, visiting 
Bangkok's main post office, I was sat down at a telex machine to type my 
message to my bank in the Channel Islands. As a computer user, I 
remember configuring modems with XON/XOFF etc. And as a hobbyist with an 
Arduino, I came across UART terminology.

On 18/10/14 11:04, steve jenkin wrote:
> On 18 Oct 2014, at 12:05 am, Bryan Kilgallin <bryan at netspeed.com.au> wrote:
>> Thanks guys. The following seems to do what I wanted. Though I don't know how to force the terminal to be of type "tty" as opposed to "pts", in order to test that condition.
> Bryan,
> The ‘tty’ command, and ‘ps’, display the terminal device you’re on (use stty is “set tty values”) - they’re allocated at login, you don’t get to choose a name/type.
> Because you’re not on a directly connected serial device, you get a “pseudo-tty", the slave side of which is /dev/pts…IIRC, /dev/ptm… is the master side.
> Every Unix/POSIX system names their pseudo-tty’s differently. try ‘man pty’ and "man -s 4 tty” (man in section 4 for tty, sometime “man 4 tty”)).
> Use "ls -l /dev/pt[sm]*" to explore the device major/minor numbers allocated. (& try “ls -l /dev/tty”, next)
> Every process attached to a terminal (daemons don’t have one, you can test for a controlling tty with the shell) has "/dev/tty” that always points to the controlling terminal. This abstraction, a constant name, came after all the kernel structures, device drivers and commands were well established.
> You can use "/dev/tty" in a shell script, or program, to interact with the user without going via stdin, stdout, stderr (file descriptors 0, 1, 2).
> I have limited knowledge/experience of this.
> Perhaps someone can write something on how tty’s are seen in the modern "/proc” pseudo-filesystem.
> I googled for “unix tty history”.
> The link below was the first search result, it’s actually pretty complete and comes with what seem to be reasonable diagrams.
>   It should help explain to you what’s going on. It’s not how you’d design something from scratch these days, there’s a lot of ‘cruft’ in there added since 1969 as new technologies arrived. The number of “termio()” parameters [set by ioctl()] is astounding, as are terminal control strings and all the X-11 'stuff'. Luckily you seldom need to know or use at any of this.
> Flow control (^S, ^Q) and “sessions” & job control (^Z) are _really_ useful, even with modern Display Manager/GUI systems. Simple to learn and can be a life saver, especially at a console.
> He mentions both 'screen’ and ‘ssh’, where you often have just a single terminal session - they create & manage the pairs (master/slave) of pseudo terminal devices they need.
> Process Groups and session leaders are mentioned too - these were very important concepts when developed.
> “stty sane” [with a ctrl-J not ‘return’] is something necessary to reset your terminal if it stops echoing or starts printing weird characters.
> <http://www.linusakesson.net/programming/tty/>
> Hope that’s Helpful.
> steve
> --
> Steve Jenkin, IT Systems and Design
> 0412 786 915 (+61 412 786 915)
> PO Box 48, Kippax ACT 2615, AUSTRALIA
> mailto:sjenkin at canb.auug.org.au http://members.tip.net.au/~sjenkin


More information about the linux mailing list