Terminal Services Technology
So what is a terminal server? Windows was designed to be a single-user operating system (OS), meaning only one user could be interactively logged onto a system at a time. Terminal Services breaks that model by implementing a Session Manager layer between the system and user layers. The Session Manager responds to new session requests by creating a separate instance of the Win32 subsystem, WIN32K.SYS, for each session. The Session Manager then executes the client server runtime subsystem, CRSS.EXE, and the windows logon service, WINLOGON.EXE, within the session. Figure 1.3 shows the processes that make up Terminal Services divided up between user mode and kernel mode and indicates whether they are per server or per session.
This process allows multiple user sessions to run simultaneously on a Windows system. Session Manager acts like a maitre d' in a restaurant, directing new patrons (clients) to their tables (sessions), then directing the serving staff (applications, services, and resources) to the new table. Session Manager assigns each session a unique ID and address space so that resource and network requests can be directed to the correct user.
Another very important component to Terminal Services is RDP. This presentation layer protocol is what allows users to interact with sessions running on a remote server. Without RDP, each user would need to have a console directly connected to the server.
RDP functions as a virtual display, keyboard, and mouse on the server. Instead of sending video output to the VGA port, terminal servers redirect it to the video channel in the RDP stack. Doing so transmits the display information across the network and draws it on the client's workstation display. RDP also takes keystrokes and mouse movements at the remote client and transmits them back to the terminal server, where they are processed as if they came from a local keyboard and mouse.
Was this article helpful?