Why Linux?

By: Todd Shoemaker

Abstract: Linux offers many features that are of value to Delphi developers. This article highlights some of the features that genuinely distinguish Linux from Windows. By Todd Shoemaker.

For some time now, we've all been reading about Linux in the trade magazines. You've read about how Linux is either the Next Windows Killer or the Next Windows Victim, depending on the publication you've read and the current hype of the month.

On the more rational side, you've probably done some research into Linux and discovered how stable it is, or that it's free (both free as in price and as in freedom of speech), and comes with loads of tools and utilities.

But really, why should you use it? I mean, Windows has its shortcomings, but with a superior development environment such as Delphi, most of its limitations are hidden from you, right? You may be thinking, "I really like the idea of Linux, but what can it do that will really make me bother to use it?"

I thought you'd never ask.

This article is not meant to be an advocacy paper for Linux. Its intent is to show you the main features (in this author's opinion) that your current operating system either can't do at all, or can't perform as cleanly or as cheaply as Linux can. In other words, reasons that will make your cost/benefit analysis make more sense.

Note: Linux is a derivative of Unix, and therefore is the result of almost 30 years of gradual refinement and development. If you are new to Unix and Linux, be aware of the depth of the pool you are stepping into. It can be very bewildering at first, and often frustrating, but keep in mind that the answers are Out There, online and in books. I've been running Linux for the past two to three years, which began as very gradual forays at home, tinkering and learning; the rewards of working with the system are great. As a developer, you will be amazed at how simply the system operates beneath the surface, and how common-sense many of its subsystems are. I won't be going into details on how these features are configured or operated, as there are many books and online documents available to get you started. For general Unix knowledge, and for a good reference to help you as you proceed, I suggest Running Linux from O'Reilly & Associates (www.oreilly.com). If you also want help with setting up and installing a particular distribution, there are now many introductory texts at online and brick-and-mortar bookstores. Finally, don't forget about the many Linux information Web sites available, such as www.linuxdoc.org, www.linux.com, and www.linuxnewbie.org.

The X Window System ( www.xfree86.org, www.x.org)

For the in-house or contract  developer, the X Window System will hands-down be one of the greatest features of Linux. X has been happily running for well over a decade on most Unix systems, and predates Linux by several years. A comprehensive exploration of X is beyond the scope of this article, but for the purposes of this discussion the important part of X is that it provides robust GUI operation over a network.

This system really works well over a network -- it's not just a bolted-on third-party product as would be required under Windows. And since Linux is a multi-user system, many concurrent users can log on remotely and run GUI applications hosted on a single machine. All the client needs is an X Windows graphics server, regardless of the operating system. Several excellent and inexpensive X servers are available for Windows, which gives you flexible cross-platform options for your software without sacrificing usability. The portability of X makes it perfect for thin-client machines on shop floors, or for wireless units in hospitals and other facilities. The remote systems can all be connected to a central Linux machine or cluster where the actual processing takes place. This means that inexpensive hardware can be used on the client -- only the graphics drawing takes place on the client, and all the real processing occurs on the main system. And since database operations take place on the central machine, many network/database performance issues are less of a concern.

Remote operation and administration (www.ssh.com, www.openssh.org)

Because Linux has grown up from the multiuser roots of Unix, everything you can do while physically sitting at a Linux console can be done over a network from down the hall or over the Internet; even GUI applications can be run over a network, thanks to the X Window System. And because this capability is a central part of the system, it doesn't just apply to a few "Enterprise" applications that happen to supply remote access utilities -- every application that runs under Linux can be run from a remote network connection.

Traditionally, the venerable telnet utility was used to log on remotely to Unix machines, but once the Internet became more popular (and therefore more dangerous), various utilities were created to allow secure remote administration. One of these is Secure Shell, which allows encrypted connections between the client and the remote server. A free version of SSH is available at www.openssh.org, and a commercial version can be found at www.ssh.com. This is the perfect system for contractors and central office developers who need reliable connections to remote sites for administrative duties. Software updates, troubleshooting, and even remote backups can be performed over the Internet. SSH is really flexible, and will even encrypt and compress your X Window GUI traffic on the fly.

PC clusters ( www.beowulf.org)

Linux clustering combines PCs linked via a network into a multiprocessor machine. This remains an untapped market, and is primarily used as a cheaper alternative for high-end supercomputer users. However, the great benefactors of this supercomputing revolution will be the much smaller clusters in the range of 10 to 20 processors preconfigured and prepackaged in small cabinets for specific tasks. A large stumbling block to mass-market clustering has been the lack of high-productivity development tools to create and operate clustered applications. With its component architecture and rapid GUI development, Kylix very nicely fills this void and brings RAD practices to cluster development. For time-consuming number-crunching tasks such as image processing, video compression, and 3D graphics rendering, a 10-node cluster in a small cabinet could tear through these operations almost 10 times faster than a single-processor system. And because Linux is free, there are no licensing costs for additional nodes; aside from marginal hardware costs, a 10-node cluster is almost as cheap as a a five node cluster.

Network appliances (Cobalt Networks, VA Linux)

Because Linux allows full operation over the network rather than at the local console, it does not need a dedicated monitor and keyboard to operate properly. As long as a network connection is available, the machine can be fully administered remotely. Companies such as Cobalt Networks (now owned by Sun Microsystems) and VA Linux have been successfully building network appliances to run Web sites, e-mail servers, ftp servers, and file servers from small plug-in boxes. These systems really work; I know of a Cobalt machine hosting almost 50 Web sites and supporting several hundred e-mail users, and it has not been rebooted in over 460 days! And because of the easy Web-administration GUI, this system has been managed by a person with no Unix experience. At prices below $3,000, this is truly the commodity, reliable computing we've been promised for years.

For all classes of Delphi developers, particularly in niche markets, this could really be a dream come true. Using Kylix, one could build an entire web application and pre-install it on either a pre-configured appliance such as a Cobalt server, or an inexpensive custom-built Pentium-class machine. One could then ship the box to the customer with some simple instructions (plug in, turn on, type an IP number) and the application would be available from any Web browser on the client network. With SSH, one could remotely provide onsite technical support, subscription-based remote backups, and other services.

Conclusion

I hope I've shown you some of the really powerful capabilities Linux brings to the table. For years, the main limitation in custom Linux application development was the lack of a comprehensive RAD tool like Delphi for fast GUI development. With Kylix, this limitation is addressed, and by combining the benefits of Delphi with the capabilities of Linux, developers will have a true multiplatform force multiplier at their disposal.

Server Response from: SC4