As a follow up to Sridhar's post about Future of XenApp for UNIX I'll like to dig a little deeper on what options there are for publishing Linux applications and desktops though the existing Citrix UNIX product offerings.
There are a variety of methods on how this can be achieved and they are all generally variations on the use of XAU/CPSU as a broker to serve the Linux applications/desktops to ICA clients from the environment they are run in.
The simplest way to achieve this is to use separate Linux servers to run the applications/desktops and publish the mechanism to access these on the XAU/CPSU server. Any of the existing platform versions of XAU/CPSU (Solaris x86/x64, Solaris SPARC, AIX POWER or HP/UX PA-RISC) can be used in this method. The publishing mechanism is commonly a shell script that uses remote shell access (eg rsh, ssh) which is made easier if network user accounts are available but this is not a requirement. Other things to think about is session load balancing, if a multi-server XAU/CPSU farm is used to broker session there are advantages to tying individual Linux servers to particular XAU/CPSU servers. If there are differences in the performance characteristics of the Linux servers this can be evened out through XAU/CPSU load balancing tools.

A variation of the above is to make use of Solaris 10 x86/x64 Linux Container technology. This is a capability introduced in Solaris 10 where Linux applications are run in a Linux container on the Solaris 10 system. A Linux Container is effectively a Solaris kernel with Linux kernel interfaces (system calls, /proc, etc) with standard Linux distribution user-land components (utilities, etc) and Sun claims a high-level of binary compatibility with Linux distributions. In this variation XAU/CPSU can be installed on the same Solaris 10 x86/x64 server that hosts the Linux Container and through shell scripting mechanisms already mention access to the Linux applications/desktop can be achieved. Now that Solaris 10 x86/x64 is officially supported on HP, IBM and Dell hardware as well of course on Sun's own x86/x64 hardware there is a range of hardware vendor supported options here.
Another variation is the use one of the x86/x64 server virtualization solutions to virtualize both the XAU/CPSU and Linux servers. The requirement here is the support for both Solaris x86/x64 and Linux x86/x64 virtual machines. The example below shows how it might be achieved with XenServer virtalizing Linux and Solaris 10 servers once Sun completes their paravirtualized kernel and drivers. However, any other server virtualisation technology that can virtualize the Linux and Solaris servers can be used to provide a similar solution.

Options in this area are appearing all the time and and some may well warrant investigation. One recent announcement from Transitive offers capabilities to run Solaris SPARC binaries on Linux x86/x64.
So I hope I have shown there are ways to architect a solution to publish Linux Applications/Desktops with existing XAU/CPSU offerings but do please do tell us what you think.
Comments (5)
Apr 03, 2008
Russ LeBar says:
Rsh is inherently insecure and should be avoided. Additionally, using it will li...Rsh is inherently insecure and should be avoided. Additionally, using it will likely not meet PCI DSS compliance. I'm inclined to say you would be better off not mentioning it. Regarding ssh, one easy solution is to use hostbased authentication between the XAU server and the Linux server.
I have not used Solaris 10 x86/x64 Linux Container technology but from what I have read it is not ready for production use, does not keep up with Red Hat releases fast enough, and vendors are unlikely to support running their software in that environment.
Similarly, Transitive's solution looks very nice but application vendors are once again unlikely to support that environment. Heck, that likely includes Citrix.
Overall a nice article but it should be split into two sections -- one with solutions that likely almost anyone could use and then a second section that deals with the unsupported and/or less secure solutions.
Feb 03, 2009
Anonymous says:
Looking for help to print on local printer of client machine from application ru...Looking for help to print on local printer of client machine from application running on Linux environment from application published on citrix as per above solution.
Feb 03, 2009
Joanna Farley says:
The XAU server user interfaces for accessing client printers are the ctxlpr and ...The XAU server user interfaces for accessing client printers are the ctxlpr and ctxprinters utilities that reside on the XAU server machine. These are documented in the XAU administrator's guide. What you need to do is use the remote shell capability (rsh, ssh) to run these on the XAU server from the Linux application server. You will most likely need to create a shell script on the Linux box that your application can call that invokes a remote call to ctxlpr. Data to print can be passed in a file if you have a common file system name space on the XAU and Linux servers (eg NFS mounted file system ) or you can pipe the data over the shell stdin stream to the ctxlpr utility invoked remotely on the XAU server.
A good place to ask further questions on this if required is on the XAU User Forum pages:
http://forums.citrix.com/forum.jspa?forumID=4
Aug 18
Francis Thaon says:
Joanna Why it is so difficult to have Citrix supporting a Linux published deskt...Joanna
Why it is so difficult to have Citrix supporting a Linux published desktop on Xenapps for Unix server.
Using your container type of solution does not adress the problem.
Is there any dates to have XAU running on a Linux server and providing linux desktops directly without going to ssh type of connectivity in the background where you are loosing print , shadowing etc ....and impacting graphical performance ?
thanks
Francis
Aug 21
Joanna Farley says:
Hi Francis,We have exchanged email on your comment but for the blog I repea...Hi Francis,We have exchanged email on your comment but for the blog I repeat my reply here. The issue with releasing a Linux version is not due to any technical reasons its purely a business reason. We need to weigh off the resources to engineer a complete solution against the opportunities, especially when there are a lot of demands on our engineering resources in other areas.However, I've brought your request to my colleague Sridhar (also a XenApp blogger) who is the XAU product manager (I'm XAU engineering manager) as he is monitoring the level of demand for XAU on different platforms. What I suggest is that readers of this blog who have a definite Linux requirements to let us know as this situation is reviewed periodically.The use of the proxy method I appreciate is not perfect. You can get the use of local client printing working but you do have to make use of ssh to route information between the Linux and XAU boxes with the use of ctxlpr etc. This can work for other features as well. Joanna
Add Comment