Documents  
What is Open Source Software?   
A step-by-step tutorial on the philosophy of open source and how to install and use Linux, Apache, and Samba.
@Copyright 2003 - The Bill & Melinda Gates Foundation

Open source software is software that is free to use without the restrictive licensing of many types of commercial software. No restrictive end user license agreements (EULA), activation codes or worries about keeping your libraries software “legal”. Often the Open source software is available for little or no cost and the source code is available to be reviewed and modified by the end user. The tradeoff is that any modifications to the source code that is distributed must be shared openly with the open source community.

Why use open source software in your library?

This is both an easy and hard question to answer. Let's start with the easy answers:

  • Open source software is free

In a time of budget deficits and cutbacks, in state governments and funding for libraries being cut, money for technology is scarce. Anything that can help libraries do more with less is a huge benefit for the public.

  • Lower total cost of ownership (TCO)

Since Linux is free and there is no need for client access licenses (CAL) for every computer that connects to the server, the savings also apply here.

  • Lower hardware costs

Since Linux does not require as much “horsepower” as Windows to run efficiently, and with the increased speed of modern desktop computers, one can save money by purchasing a desktop for $500 and get enough hardware power to run a Linux-based server easily.

  • Security

Linux has a pretty good track record in security, and with Mandrake, Red Hat, and Suse, security updates are very easy to do.

  • The technology is excellent

Open source software technology is equal to or better than commercial software. A few examples that come to mind are the operating system Linux, the Web server Apache, the file/print server Samba, and the office suite OpenOffice.org. Pretty much anything that a library needs or wants to support public access computing is available in open source. For those who are wary about changing operating systems, many open source programs (like the ones mentioned above) work in or with Linux, Macintosh OS X, and Windows.

A few reasons why many libraries are wary of moving to some open source programs are (the hard answers):

  • It is not familiar

Most computer users have been trained on the various Windows operating systems, and getting users accustomed to a different interface does require training and patience.

  • The perception that the software is not as easy to install and use

The reality is that installing the Linux operating system and the additional software needed for public access computing is as easy as installing Windows. The KDE and Gnome graphical interface (think Windows) makes using Linux easy to adjust to. There is little need to remember the command-line commands (think DOS). However adding software that is not part of the initial install can be difficult at times.

  • Compatibility with Windows

If the Windows main product is Microsoft Office, then OpenOffice.org is about 95 percent compatible with Office. If you absolutely must use Office (most people do not), then Office can be made to work with Linux using Codeweavers' CrossOver office.

  • Lack of software

Photoshop, many games, and most Windows software will not run on Linux, yet. However, there are a many programs that have similar functionality to the more popular commercial products (GIMP instead of Photoshop or OpenOffice.org instead of Microsoft Office.) But it is reasonable to assume that not everything available in the Windows world is available for Linux.

  • Quality

Is free software really any good? Quality and price often have nothing to do with each other. I could name 10 high price software applications that were awful and hard to use. One would really have to try hard to question the quality of Apache, Samba, and OpenOffice.org. Many open source applications are peer-reviewed by hundreds of talented programmers. That process often provides a degree of quality control and security that rivals a lot of commercial software.

  • Technical support

There are fewer tech people who understand Linux in comparison with the Windows tech support, but that is changing every day. There is also a growing online user community that is available to provide some technical support and guidance.

  • There are too many Linux distributions, which one do I use?

Choosing from dozens of Linux distributions can be daunting. Concentrate on the more popular distributions from Red Hat, Mandrake, and Suse, and your Linux install and experience will be smooth. I will be using Mandrake 9.0 for the following examples because I think that it is the easiest to use.

If you have decided to make the plunge into the open source world but need a little help, here are a few instructional guides to make your transition to Linux easier.

Creating a Web Server using Mandrake Linux 9.0 and Apache

  • Boot from CD. (You may have to change the boot order in the BIOS.)

  • Press Enter to install or wait 10 seconds.

  • Wait while the installer searches for your hardware.

  • By default, United States English is the language choice. Click OK.

  • At the license agreement, click Accept.

  • Make sure Recommended is selected and click Install.

  • Select Erase entire disk to allow Linux to configure the hard drive for you. A message warning that “All data will be lost” will appear. Do not worry about this message.

  • Click OK.

If setting up a dual-boot system with Windows and Linux is desired you would select Custom disk, Partitioning, and install Mandrake in an empty partition or hard drive. To make sure that Windows and Mandrake work well together, just remember to install the Windows OS first.

Package Group Selection

This is the hardest part of the installation and the most important. Using the basic rules of security, only install the programs that you are planning to use on the computer. My suggestions for a Web server install are:

  • Select Configuration, Console Tools, Web/FTP, Database, LSB, and Individual package selection.

  • Deselect Gnome Workstation and Internet Station and click OK.

  • In the left pane of the next screen, double-click Workstation.

  • Double-click Office Workstation.

  • Scroll down and uncheck koffice and click OK. OpenOffice.org will be the default office suite.

  • Scroll down and double-click Internet station.

  • Select Mozilla and click OK. Mozilla is an open source Web browser similar to Netscape Navigator.

  • Scroll down and double-click Configuration.

  • Select Webmin and click OK. Webmin is a Web- based graphical user interface (GUI) for many of Mandrake's server administrative functions.

  • Scroll down and double-click Server.

  • Scroll down and double-click Web/FTP.

  • Select apache-manual, mod_sxnet,php, php-mysql.

  • Click OK.

  • Deselect Proftpd. If your network needs an FTP server, ignore this step.

  • Double-click Database.

  • Select MySQL.

  • Click OK.

  • Deselect postgresql.

  • Click OK.

  • Click Install.

  • At the “Do you really want to install these servers?” warning, click Yes.

  • Insert additional CD's when prompted.

Setting passwords, network settings, and desktop

  • At the Set Root Password dialog box, enter a secure password. Remember it!

  • Press Enter.

  • Next, enter a non-root username and password and click Accept User. It is very important that Linux users do not log on as root to carry on normal every day tasks like surfing the Web or checking e-mail. If a mistake is made in root, it could ruin your machine.

  • Click Done.

  • Click No at the auto login feature.

  • Click OK to allow Mandrake to search for network devices and configuration.

  • Click OK.

  • Input the IP address in the dialog box and Click OK.

  • Enter Host name “your name.your domain.org” and click OK.

  • At the summary box, you should change the time zone by clicking America/New York, scrolling down and selecting Tijuana (or the proper location/time zone for you).

  • Click OK.

  • Select Automatic Time Synchronization (using NTP).

  • Click OK.

  • Click the down arrow and choose the closest United States time server.

  • Click OK twice.

  • Choose your monitor and click OK.

  • Choose the monitor resolution and click OK.

  • If prompted with “Is this the correct setting?” Click Yes.

  • On the next screen you will have the option of installing the latest updates. Click Yes.

  • Click on United States and choose the mirror (location) closest to you. You may have to wait a few minutes.

  • Accept the defaults and click Install.

  • Click OK.

  • Remove CD. The computer reboots.

  • Login as the non-root user and configure the desktop.

  • At the Welcome to First Time Wizard, click Next.

  • Click on the Drop down menu and choose KDE.

  • Select KDE Redmond and click Next.

  • Click Cancel to exit the registration screen and to finish the installation.

What is Apache?

Apache is a standard Web server and is one of most popular open source applications. More than 60 percent of Web sites are hosted on some version of Apache and can be run on Linux, Mac OS X, and Windows (Windows installation instructions are included below). There is a lot of technical support and instruction available either online, starting with the manual accessible through the Apache welcome page, or in books. Novice users can easily reference these resources, if they need help. More information about Apache is available at http://www.apache.org.

During the Linux installation you also installed the Apache Web server. To see if Apache was installed properly:

  • On the Desktop, click “K”>Networking>WWW>Mozilla.

  • In the location bar, type http://localhost

  • If the Apache Web Server software is installed properly, you will see a welcome page indicating all of the modules that are running on the server. At this point, all you would have to do is add your HTML files to Document Root directory on the hard drive (In Mandrake 9.0, it is located at/var/www/html. The default page is Index.html). For a basic Web server serving one Web site, the job is completed.

  • For more advanced uses of Apache, one has to manually edit the configuration files using a text editor, or use a GUI such as Webmin in order to change the Apache configuration. In Mandrake Linux, the configuration files are located at /etc/httpd/conf/httpd.conf (main configuration file) and /etc/httpd/conf/commonhttpd.conf (minor stuff). For users new to Linux, I recommend using Webmin to configure Apache until you are comfortable editing configuration files.

Using Webmin to configure Apache:

  • On the Desktop, click “K”>Networking>WWW>Mozilla.

  • In the location bar, type https://localhost:10000

  • Click Continue and accept the certificate.

  • In the Login to Webmin dialog box, type in root as the username and the root password as the password.

  • Click Login.

  • Click No.

  • Click the Servers tab.

  • Click the Apache icon.

  • Click the Configure button.

  • Downloading and installing the Apache Server to a Windows 2000 Computer

  • Browse to http://httpd.apache.org/download.cgi

  • Download the latest version of Apache by double-clicking the link that is the Win32 Binary (MSI Installer). File Download box appears.

  • Make sure that Save this file to disk is selected and click OK. Save As dialog box appears.

  • Make sure that you are saving the file to the desktop and click Save.

  • Once the download is completed, click Open. Apache HTTP Server 2.0 - Installation Wizard dialog box appears.

  • Click Next.

  • Select I Accept the terms in the license agreement.

  • Click Next.

  • Click Next again.

  • Enter your domain name, server name and e-mail address and click Next.

  • Click Next 2x.

  • Click Install.

  • When completed, click Finish.

  • Testing the installation

  • Open Internet Explorer.

  • Type http://localhost in the address bar and press Enter.

  • If you see the Apache test page then the Web server is installed correctly. Congrats!

To display your Web site, all you have to do is to copy or upload your Web site to the server root of c:\Program Files\Apache Group\Apache2

Creating a File/App/Print Server using Mandrake 9.0 and Samba

What is Samba?

Samba is the standard file, application, and print server used on Linux. Most Linux distributions like Mandrake and Red Hat have Samba available for installation along with the operating system. Samba has been described as the “stealth” Linux application because of its ability to share files, printers, and even act as domain controllers on Windows networks. Part of the “stealthiness” of a Samba is that the Samba server looks and operates like a Windows file server to the end user. The advantage of that kind of interoperability is that there is little additional training needed for the average person to use Samba.

The installation of Samba is almost the same as creating a Web server on Mandrake. The only difference is the selection of packages to be installed.

Package Group Selection for Samba

  • Select Configuration, Console Tools, LSB, and Individual package selection.

  • Deselect Gnome workstation, Web/FTP, Database and Internet Station, then click OK.

  • In the left pane of the next screen, double-click Workstation.

  • Double-click Office Workstation.

  • Scroll down and uncheck koffice.

  • Scroll down and double-click Internet station.

  • Select Mozilla and click OK.

  • Scroll down and double-click Configuration.

  • Select Webmin and click OK.

  • Scroll down and double-click Other and select samba-swat. This will install Samba automatically.

  • Click OK.

  • Click Install.

  • At the “Do you really want to install these servers?” warning, click Yes.

  • Insert additional CDs when prompted.

  • Using Webmin to configure a Samba server:

  • On the Desktop, click “K”>Networking>WWW>Mozilla.

  • In the location bar, type https://localhost:10000

  • Click Continue and accept the certificate.

  • In the Login to Webmin dialog box, type in “root” as the username and the root password as the password.

  • Click Login.

  • Click No when asked to remember password.

  • Click the Servers tab.

  • Click the Samba Windows File Sharing icon.

  • Click the Create a new file share link.

  • Under share name, type Files.

  • Under directory to share, type /home/non-root user/Files.

  • Click Create.

  • Click the Convert Unix User to Samba users link.

  • Accepting the defaults, click Convert Users.

  • Click Return to share list.

  • Click Configure automatic Unix and Samba user synchronization.

  • Check all three choices.

  • Click Apply.

  • Click Samba Users and Passwords

  • Select the non-root user you created.

  • Uncheck No Password required.

  • Select New Password and type in the same secure password used for the non-root user.

  • Click Save.

  • Under Global Configuration, click the Windows Networking icon.

  • Under Workgroup, replace MDKGROUP with Workgroup.

  • Under Security, use the drop-down arrow and select Share level.

  • Click Save.

  • Click Restart Samba servers.

  • Close Mozilla.

  • Using the Samba Server from a Windows 2000 computer.

  • From the Windows desktop, double-click on My Network Places.

  • Double-click Entire Network.

  • Double-click Microsoft Windows Network.

  • Double-click the Workgroup “workgroup.”

  • Double-click the Samba Server.

  • Double-click the Files folder and when prompted, enter the non-root username and password.

Open Source Philosophy

These are the main tenets of open source software given to us by Bruce Perens, one of founders of the open source movement. Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:

  • Free redistribution

  • The license shall not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license shall not require a royalty or other fee for such sale.

  • Source code

The program must include source code, and must allow distribution in source code as well as compiled form. Where some form of a product is not distributed with source code, there must be a well-publicized means of obtaining the source code for no more than a reasonable reproduction cost, preferably downloading via the Internet without charge. The source code must be the preferred form in which a programmer would modify the program. Deliberately obfuscated source code is not allowed. Intermediate forms such as the output of a preprocessor or translator are not allowed.

  • Derived works

The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.

  • Integrity of the author's source code

The license may restrict source code from being distributed in modified form only if the license allows the distribution of "patch files" with the source code for the purpose of modifying the program at build time. The license must explicitly permit distribution of software built from modified source code. The license may require derived works to carry a different name or version number from the original software.

  • No discrimination against persons or groups

The license must not discriminate against any person or group of persons.

  • No discrimination against fields of endeavor

The license must not restrict anyone from making use of the program in a specific field of endeavor. For example, it may not restrict the program from being used in a business, or from being used for genetic research.

  • Distribution of license

The rights attached to the program must apply to all to whom the program is redistributed without the need for execution of an additional license by those parties.

  • License must not be specific to a product

The rights attached to the program must not depend on the program's being part of a particular software distribution. If the program is extracted from that distribution and used or distributed within the terms of the program's license, all parties to whom the program is redistributed should have the same rights as those that are granted in conjunction with the original software distribution.

  • The license must not restrict other software

The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open source software.

  • The license must be technology-neutral

No provision of the license may be predicated on any individual technology or style of interface.

Note:

Bruce Perens wrote the first draft of this document as "The Debian Free Software Guidelines," and refined it using the comments of the Debian developers in a month-long e-mail conference in June, 1997. He removed the Debian-specific references from the document to create the "Open Source Definition."

Copyright © 2000 Bill & Melinda Gates Foundation Revised July 31, 2000

Information Technology Class Handbook Section 3


Contribute to this topic
Do you have an article, presentation, or other content to share on this topic?
You can post it on this topic page. Find out more about submitting documents in the Member Center.
Ratings You must be signed in to rate this item
Average (1 Vote)
Comments