Відповіді:
"tty" спочатку означало "телетайп", а "pty" означає "псевдотелетип".
У UNIX / dev / tty * - це будь-який пристрій, який діє як "телетайп", тобто термінал. (Називається телетипією, тому що саме у нас були термінали в ті доброзичливі дні.)
Pty - це псевдотти, запис пристрою, який діє як термінал для процесу читання та запису, але керується чимось іншим. Вони вперше з'явилися (наскільки я пам’ятаю) для X Window та екрана тощо, де вам потрібно щось, що діяло як термінал, але можна було б використовувати з іншої програми.
Ctrl-Alt-F{1..6}
вони підключені /dev/tty{1..6}
. Консоль Linux не є фізичним терміналом, але він підключений до ttyN
(не до a ptyN
). Я щось тут пропускаю?
Tty - це термінал (він означає телетайп - в оригінальних терміналах використовувався лінійний принтер для виводу та клавіатура для введення!). Термінал - це в основному просто пристрій інтерфейсу користувача, який використовує текст для введення та виводу.
Pty - це псевдотермінал - це програмне забезпечення, яке з'являється в доданій програмі, як термінал, але замість того, щоб безпосередньо спілкуватися з "реальним" терміналом, він передає вхід і вихід іншій програмі.
Наприклад, коли ви впадаєте в машину і запускаєте ls
, ls
команда надсилає свій вихід на псевдотермінал, інша сторона якого приєднана до демона SSH.
*nix
на базі операційної системи створюється цей псевдотермінал.
sshd
і xterm
є двома типовими прикладами.
Якщо ви запустите команду mount без аргументів командного рядка, яка відображає файлові системи, встановлені у вашій системі, ви помітите рядок, який виглядає приблизно так: жоден на / dev / pts не вводить devpts (rw, gid = 5, режим = 620) Це вказує на те, що спеціальний тип файлової системи, devpts, встановлений у / dev / pts. Ця файлова система, яка не пов'язана з жодним апаратним пристроєм, є "магічною" файловою системою, яку створює Linux ядро. Це схоже на файлову систему / proc
Як і / dev каталог, / dev / pts містить записи, відповідні пристроям. Але на відміну від / dev, що є звичайним каталогом, / dev / pts - це спеціальний каталог, який динамічно створюється ядром Linux. Вміст каталогу залежить від часу та відображає стан запущеної системи. Записи в / dev / pts відповідають псевдотерміналам (або псевдо-TTY, або PTY).
Linux створює PTY для кожного нового вікна терміналу, яке ви відкриваєте, і відображає відповідний запис у / dev / pts. Пристрій PTY діє як термінальний пристрій - він приймає введення з клавіатури та відображає текстовий вихід із програм, що працюють у ньому . Номер PTY пронумерований, а номер PTY - це ім'я відповідного запису в / dev / pts.
Наприклад, якщо номер PTY нового вікна терміналу - 7, викликайте цю команду з іншого вікна:% echo 'I am virtual di'> / dev / pts / 7 Вихід з'являється у новому вікні терміналу.
tty
Є фізичною т erminal- т Елета у ре порту на комп'ютері ( як правило, послідовний порт).
Слово телетип - це короткий короткий друк телеграфної машинки або пристрою телерайт- машинок 30-х років минулого століття - сам електромагнітний прилад, який замінив машини для кодування телеграфа 1830-х та 1840-х років.
pty
Є р seudo- т Еля ти ре порту забезпечується комп'ютером ядра операційної системи для підключення програм емуляції терміналів, таких як SSH, XTerm, або екран.
Термінал - це просто користувальницький інтерфейс комп'ютера, який використовує текст для введення та виводу.
Вони використовують р seudo- т Ель ти ре портів , проте їх імена і реалізації відхилилися трохи.
Linux монтує спеціальну файлову систему devpts on / dev (імовірно, 's' - це s erial), яка створює відповідний запис /dev/pts
для кожного нового відкритого вікна терміналу, наприклад/dev/pts/0
macOS / FreeBSD також використовує структуру файлів / dev, однак вони використовують нумеровану TTY
конвенцію ttys
про іменування для кожного нового вікна терміналу, яке ви відкриєте, наприклад/dev/ttys002
Microsoft Windows все ще має концепцію LPT
порту для лінійних принтерних терміналів в межах своєї командної оболонки для виведення на принтер.