Difference between revisions of "TTYs"

From CRIU
Jump to: navigation, search
(Start describing terminals)
(Terminals)
Line 2: Line 2:
 
[[Category: Empty articles]]
 
[[Category: Empty articles]]
  
= Terminals =
+
= Overview =
  
Terminals are one of the most important parts of how programs interact with users. Usually programs print output into them and read user input from.  
+
Terminals are one of the most important parts of how programs interact with users. Usually programs print output into them and read user input from. For example when one executes any program from a shell, the shell provides terminal peer into it, so the program output will be seen in a calling shell and a user can do additional processing (say grepping and etc).
  
 
== Supported terminal types ==
 
== Supported terminal types ==
  
 
There are wide range of terminals exist in linux world: ''unix98'' psesudoterminals ('''pty'''), ''bsd'' terminals, ''virtual'' terminals ('''vt''') and etc. In CRIU we support the '''pty''' completely and '''vt''' in a way full enough for enough for work. By full support we mean complete save of pty internal state including queued data. In turn for '''vt''' only plain restoration supported which means it is complete enough to do a traditional operations with terminals after restore but if there was some data queued and not yet delivered to a terminal user it will be lost. It is worth to mention that such situation should not be treated as any kind of error -- the terminal transport layer never ever be one with guaranteed data delivery.
 
There are wide range of terminals exist in linux world: ''unix98'' psesudoterminals ('''pty'''), ''bsd'' terminals, ''virtual'' terminals ('''vt''') and etc. In CRIU we support the '''pty''' completely and '''vt''' in a way full enough for enough for work. By full support we mean complete save of pty internal state including queued data. In turn for '''vt''' only plain restoration supported which means it is complete enough to do a traditional operations with terminals after restore but if there was some data queued and not yet delivered to a terminal user it will be lost. It is worth to mention that such situation should not be treated as any kind of error -- the terminal transport layer never ever be one with guaranteed data delivery.

Revision as of 13:50, 8 September 2016


Overview

Terminals are one of the most important parts of how programs interact with users. Usually programs print output into them and read user input from. For example when one executes any program from a shell, the shell provides terminal peer into it, so the program output will be seen in a calling shell and a user can do additional processing (say grepping and etc).

Supported terminal types

There are wide range of terminals exist in linux world: unix98 psesudoterminals (pty), bsd terminals, virtual terminals (vt) and etc. In CRIU we support the pty completely and vt in a way full enough for enough for work. By full support we mean complete save of pty internal state including queued data. In turn for vt only plain restoration supported which means it is complete enough to do a traditional operations with terminals after restore but if there was some data queued and not yet delivered to a terminal user it will be lost. It is worth to mention that such situation should not be treated as any kind of error -- the terminal transport layer never ever be one with guaranteed data delivery.