What is the difference between getty and agetty?
There was a program named getty
in 1st Edition Unix. The BSDs usually have a program named getty
that is a (fairly) direct descendant of this. 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 has a collection of clones and reimplementations, as did minix before it.
agetty
was written by Wietse Venema, as an "alternative" to AT&T System 5 and SunOSgetty
, and ported to Linux by Peter Orbaek (who also providedsimpleinit
alongside it). It is 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
anduugetty
is hard to find nowadays, but was an alternative toagetty
. (Thegetty-ps
package containing them both can still be found in SlackWare.) - Fred van Kempen wrote an "improved"
getty
andinit
for minix in 1990. - Gert Doering's
mgetty
is another getty that is 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 is 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 frommingetty
, adjusted to use a C library with a smaller footprint than the GNU C library, and tweaked to include things like thecheckpasswd
mechanism. - Nikola Vladov's
ngetty
was a rearchitecture of the whole getty mechanism. Instead ofinit
(directly or indirectly) knowing about the TTYs database and spawning multiple instances of getty, each to respond on one terminal, init spawns onengetty
process that monitors all of the terminals.