getty
flavours from the past
getty
is largely a thing of the past.
It has been obsolete in AT&T Unix and its descendents since 1988, having long since been superseded by ttymon
and its ilk.
Even on platforms that are decades behind AT&T Unix, it has in some cases been superseded by a few simpler chain-loading tools in some system management toolsets.
Here are some of its historical flavours.
There was a program named getty
in 1st Edition Unix.
The BSDs still usually have a program named getty
that is a (fairly) direct descendant of the old Unix program.
It (nowadays) reads /etc/ttys
for the database of configured terminal devices and /etc/gettytab
for the database of terminal line types (a line type being passed as an argument to the getty program).
The Linux world, also decades behind AT&T Unix, has a collection of clones and reimplementations of getty
, as did minix before it.
Depite not even coming into existence until well after getty
was obsolete, the Linux and minix worlds did not clone or reimplement the more modern mechanisms of contemporary Unix.
agetty
was written by Wietse Venema, as an "alternative" to AT&T System 5 and SunOS getty
, and ported to Linux by Peter Orbaek (who also provided simpleinit
alongside it).
It was suitable for use with serial devices, with either modems or directly connected terminals, as well as with virtual terminal devices.
Paul Sutcliffe, Jr's getty
and uugetty
is hard to find, but was an alternative to agetty
.
The getty-ps package containing them both can still be found in SlackWare.
Fred van Kempen wrote an "improved" getty
and init
for minix in 1990.
Gert Doering's mgetty
was another getty
that was suitable for use with actual serial devices, and was designed to support "smart" modems such as fax-modems and voice-modems, not just "dumb" terminal-only modems.
Florian La Roche's mingetty
was designed not to support serial devices, and generic getty
functionality on any kind of terminal device.
Rather, it was specific to virtual terminal devices and cuts out all of the traditional getty
hooplah that is associated with modems and serial devices.
Felix von Leitner's fgetty
was derived from mingetty
, adjusted to use a C library with a smaller footprint than the GNU C library, and tweaked to include things like the checkpasswd
mechanism.
Nikola Vladov's ngetty
was a rearchitecture of the whole getty
mechanism.
Instead of init
(directly or indirectly) knowing about the TTYs database and spawning multiple instances of getty
, each to respond on one terminal, init
spawns one ngetty
process that monitors all of the terminals.
ngetty
was the closest in concept to the 1988 ttymon
, although ttymon
was a part of an overall larger framework, the Service Access Facility, and formed part of a regular pattern with other tools, which ngetty
does not.
mingetty
likewise demonstrates that when it comes to virtual terminals, almost all of the functionality of getty
(a large part of which in traditional form deals with serial port mechanics, modems, terminal classes, and connection mechanisms other than interactive shells) is extraneous.
Virtual terminal login via the nosh Toolset replaces it entirely, with five small chain-loading tools.