Software in the Public Domain

   


An ever-increasing amount of Solaris-compatible software is becoming available in the public domain. The main differences between this kind of software and other commercial software are that this software is free and comes with the source code. Conversely, though, formal support often is not available with these products.

Historically, a significant number of system managers have prohibited the use of public domain software because of the "as is" nature of the software, the perceived risk of becoming infected with a virus, and the lack of formal support. This notion is slowly being eroded as the software's usefulness begins to be appreciated and because support for the majority of the packages is now available.

This section identifies some of the more popular public domain software application packages that are available for Solaris environments. Even though these packages are free, many books have been written about them; some of these are listed in the Appendix.

Apache

Apache is a commercial-grade, freely available HTTP (Web) server software package. It was created by volunteers from around the world who worked together to develop the server and its associated documentation. Like other freely available software applications, Apache comes with the source code. Apache runs not only on Solaris , but also on most versions of UNIX as well as Windows NT/9x , NetWare , and OS/2 .

When you connect to a home page on the Internet, there is a good chance that the server providing the Web pages is running the Apache server ”this is the most popular Web server in use. In addition to the Apache Web server, an Apache-SSL Web server is available; it implements the Secure Socket Layer (SSL) protocol and is widely used as a secure Web server. Like Apache, the Apache-SSL Web server is freely available both for commercial and noncommercial use.

Apache is a highly configurable and scalable product. It can run on the largest cluster of powerful computers or just a single PC. It is also modularized and can be easily extended using third-party modules. Alternatively, modules can be written using the Apache module API.

A final feature of Apache, one that frequently was requested by users of the product, is that Apache supports virtual hosts , also known as multihomed servers. This allows the server to distinguish among requests that have been made to different IP addresses or host names even though they are all mapped to the same physical host. A virtual host can be used to receive requests on different URLs, usually with the same IP address, so that different sets of documents are accessed depending on the URL entered (for example, viewing home pages for different clients or members of the company).

Virtual hosts can be either name-based, IP address based, or a mix of the two. Name-based virtual hosts are the preferred method, but they support only HTTP version 1.1 clients (the host names must be registered on the Web, however). A large number of organizations still use IP-based virtual hosts, though, because there remains a small proportion of clients that do not support HTTP 1.1. Because the Internet is running out of IP addresses, the full transition to name -based virtual hosts will be necessary in the coming years .

Apache has proven to be substantially faster and more stable than many other Web server products. It runs on sites that achieve millions of hits per day without suffering from performance or response time problems. Further information and the Apache software itself can be obtained from the Apache organization Web site, http://www.apache.org.

Also see the Appendix for details of further reading material on the Apache Web server, as well as some useful Web sites containing Apache documentation and frequently asked questions (FAQ) lists.

Perl

Perl is a programming language designed to make programming jobs easier. One of the features of Perl is that you don't have to know the language proficiently to write useful programs. The Perl programming language is freely available for commercial and noncommercial use, and has become extremely popular with system administrators and Web developers. It has a wide following throughout the world, with a number of Web sites, newsgroups, and FAQ lists providing a vast amount of help and information (see the Appendix for details of some of these locations and for some excellent recommended Perl reading material).

Although Perl is a programming language, the programs are interpreted rather than compiled, similar to UNIX shell scripts. But it's not just the language itself that has the appeal :There are also Perl modules that can be installed as "add-ons," the most popular one being CGI.pm. This module provides a simple interface for developing Common Gateway Interface (CGI) applications, primarily for use on the World Wide Web. Another extremely useful module is mod_perl, a module that embeds the Perl interpreter directly into the Web server, specifically Apache. This is not really a Perl module, but a module of Apache that provides full access to the Perl functionality from within Apache, something that many third-party suppliers have exploited to gain better performance on Web servers.

Many system administrators have switched from using shell scripts to using Perl because of the additional power that Perl provides, the ease of producing reusable code, and the comprehensive language facilities that are available without a full-blown compiler and linker.

Tcl/Tk

Tcl, which stands for Tool Command Language, is a scripting language that is freely available for download. It combines the advantages of a compiled language such as C with those of a scripting language (ease of learning, no need for compilation, and so on). Tcl reduces overall development time and is excellent for producing small, reliable, reusable pieces of software. The first application to have an embedded Tcl interpreter was a widely popular interactive dialog program named expect ”and, incidentally, also freely available for download. Basically, expect is a Tcl interpreter with additional commands. For example, the spawn command creates a new process and a connection to the process so that other expect commands can access it. The interact command also enables a user to connect to a process interactively.

Tk is a graphical toolkit that was developed for Tcl. This made it easy for developers to write X Window System application software. Both Tcl and Tk are normally provided together as a single collection. Tcl runs on Solaris and most other variants of UNIX, as well as Microsoft Windows and Macintosh platforms.

Having mentioned the Perl programming language in the previous section, it's important to mention that there is a Perl/Tk extension used to write Perl programs with a graphical user interface (GUI). This is a port of the Tk application for use with Perl, and it makes it very easy to draw windows; populate them with buttons , menus , check boxes, and similar items; and have certain functions performed based on different user input.

GCC

Until 1999, GCC was an acronym for the GNU C Compiler, but it was changed to the GNU Compiler Collection because it no longer relates directly to the C compiler. It now also relates to C++, Objective C, Chill, Fortran, and Java.

As of Solaris 2.0 , the Solaris operating environment no longer provides a bundled C compiler with its media release.

The public domain software that is freely available along with its source code requires a compiler to build the products for use on a computer system. The GNU C Compiler fulfills this requirement, delivering not only the compiler but also a comprehensive set of libraries. The GCC package can be downloaded as a prebuilt software package or in its source form for building on the local system. The latest version, for example, is always available from the Web site http://www.sunfreeware.com; it includes compilers for C, C++, Fortran, and Java.

You do need a C compiler to build GCC unless the pre-compiled version is downloaded. As an alternative, however, the mini-C compiler, which is found in the directory /usr/ucb, provides sufficient functionality to compile GCC.

Who Is GNU?

GNU stands for GNU's Not UNIX, an organization dedicated to the provision of free software, supported by the Free Software Foundation (FSF). This organization can be found on the Web at http://www.gnu.org.


Other Popular Tools

This section has attempted to provide information on a number of extremely popular freely available and useful public domain software packages. It is intended to be only a basic introduction, though, because most of the packages have at least one, if not several, books devoted specifically to their use and implementation. Several other products of note are briefly introduced here:

  • Python ”This is another interpreted and interactive programming language that is often compared with Perl, Tcl, and Java. Like the others, it has modules as well as an interface to Tk. Support newsgroups for Python and other useful information can be found on the Web.

  • Emacs ”If you don't like the vi editor, you will probably use Emacs instead. Emacs is an open source editor that is also available in an X Window System version, called Xemacs. Emacs is a popular editor used by developers because it contains modes for use when writing code in a common programming language such as C.

  • Joe ”This is a freely available ASCII screen text editor that users of PC editors will probably feel fairly comfortable with. It contains a number of extensions that emulate other editors.

  • Pine ”Pine, which stands for Program for Internet News and Email, is an email program and a tool for reading, sending, and managing electronic messages. It was primarily designed for novice users, but it is easily configurable to accommodate more experienced users.


   
Top


Solaris System Management
Solaris System Management (New Riders Professional Library)
ISBN: 073571018X
EAN: 2147483647
Year: 2001
Pages: 101
Authors: John Philcox

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net