Да, с X примерно ясно, но я хочу всёже с системой TTY разобраться.
Я тут почитал вот это:
http://ru.wikipedia.org/wiki/TTY-абстракция
Вообщем, исходя из статьи, концепция текстового терминала как двери в дом хороша, но есть слишком упрощённый взгдяд на tty с точко зрения юзера. Наверное лучше смотреть на tty с точки зрения ядра. А с его точки зрения tty - это устройство - честное устройство со своим драйвером(/dev/tty0, /dev/tty2 ...) Вообще, там в статье всё не плохо описано, но вот вкратце:
TTY - это телетайп(
http://ru.wikipedia.org/wiki/Телетайп). Телетайп - это печатная машинка - передающая по проводам коды (ANSI) печатаемых символов. Сущетвуют немного более продвинутые варианты - где вместо бумаги - этран, например :
http://ru.wikipedia.org/wiki/VT100 Такая машинка подключаеться к компьютеру через серийный порт (aka COM[n] aka /dev/ttyS[n] ) или компорт->модем->телефонная линия->модем->компорт , что с точки зрения ОС - одно и тоже. Я, например, это проверил : установил в моей win7 вирт. компорт:
http://eterlogic.com/Downloads.html, назвал его COM2. В VirtualBox - в свойствах вирт машины - COM-порты - делаем "проброс" комторта основной ОС (COM2) на компорт гостевой ОС (/dev/ttyS1). Гостевая - это Ubuntu 11.10 - 64. Делее - эмулятор телетайпа
http://www.emtec.com/zoc/index.html. Там - выбираем VT-100 и COM2 порт. При старте убунты по идее должна сработать getty - и вызвать программу login с вводом/выводом на устройство на компорту, но что-то не срослось. Тогда явно в убунту: sudo detty 9600 ttyS1. В эмуле телетайпа - приглашение логина. Логинимся. who:
andrew tty1 2011-12-03 00:07
andrew ttyS1 2011-12-03 01:13
andrew pts/0 2011-12-03 01:15 (:0)
Любопытно, кстати, наблюдать как работает mc - видно как обновляется построчечно (скорость 9600 бод).
Тоесть имея дома модем, подключённый к компорту, и телефону, я мог бы залогиниться на свою убунту с какогонибудь отделения связи - где есть телетайп (они вроде где-то ещё остались).
Так вот, мы берём и заменяем этот наш физический телетайп (/dev/ttyS1) + драйвер компорта на его программную эмуляцию, использующую клавиатуру - для ввода, и экран - для вывода. И, получившеяся программа(эмулятор видеотерминала см. статью) - и есть то виртуальное устройство которое видно как ./dev/tty[n]. В статье ещё говориться о псевдотерминале (PTY), но я пока не понял чем они отличаются (эмулятор видеотерминала и псевдотерминал).
Тоесть сейчас о tty я мыслю как об устройстве к которому подключены устройства ввода/вывода, и разруливающему какому процессу направлять ввод(активному, но не фоновому) и от какого забирать (отображать) вывод, ну а "двери" в систему - это программа login - запущенная "внутри" tty(тоесть направляющая ей свой ввод-вывод).
Конечно, не совсем понятно в этом случае что происходит когда я переключаюсь с одной tty на другую: значит ли это что я отключаю клавиатуру мышь и монитор от старого устройства tty и продключаю их на новое?