Antes de falar como fazer isso, vou dar uma explicação sobre terminais, pois esta informação será necessária mais adiante. Terminal é basicamente uma tela preta com um prompt para receber comandos. Por exemplo: no Slackware, a distro que eu uso, por padrão são configurados seis terminais locais que podem ser acessados pressionando o conjunto de teclas [Ctrl]+[Alt]+[F1-F6].
No arquivo de configuração do init (geralmente /etc/inittab), pode-se aumentar ou diminuir o número de terminais disponíveis ou ainda usar terminais remotos via cabo serial ou modem (isso fica para uma outra dica).
Cada terminal é controlado por um dispositivo chamado /dev/ttyX, onde X é o número do terminal. Se você quiser saber qual o dispositivo que controla o seu terminal, basta usar o comando "tty".
Este sistema de terminais é muito bom, mas existe um grave problema nele. Se ele for usado sozinho, só poderão haver terminais reais, o que significa que mesmo que você estivesse usando a interface gráfica, o xterm não funcionaria, por que o X já estaria usando o terminal real disponível. Não existiria também o comando splitvt, capaz de dividir um terminal em dois.
Mas já que para tudo tem solução, foi desenvolvido o sistema de pseudo-terminais para solucionar este problema. Este sistema permite que em cima de cada terminal real rodem inúmeros terminais virtuais (também conhecidos como pseudo-terminais). Assim você pode ter o X rodando no terminal real e vários aplicativos em modo texto (criado para usar um terminal real) rodando em pseudo-terminais.
Assim como existem dispositivos que controlam os terminais, existe um sistema de arquivo virtual (assim como o procfs, que controla o conteúdo da pasta /proc) chamado devpts, que é montado por meio do /etc/fstab (pelo menos no Slackware), responsável por criar o dentro/dev/pts/X, onde X é o número do terminal. O comando tty também funciona para pseudo-terminais.
Vamos fazer um teste bem prático. Mude para um terminal real e digite:
$ tty
Será indicado um dispositivo como /dev/ttyX, onde X é um número qualquer. Agora digite o comando:
$ splitvt
A tela ficará dividida em duas. Digite "tty" e aperte [Enter] para ser mostrado o dispositivo correspondente. Você verá que este é um terminal virtual. Alterne de terminal apertando [Ctrl]+[W] e repita o procedimento. O resultado será o mesmo, mudando apenas de número. Para sair aperte [Ctrl]+[O] e então [Q].
Podemos chegar a conclusão de que sobre um terminal real rodavam dois terminais virtuais.