Linux Application Development For The Enterprise (Charles River Media Programming)
| < Day Day Up > |
|
Introduction
This chapter will introduce the Linux™ operating system to the Enterprise software users who are not familiar with it. The development of Linux took place almost parallel to Microsoft® Windows®. It began as a fun project by a student named Linus Torvalds, who made the fruits of his efforts available to fellow programmers as open source. Later on, the enthusiastic programmer community extended its full cooperation. Linux is a UNIX-like operating system. The term UNIX-like means that the architecture of the operating system is based on UNIX, and hence most of the commands, system calls, and features match those of any other UNIX clone. The main difference is that the entire operating system is originally written, not copied or sublicensed from the UNIX sources. Today’s Linux is the result of hard work by several thousand entities across the globe. Some of them are individual programmers contributing directly to the development of the operating system and its utilities and to the open source community; some are organizations that developed prominent software packages and solutions either for free, for a fee, or under commercial licensing terms; some are publishing houses that produced a large number of support publications such as books, manuals, and documentation; and some are authors who spent enormous amounts of time in the exploration and research needed to provide high-quality articles and books. The source code for Linux is freely available to anyone who wants to modify or extend the functionality. It is not the goal of this book to discuss the licensing terms under which the Linux operating system may be used or how its source code may be obtained for modifications. All such information may be obtained from vendors such as Red Hat™ and SuSE™ or any other Linux vendor.
Because Linux inherited most of its features from UNIX, a veteran UNIX programmer or user will have little difficulty in using the operating system. In fact, for many UNIX-based professionals who are gurus in command mode, Linux may seem overwhelming with its rich features, particularly the Windows-like features such as the graphical desktop, the use of a file manager to browse the contents of the file systems, the ability to drag and drop selected files from one window to another or to the desktop, the ability to launch an application from the desktop panel or application menu or by double-clicking an icon on the desktop, and so on.
Similarly, a typical Windows-based programmer will find the graphical desktop features familiar because they are already using such features in Windows, but the rich set of commands available in command mode is certainly worth exploring. It is important to keep in mind that Linux evolved with UNIX-like architecture and was developed mostly by UNIX-based developers, and that a graphical desktop in Linux is a visual aid for those users who prefer to work with graphic objects rather than execute commands at a command prompt. Also, using the graphical desktop is entirely optional. In fact, many Linux users would rather use the command mode alone, due to its inherent advantages such as faster execution, familiarity with the commands, and so on.
It is amazing to see that today’s Linux is as powerful and as easy to use as Windows, if not more so. At the time of writing this book, Linux is the only operating system that runs on a variety of hardware platforms, including portable computers, desktops, midrange servers, and mainframe computers. This means theoretically we can build applications on portable computers and deploy them later to any other platform—such as an IBM™ mainframe—that is running the Linux operating system.
The following list highlights some notable Linux features.
-
Linux offers today’s industry a very powerful operating system that is the result of efforts from several developers, provides a competitive alternative to Windows as a desktop as well as server, and is also a competitive alternative to any UNIX clone as a server. However, the discussion that follows is merely an attempt to remove any myths in the developer community about the Linux operating system by exposing its features on a technical basis. It is not the author’s intent to compare it with Windows or with any other UNIX clone. Each operating system has its own merits and demerits, as recognized by the user community.
-
Vendors such as Red Hat, SuSE, and MandrakeSoft™ are making substantial efforts and investments to make this free operating system robust and trouble free. Linux is as complex as any other operating system. But the main difference between Linux and other commercial operating systems is that anyone can make contributions that will enhance its functionality or eliminate problems. Therefore, there is always an ongoing development process and a continuum of work being done for Linux in some part of the world. This process enhances the current version, but it may also introduce potential bugs that may break the existing functionality, even though there is stringent quality control performed by various organizations and individuals in the process. This is where the role of Linux vendors mentioned earlier (and others not mentioned here) comes into play; they test each set of packages along with the kernel before they release it to the public. Whenever they release a new version of Linux—whether minor or major—they make sure (within their scope) that the packages included within the release do not break each others’ functionality. They may even try to fix bugs in the kernel itself or modify some of the packages to ensure a certain standard of quality. Thus if you get Linux from a vendor such as Red Hat or SuSE, you can expect a certain level of quality control that you might not find if you download the kernel and other packages yourself and try to install Linux on your system. You may face problems during installation and you may not get enough support on the Internet to address the specific problem you are facing. However, if you obtain Linux from one of the vendors mentioned before, 80 to 90 percent of your installation and compatibility problems would be automatically solved, and remaining problems (if any) can be solved by obtaining help from the vendors directly. In fact, the most recent releases of Linux from these vendors are almost problem free, and installation is amazingly simplified.
-
In other words, although Linux is freely available to anyone either in binary form or the source code, if you want to be comfortable with the installation and later use of a particular version of the kernel (and associated packages), it is recommended that you obtain a copy of Linux from one of the vendors mentioned earlier (or any other vendor not mentioned here). On the other hand, if you are an enthusiastic and adventurous programmer and want to experiment with the free versions from the Internet, you may certainly do so, but be prepared to face hurdles during installation and later use. The latter approach will help you become knowledgeable about the internals of the operating system over a period of time. With the former approach, although you would have to spend more time learning operating system internals, you would also have the backing (and support) of a vendor, even though you may have to pay for it, depending on the support options you choose. The fact is that Linux offers you a choice you don’t have with the other commercial operating systems. An additional advantage with Linux is that you don’t have to pay licensing fees for multiple copies if you intend to install Linux on more than one PC from a single copy of the distribution. Typically, what you would be paying the vendors is the cost of distribution, which may be viewed as a fee for their work in making use of Linux trouble-free. Most of these vendors charge additional fees for support and technical training, even though there might be an initial installation support included with initial purchase of the distribution media.
-
It is also important to note that in addition to the operating system, some of the commercial software vendors also have made special versions of their software available with substantially reduced or no licensing fees. For example, the Star Office™ package from Sun Microsystems™ and WordPerfect® office suite from Corel™ (which contain office applications similar to Microsoft Office) and the rapid application development (RAD) tool Kylix™ and commercial grade relational database system InterBase® from Borland® have special editions available on Linux at substantially reduced prices or with no licensing fee. The applications mentioned here are just a few of those available; there are also many vendors not listed here, but the use of whose software is worth considering.
-
It is now time to discuss some of the open source development organizations—such as GNU and KDE—that have made substantial contributions to the Linux world over the past several years, and produced state-of-the-art quality software for you to use free. These groups do not charge a licensing fee, but donations that allow them to continue their work are welcome. In fact, it is likely that without the desktop environments created by these open source communities, Linux would have remained a server-level operating system like UNIX and might not have entered the desktop market in competition with Microsoft Windows and Mac OS®. The organizations initially concentrated their work to deliver a top-quality desktop system similar to Windows and Mac OS and later to develop several commonly used desktop applications. Again, with Linux, you have a choice of using software from commercial vendors or from these open source organizations.
-
Another open source community that is committed to provide quality products is the Apache Software Foundation. Apache has developed the prominent Apache™ Web server, which runs on a variety of platforms including Microsoft Windows, Linux, and UNIX. Many commercial Web servers are basing their Web server products on the foundations laid by Apache Web server and then adding their own features. Another subsidiary project from the Apache Software Foundation is the Apache Jakarta™ project which is dedicated to developing Java™-based open source tools such as the Tomcat engine to serve Java Servlets™ and Java Server Pages™, and the Struts™ package implementing the Model View Controller (MVC) framework for developing Java/JSP-based Web applications. These products are also available on a variety of platforms including Windows, Linux, and UNIX. The Apache Software Foundation may be reached at its Web site (www.apache.org), and the Apache Jakarta project may be reached at its Web site (jakarta.apache.org).
-
Another open source community that is contributing a number of projects for different platforms is the SourceForge, which can be reached at www.sourceforge.net. In addition to those mentioned here, there are other open source communities serving Linux platform users. The strength of these open source communities is the quality of their products and the popularity they are gaining in the Enterprise market because of the enormous savings that arises from not having to purchase licenses for their commercial counterparts. For example, the Jakarta Struts framework has almost become the de facto standard for a typical Java-based Web application in many Enterprises, while the Apache Web server has already gained a considerable portion of Web server market and is one of the very stable Web servers today. The Linux user community should be very grateful to these open source communities for their commitment to creating cost-effective Enterprise-class solutions.
-
The Linux operating system is not limited to open source application development or fun/game programming alone. Users can develop and deploy Enterprise-level applications like any other commercial operating system. In fact, almost all the major software vendors such as IBM, Borland, Oracle®, and Sun Microsystems have made their popular software available on Linux, as on Windows or on any other clone of UNIX. IBM manufactures a series of mainframe computers exclusively configured for and running Linux. On the personal computer front, Dell® is selling preconfigured Linux-based desktops for the Intel®-based processors. The support from these major vendors and others is only the beginning; they are committed to providing the service to the industry. It is up to the users, developers, or entrepreneurs to decide whether they want to take advantage of this opportunity to implement the cost-cutting measures that will ensure sustained financial strength for their organization or themselves.
-
Linux is becoming increasingly popular in developing countries as an economic alternative to other commercial operating systems, due to the lower licensing costs. Even the developed nations such as the United States can also consider this as an economic alternative, without sacrificing on the power and ease of use.
| < Day Day Up > |
|