Difference between revisions of "ReactOS Terminal Services"
PurpleGurl (talk | contribs) m (Spelling/grammar/punctuation) |
|||
(10 intermediate revisions by 5 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 | + | 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 protocols enabling different possibilities depending on the protocol, interface, and connection speed. |
− | == Features == | + | == Possible Features == |
− | * Multi user environment. | + | * Multi-user environment. |
− | * Possibility to log on remotely or locally via any interface (Serial, | + | * Possibility to log on remotely or locally via any interface (Serial, Parallel, 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 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 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 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 use RDP, Citrix, X-Windows client, Telnet or VNC as protocol/client. | ||
− | * Possibility to give every login an insulated environment much like | + | * 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") | : "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 [http://fabrice.bellard.free.fr/qemu/ QEmu], [http:// | + | * Possibility to let a session log in directly to an emulation environment like [http://fabrice.bellard.free.fr/qemu/ QEmu], [http://mamedev.org/ MAME] or [http://www.viceteam.org/ 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. | + | * Easy management with the possibility to take over, see and redirect a session directly from the 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 protocols 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 - a 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 extension 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 the client to reconnect from another computer/when the network begins working again. | ||
+ | * VNC is built into display Kernel of React, so all video messages are captured and quickly and efficiently sent across the internet, reducing lag and server overhead. | ||
+ | |||
+ | The advantage of being with VNC over X11 based systems, clients are readily available (down to Java), saving on coding. The 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 the client's computer administration policy. | ||
== Links == | == Links == | ||
* [http://www.microsoft.com/windowsserver2003/technologies/terminalservices/default.mspx Windows Terminal Services] | * [http://www.microsoft.com/windowsserver2003/technologies/terminalservices/default.mspx Windows Terminal Services] | ||
− | * [http://sourceforge.net/projects/xrdp XRDP - A simple open source RDP server for Linux and Windows] | + | * [http://sourceforge.net/projects/xrdp XRDP - A simple open-source RDP server for Linux and Windows] |
* [http://xrdp.sourceforge.net/ The homepage for XRDP with files released] | * [http://xrdp.sourceforge.net/ The homepage for XRDP with files released] | ||
− | |||
− | |||
* [http://www.rdesktop.org/ rdesktop - A Remote Desktop Protocol Client] | * [http://www.rdesktop.org/ rdesktop - A Remote Desktop Protocol Client] | ||
Line 30: | 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 39: | Line 73: | ||
* [http://telnetd.sourceforge.net/ Telnet Daemon] | * [http://telnetd.sourceforge.net/ Telnet Daemon] | ||
− | * [http://pgina. | + | * [http://www.pgina.org pgina (a GPL GINA)] |
* [http://x.cygwin.com/ Cygwin X-Server] | * [http://x.cygwin.com/ Cygwin X-Server] | ||
Line 52: | Line 86: | ||
* [http://support.microsoft.com/kb/186607/en-us/ Understanding the Remote Desktop Protocol (RDP)] | * [http://support.microsoft.com/kb/186607/en-us/ Understanding the Remote Desktop Protocol (RDP)] | ||
+ | |||
+ | * [http://efod.se/media/thesis.pdf Reverse-Engineering and Implementation of the RDP 5 Protocol by Erik Forsberg, Linköpings universitet] | ||
== Microsoft RDP Specification == | == Microsoft RDP Specification == | ||
+ | |||
+ | * [http://www.itu.int/rec/T-REC-T.125-199802-I/en [T.125]: Multipoint communication service protocol specification] | ||
+ | |||
+ | * [http://www.itu.int/rec/T-REC-X.224-199511-I/en/ [X.224]: Information technology - Open Systems Interconnection - Protocol for providing the connection-mode transport service] | ||
+ | |||
+ | * [http://tools.ietf.org/html/rfc1006 [RFC1006]: ISO Transport Service on top of the TCP - Version: 3 (Updated-By RFC2126)] | ||
+ | |||
+ | * [http://tools.ietf.org/html/rfc2126 [RFC2126]: ISO Transport Service on top of TCP (ITOT)] | ||
* [http://msdn.microsoft.com/en-us/library/dd644643(v=PROT.10).aspx [MS-TSSO]: Terminal Services System Overview] | * [http://msdn.microsoft.com/en-us/library/dd644643(v=PROT.10).aspx [MS-TSSO]: Terminal Services System Overview] | ||
+ | |||
+ | * [https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/WinArchive/%5BMS-TSSO%5D.pdf [MS-TSSO]: Terminal Services System Overview (full PDF, archived)] | ||
+ | |||
+ | * [http://msdn.microsoft.com/en-us/library/cc248485(v=PROT.10).aspx [MS-TSGU]: Terminal Services Gateway Server Protocol Specification] | ||
+ | |||
+ | * [http://msdn.microsoft.com/en-us/library/cc248570(v=PROT.10).aspx [MS-TSTS]: Terminal Services Terminal Server Runtime Interface Protocol Specification] | ||
+ | |||
+ | * [http://msdn.microsoft.com/en-us/library/dd357079(v=PROT.10).aspx [MS-TSWP]: Terminal Services Workspace Provisioning Protocol Specification] | ||
* [http://msdn.microsoft.com/en-us/library/cc240445.aspx [MS-RDPBCGR]: Remote Desktop Protocol: Basic Connectivity and Graphics Remoting Specification] | * [http://msdn.microsoft.com/en-us/library/cc240445.aspx [MS-RDPBCGR]: Remote Desktop Protocol: Basic Connectivity and Graphics Remoting Specification] | ||
Line 101: | Line 153: | ||
* [http://msdn.microsoft.com/en-us/library/ff635423(v=prot.10).aspx [MS-RDPRFX]: Remote Desktop Protocol: RemoteFX Codec Extension] | * [http://msdn.microsoft.com/en-us/library/ff635423(v=prot.10).aspx [MS-RDPRFX]: Remote Desktop Protocol: RemoteFX Codec Extension] | ||
− | + | [[Category:Ideas]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | [ | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− |
Revision as of 18:12, 10 July 2020
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 protocols enabling different possibilities depending on the protocol, interface, and connection speed.
Contents
Possible Features
- Multi-user environment.
- Possibility to log on remotely or locally via any interface (Serial, Parallel, 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 the possibility to take over, see and redirect a session directly from the 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 protocols 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 - a 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 extension 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 the client to reconnect from another computer/when the network begins working again.
- VNC is built into display Kernel of React, so all video messages are captured and quickly and efficiently sent across the internet, reducing lag and server overhead.
The advantage of being with VNC over X11 based systems, clients are readily available (down to Java), saving on coding. The 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 the client's computer administration policy.