This article tries to explain why workstations are no longer an appropriate tool for the present working environment, what the alternatives are, and what consequences it has for the development of OSes.
First I would like to explain why I feel competent enough to write this article. I'm a hardware engineer and I work as an EDA (Electronic Design Automation) consultant, this means I often change projects and customers and I'm using UNIX-based environments to get my job done. All the developments, which I describe in following, are affecting me, so probably either they are similar for other engineers not necessarily from the EDA industry, or they will affect them in the near future.
The tool is the same, but the task is changing
Let's step back for a moment and remember how it was just a few years ago. Every engineer had his own UNIX-workstation in his office. All the project data was stored on a file server, so for changing the data, first thing to do was to fetch them over LAN. If the data were coming directly from customer, they were stored on tape, so they had to be loaded on local disk, after that the engineer could start working on them. The workstation was powerful enough to handle the amount of data. If data had to be shared, the engineer stored the data back on the file server, so his colleague could access them. The communication was handled over email or over phone. All electronic correspondence inside the company was using the same data format. The team, who was working on data was present in the same office.
There are at least two developments, which changed this peaceful picture: globalization and flexibility.
Nowadays several engineering teams from all over the world must have access to the project data. That means that the file server can be located anywhere and must be accessible over comparably slow WAN connection. Since several people might work simultaneously on the same data, versioning systems must be used. The amounts of data are increasing rapidly. It takes too much time to fetch them and store on the local disk and write them back after processing. Additional problem is that providing necessary power to process this data to every single engineer is just too expensive. The resources must be shared. These factors lead to conclusion that it might be easier to let the data on server, or just copy them over a fast connection from the file server to the grid of computing servers, which cost less than the certain number of workstation and can be used more efficient. So the only data connection, which is required is a remote display, which let the engineer start the jobs and see the results. X11 has network transparency build in, but the protocol is not very efficient for WAN connections, so better optimized solutions would be Citrix ICA connection. A free solution is e.g. VNC. Another important point is that Citrix clients are available for Windows, MacOSX, Solaris and Linux, so the OS on engineer's desktop is completely independent from the OS being used on the server. Additionally it is possible to share a connection, that means it is possible to see what another Citrix user is doing, that is very nice for solving problems or providing online training. One solution is to provide an inexpensive terminal with slim Linux distribution, which can run Citrix client and possibly RDP protocol to connect to a Windows server, so the user can use software from both worlds. All the production data is stored on UNIX server, all other data on Windows.
Flexibility means for the engineer two things. Being flexible means not only to work on the technical side on the project, but also contribute more, than just processing the data. Today the engineer must write the documentation, meet the international customers and held presentation about the project status, provide training, fill-out various web-based forms, like timecards or expense reports, attend webinars, telephone and video conferences, communicate with other project teams on various channels. He receives several dozens mails a day from colleagues, mailing lists and customers, works on different projects at the same time, and must always learn new things. He is responsible not only for the project itself, but also for the pre- and post-sales support. Another aspect of flexibility means, that the engineer is not longer bound to his office. Lot of companies do offer possibility to work from home, either because they want to be seen as family-friendly, or just want to avoid expensive offices. Some companies do not have enough space for all the employes, so they come to the office only twice a week. During critical project stages the engineer must have possibility to look at the data without making long way to the office. During customer visits he must have lot of data available to be prepared for every question the customer may ask. To fulfill all these demands the engineer must use a notebook with a OS which helps him organize all the data, which are project related, but which are not production data.
So the combination of these two trends shows that the ideal platform for a nowadays engineer is a notebook with a modern desktop OS, installed VPN and Citrix or VNC client. He can connect it to a broadband connection and have access to the server for working on project data or use the applications of the notebook OS for all the communication and office related work.
What kind of consequences does it have for the development and usage of operating systems?
We can draw a very sharp line between the server OS and the desktop OS. Both systems have completely different demands. From the view of user the server OS is visible in his Citrix client window as an application. In fact it is comparable with a WebOS, which are running in a browser window. Server OS must be stable, reliable and scalable. It must run on big servers, handle lot of load and users, support virtualization, be fault-tolerant and self-healing. The windows manager must be simple, but still effective enough, to help handling several open windows and terminals in a session with a resolution and color depth as small as possible to minimize the network traffic, but still large enough to display all relevant data.
There are already server-only OS, like zOS, VMS or OS/400, but our definition would declare also AIX, HP-UX, Solaris and all BSDs as server OS (Note: I don't mention Linux here, it is a special case). There are lot of minimalistic window-managers and desktop environments available (CDE, FVWM, WindowMaker), which comply with the requirements described above. Which leads us to the question, which software is required for a serverOS? Obviously programs for the work on the project data are needed. Then a development environment with a tool chain to be able to write programs for the OS. A web-browser with PDF-plugin and an IMAP-based email program for simple communication. What software is not required for it? No advanced communication software, no multimedia programs, no office-software, no bloated desktop environments like KDE or GNOME, no 3D-acceleration, no search software, nothing what might disturb the user or the computer system from work. The ideal case would be, if the home directory of the user would stay empty, all the project data are stored in project directories in versioning systems, accessible for other project users.
On the other hand the desktop or notebook OS must have every feature which helps the engineer to organize his work and should help him to be able to communicate with every possible client and manage all his data. He should be able to read and write every document format and be able to access every website. International customers might send him documents in every possible format and he cannot reject it, with an excuse that's because his desktop OS does not have an application, which is able to read it. The stability and reliability do not play a very important role. If the system crashes, it is still possible to connect to the Citrix session and continue working. Currently there are only 3 OSes which to some degree support these demands: Windows, MacOSX and Linux.
By using Windows the chance to have all the programs for communication like VoIP, IM, video-conferencing is higher than on other platforms. Windows-based application like Microsoft Office are used by most customers and non-technical departments in the company. OpenOffice is available for Windows as well, in case that somebody is sending ODF data around. It is sad, but there are still lot of web-forms, which are used in Intranets and which work only with Internet Explorer. For group-ware functionality Exchange-Outlook is still the most popular combination. Multimedia plugins and codecs for all relevant formats are available. Windows Vista has integrated search, which helps to find documents and emails on the basis of different criteria, for earlier Windows version applications like LookOut or Google Toolbar can be used. Windows supports Unicode and lot of different char-sets, which is also important, since customer from Eastern Europa or Asia might use different char-set on their web-page or in the email.
MacOSX is also able to read and write most of the popular formats. It has its problems with multi-platform groupware-functionality and while VoIP and text-messaging with different IMs is possible, video-conferencing with a Windows user might become a bigger problem. Not every web-page can be viewed with Safari and if Microsoft removes VBA-functionality from its next Office for Mac software version, all the Excel tables with Macros cease to work. MacOSX has very advanced searching capabilities and is good suited for writing of documentation, especially because of the build-in PDF creator, so the documents can be viewed on all platforms, even on server OSes.
Linux can be used as server and as desktop OS. While optimized distributions make good shape on server, the Linux desktop still has a long way to go to become as helpful for the engineer as Windows. All the arguments, which are valid for MacOSX, are valid for Linux even more. Even if the company is pure open source and uses only standardized document formats and communication paths, the customers might not and there must always be a way to be able to read everything, what a customer might send. Group-ware solutions on Linux are available, but the Exchange support is fluky, MSOffice-Macros might sometimes work with OpenOffice most of the time they do not, I'm not aware on any cross-platform videoconference software which is available for Linux. Codecs and plugins are often not available as well. Recently Linux also got a search-engine. But the advantage of Linux is, that it is possible use the notebook as development machine and run the code on Linux server, without recompilation. It is possible to demonstrate software and provide training on the notebook, without having connection to the server.
Due to the change of the working environment workstations are not the right tool to do the job anymore. They are too expensive, can be used only by single user, the data amount is too large to be downloaded and processed. Better solution is to leave the data on server and send them through fast network on computing grid. As control station either a terminal or a notebook can be used. Notebooks offer better flexibility as it can be used for work from home or during traveling. ServerOS should not be optimized for desktop usage but concentrate on such tasks like reliability, stability, scalability. Only lightweight windows managers should be used to save the bandwidth and processing power. The OS on the notebook must be able to help the engineer to communicate, manage his data and organize his work. Windows is currently the most advanced OS for these tasks, but Linux's advantage is, that it is flexible enough to be used as serverOS and on desktop.