Difference between revisions of "ReactOS Terminal Services"

From ReactOS Wiki
Jump to: navigation, search
m (Links)
(Microsoft RDP Specification: add PDF about MS-TSSO)
 
(4 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
ReactOS Win32 personality a fully featured multi user operating system with possibilities to log in several users at the same time with an insulated environment for every login. Every login should be able to access the terminal services from any interface with many different protocolls enabling different possibilities depending on protocol, interface and connecton speed.
 
ReactOS Win32 personality a fully featured multi user operating system with possibilities to log in several users at the same time with an insulated environment for every login. Every login should be able to access the terminal services from any interface with many different protocolls enabling different possibilities depending on protocol, interface and connecton speed.
  
== Features ==
+
== Possible Features ==
  
 
* Multi user environment.
 
* Multi user environment.
Line 15: Line 15:
  
 
== Tasks need to be done ==
 
== Tasks need to be done ==
As you can see there is quite a lot of work, so if you are skilled in any way referring to these things below, help is welcome, add your name in the bottom and contact [http://www.reactos.com/forum/memberlist.php?mode=viewprofile&u=45 Jaix Bly] about what you would like to help with.
 
 
 
* Multi User Environment
 
* Multi User Environment
 +
** Shared Session Memory Space
 
** Winlogon+GINA
 
** Winlogon+GINA
 
** SAS: make win32k notify Winlogon
 
** SAS: make win32k notify Winlogon
Line 23: Line 22:
 
** csrss: make it support multiple Win sessions
 
** csrss: make it support multiple Win sessions
 
** logon/logoff procedures
 
** logon/logoff procedures
* Multi HID; key and mouse cursor
+
* Win32k stuff (video / keyboard / mouse)
** Mouse drivers needs to support multi cursors
+
** One focus for every mouse & keyboard cursor
** Keyboard drivers needs to support multi cursors
+
** Multi Display Adapters and Display support
** USB driver support to enable more then one set of HID
+
*** Multiple Hardware Displays
* One focus for every mouse & keyboard cursor.
+
*** SplitScreen support for two sessions at the same Screen
* Multi Display Adapters and Display support
+
*** Multiple Virtual Display Drivers that can be associated to a login
** Multiple Hardware Displays
+
*** TSDDD Framebuffer Display Driver
** SplitScreen support for two sessions @ the same Screen
 
** Multiple Virtual Display Drivers that can be associated to a login.
 
 
* Creating support for different protocolls and inserting the different project into ROS
 
* Creating support for different protocolls and inserting the different project into ROS
 
** UltraVNC
 
** UltraVNC
 
** Telnet server daemon
 
** Telnet server daemon
 
** xrdp project - simple RDP server
 
** xrdp project - simple RDP server
** X-Server for ReactOS (please note, this is incorrect.  The X Server is actually the machine that displays the programs in X, so if we were comparing the functionality of an RDP Server in X terminology, this would be an X Client)
 
  
 
== Thoughts for hardware ==
 
== Thoughts for hardware ==
Line 43: Line 39:
  
 
== Thoughts about VNC ==
 
== Thoughts about VNC ==
** Extend VNC protocol to allow access to local client's drives
+
* Extend VNC protocol to allow access to local client's drives
** Extend VNC protocol for print files to be sent across in standard format (possibly Postscript?), then at client converted to printer-specific format, to allow printing to client's preferred local printer
+
* Extend VNC protocol for print files to be sent across in standard format (possibly Postscript?), then at client converted to printer-specific format, to allow printing to client's preferred local printer
** Possible addition of audio support to VNC?
+
* Possible addition of audio support to VNC?
** Possible extention to VNC to allow it to operate through Proxy servers with Java/executable clients
+
* Possible extention to VNC to allow it to operate through Proxy servers with Java/executable clients
** ReactOS can detect "broken" sessions due to network disconnection, and retain session for client to reconnect from another computer/when network begins working again.
+
* ReactOS can detect "broken" sessions due to network disconnection, and retain session for client to reconnect from another computer/when network begins working again.
** VNC is built into display Kernel of React, so all video messages are captured and quickly and efficiently sent across internet, reducing lag and server overhead.
+
* VNC is built into display Kernel of React, so all video messages are captured and quickly and efficiently sent across internet, reducing lag and server overhead.
  
 
Advantage being with VNC over X11 based systems, clients are readily available (down to Java), saving on coding. Protocol is fairly efficient and fast, and allows clients to use ReactOS based servers without installing software locally - locally installed software may not be allowed by client's computer administration policy.
 
Advantage being with VNC over X11 based systems, clients are readily available (down to Java), saving on coding. Protocol is fairly efficient and fast, and allows clients to use ReactOS based servers without installing software locally - locally installed software may not be allowed by client's computer administration policy.
Line 58: Line 54:
  
 
* [http://xrdp.sourceforge.net/ The homepage for XRDP with files released]
 
* [http://xrdp.sourceforge.net/ The homepage for XRDP with files released]
 
* <s>[http://sc.uvnc.com/V2/winvnc+rdp.zip ALPHA test for VNC & XRDP for Windows by UltraVNC]</s>
 
  
 
* [http://www.rdesktop.org/ rdesktop - A Remote Desktop Protocol Client]
 
* [http://www.rdesktop.org/ rdesktop - A Remote Desktop Protocol Client]
Line 68: Line 62:
  
 
* [http://www.citrix.com/ Citrix (they made the first Windows Terminal Server)]
 
* [http://www.citrix.com/ Citrix (they made the first Windows Terminal Server)]
 +
 +
* [https://redcircle.blog/2006/10/15/citrix-and-microsoft-1989-1998/ Citrix and Microsoft (1989-1998)]
  
 
* [http://ultravnc.sourceforge.net/ UltraVNC Project]
 
* [http://ultravnc.sourceforge.net/ UltraVNC Project]
Line 104: Line 100:
  
 
* [http://msdn.microsoft.com/en-us/library/dd644643(v=PROT.10).aspx &#x5B;MS-TSSO&#x5D;: Terminal Services System Overview]
 
* [http://msdn.microsoft.com/en-us/library/dd644643(v=PROT.10).aspx &#x5B;MS-TSSO&#x5D;: Terminal Services System Overview]
 +
 +
* [https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/WinArchive/%5BMS-TSSO%5D.pdf &#x5B;MS-TSSO&#x5D;: Terminal Services System Overview (full PDF, archived)]
  
 
* [http://msdn.microsoft.com/en-us/library/cc248485(v=PROT.10).aspx  &#x5B;MS-TSGU&#x5D;: Terminal Services Gateway Server Protocol Specification]
 
* [http://msdn.microsoft.com/en-us/library/cc248485(v=PROT.10).aspx  &#x5B;MS-TSGU&#x5D;: Terminal Services Gateway Server Protocol Specification]
Line 155: Line 153:
 
* [http://msdn.microsoft.com/en-us/library/ff635423(v=prot.10).aspx &#x5B;MS-RDPRFX&#x5D;: Remote Desktop Protocol: RemoteFX Codec Extension]
 
* [http://msdn.microsoft.com/en-us/library/ff635423(v=prot.10).aspx &#x5B;MS-RDPRFX&#x5D;: Remote Desktop Protocol: RemoteFX Codec Extension]
  
== People who like to help ==
+
[[Category:Ideas]]
[http://reactos.com/wiki/User:Jaix Jaix Bly visionary]
 
 
 
[http://reactos.com/wiki/User:shunt010 shunt010]
 
 
 
[http://reactos.com/wiki/User:slmsistemas?email=tr4d3r_at_null.net Gonzalo Araújo C (Tr4d3r)]
 
 
 
[http://reactos.com/wiki/User:ToM..MaS ToM..MaS]
 

Latest revision as of 15:22, 14 November 2017

ReactOS Win32 personality a fully featured multi user operating system with possibilities to log in several users at the same time with an insulated environment for every login. Every login should be able to access the terminal services from any interface with many different protocolls enabling different possibilities depending on protocol, interface and connecton speed.

Possible Features

  • Multi user environment.
  • Possibility to log on remotely or locally via any interface (Serial, Parallell, USB, Firewire, Modem(Analog, Digital), Network).
  • Possibility to log in several times from the same terminal + some type of fast switching like XP.
  • Possibility to use two or more sets of keyboard, mouse and screen (Human Interface Device/HID) and associate a login to a certain set of HIDs.
  • Possibility to split screen (Horizontal or Vertical) and use two sets of HID one associated to each split section (for computers connected to TV-set).
  • Possibility to use RDP, Citrix, X-Windows client, Telnet or VNC as protocol/client.
  • Possibility to give every login an insulated environment much like vmware.
"Undo-Disks" -> ROS doesn't write do the real harddisk; Snapshot (in German this is called "Datenairbag")
  • Possibility to let a session log in directly to an emulation environment like QEmu, MAME or VICE# to run other Operating System then the Terminal Server or software not compiled for the CPU.
  • Easy management with possibility to take over, see and redirect a session directly from login screen.

Tasks need to be done

  • Multi User Environment
    • Shared Session Memory Space
    • Winlogon+GINA
    • SAS: make win32k notify Winlogon
    • smss: move Kmode loading to csrss
    • csrss: make it support multiple Win sessions
    • logon/logoff procedures
  • Win32k stuff (video / keyboard / mouse)
    • One focus for every mouse & keyboard cursor
    • Multi Display Adapters and Display support
      • Multiple Hardware Displays
      • SplitScreen support for two sessions at the same Screen
      • Multiple Virtual Display Drivers that can be associated to a login
      • TSDDD Framebuffer Display Driver
  • Creating support for different protocolls and inserting the different project into ROS
    • UltraVNC
    • Telnet server daemon
    • xrdp project - simple RDP server

Thoughts for hardware

  • If system revolves around VNC
    • Cheap dedicated hardware possible to build - cost of £20 possibly for a dedicated kit built VNC client

Thoughts about VNC

  • Extend VNC protocol to allow access to local client's drives
  • Extend VNC protocol for print files to be sent across in standard format (possibly Postscript?), then at client converted to printer-specific format, to allow printing to client's preferred local printer
  • Possible addition of audio support to VNC?
  • Possible extention to VNC to allow it to operate through Proxy servers with Java/executable clients
  • ReactOS can detect "broken" sessions due to network disconnection, and retain session for client to reconnect from another computer/when network begins working again.
  • VNC is built into display Kernel of React, so all video messages are captured and quickly and efficiently sent across internet, reducing lag and server overhead.

Advantage being with VNC over X11 based systems, clients are readily available (down to Java), saving on coding. Protocol is fairly efficient and fast, and allows clients to use ReactOS based servers without installing software locally - locally installed software may not be allowed by client's computer administration policy.

Links

Microsoft RDP Specification