| Not only that, if you sit down and figure out everywhere that character goes,
you get quite a trip. It starts in the keyboard driver, goes to the server,
through the kernel network code, over the net to another machine, through that
machine's network code, out to xterm, xterm extracts that character from the X
event and sends it to shell under it via another path through the kernel. Then
the second half of the trip, which is a reversed mirror image of the first half,
begins, to cause the character to echo.
That is was happens on Ultrix. On VMS, it is probably somewhat different. It
seems somewhat incredible that under most circumstances, character echoing
appears instantaneous.
Jeff
|
| > Not only that, if you sit down and figure out everywhere that character goes,
> you get quite a trip....
And if you really compare apples-vs-apples (i.e. you are talking about running
an application remotely, say via a HOSTed terminal) there isn't all that much
additional overhead for a windows -vs- non-windows application.
|
|
+-------------+
! LK201 ! User types key
+-------------+
!
!
+-------------+
! Port driver ! Device driver gets it
+-------------+
!
!
+-------------+
! IKDRIVER ! Pass to the DWS KB
+-------------+
!
!
+-------------+
! INDRIVER ! Pass to the common class drvr
+-------------+
!
!
+-------------+
! PACKET ! Insert into a packet and WAKE
+-------------+ the server
!
!
+-------------+ Context of server process.
! SERVER ! Server dequeue and processing.
+-------------+
!
! DECnet, local memory, TCP/IP, LAT, etc.
!
+-------------+
! DECTERM ! DECterm gets it! Context Swicth!
+-------------+
!
! QIO
!
+-------------+
! PTY ! PTY gets QIO, does PUTNXT
+-------------+ to get rid of it.
! PTY PORT !
+-------------+
!
!
+-------------+
! TTDRIVER ! VMS class driver gets it
+-------------+
!
+-----------OPTIONAL-------------+
!
+-------------+ The traditional EMACS case, user
! USER ! doing echo instead of TTDRIVER.
+-------------+ Context Switch!
!
! QIO
!
+-------------+
! TTDRIVER ! VMS class driver gets it (again)
+-------------+
!
+-----------OPTIONAL-------------+
! QIO
!
+-------------+
! DECterm ! DECterm gets it back!
+-------------+
!
! Decnet, local memory, etc...
!
+-------------+ Server gets draw text command
! SERVER ! and finally draws it. Context
+-------------+ Switch
All done. Simple eh? Of course this is the terminal path, and
not the user application path.
|