SEAWA Workshop 29 November 2001

The Open Source Powered Office

Saving money and headaches in your office with free software

Presented by Jeremy Malcolm from Terminus Network Services

Open Source Software

Definitions - free software, freeware, open source

Free software and open source software are synonyms. The concept of free or open source software is not new; it has in fact been around for longer than 30 years. Open source software is not only free of cost, but also free of other restrictions. For example, the complete source code must be made freely available so that it can be collaboratively developed by thousands of software authors from around the globe.

The primary strength of open source software is that it is not the outcome of a secretive process from a software engineering sweat-shop, but rather is the result of the collaboration of a widely distributed group of enthusiasts – some paid, but most unpaid – who write the software for their own use, for enjoyment, for recognition, or simply for the benefit of their peers in the so-called "free software community".

Free software is not the same as freeware. Netscape Navigator is free to use, but it withholds from its users many other freedoms – such as the freedom for users to modify the software or to sell it. Netscape 6, which was released this year, is derived from a new version of the product called Mozilla, which is currently under development. Mozilla is open source software, which means that it is not only free to use but also to modify and distribute.

The philosophy of open source

The Free Software Foundation is the principal advocacy group for the free software community. It has published a number of essays justifying why open source software is necessary, and why proprietary software is not only inferior but in fact morally wrong. Without beating around the bush, the open source philosophy is fundamentally incompatible with the philosophy that supports software copyright. The essential points of the free software movement are:

Support for open source software

Many businesses are reluctant to make the move to free software on the grounds that software that is not supported by a large commercial software company such as Microsoft is likely to contain a greater number of bugs and be less widely supported. In fact the reverse is usually true, as you will know if you use both Microsoft software and open source software.

In comparison to commercial software, bugs are generally much fewer and much more quickly corrected in open source software. The reason is that there are a greater number of developers (thousands, in some cases) working on each program, enabling bugs to be isolated and removed much more quickly than in the case of a commercial product to which only a select number of developers have access to the source code.

Also, support is in general more readily for open source software than for commercial software, firstly because the many users of open source software provide support to each other (generally for free), and secondly because there are no restrictions imposed by the software developers on those who may provide support for their products on a commercial basis.

Operating systems

Linux and its variants

Linux is the most popular (although not the first) of a number of free Unix-like operating systems. Its development began in 1991 when Linux Torvalds wrote the first Linux kernel as a student at the University of Helsinky. He based the operating system on Unix, which had been developed during the early 1970s but which was most commonly used on larger computers whereas Linux was designed for PCs. The operating system was paired with a suite of free utilities mostly written by the Free Software Foundation or released under its free software licence (the GNU Public License). Now, most Web sites on the Internet have Linux running behind them, and it is making its incursion into business information systems as well.

Some of the benefits of Unix and its derivatives over Windows - apart from the free price and open source code - is that they are more robust, efficient, customisable, scalable and secure. The main disadvantage is that they are less ubiquitous and harder to master. However they are rapidly becoming more user-friendly as their user-base widens, with recent graphical operating environments such as GNOME and KDE having made their debut since 1999.

FreeBSD and its variants

FreeBSD is based on the University of California 4.4BSD Lite system which was the free distribution of one of the two original strands of Unix, the other being System V Unix which was originally developed by AT&T (a little more of the history is related below). 1BSD was released in 1977, and 4.4BSD Lite Release 2 in 1995. FreeBSD was first released in 1993. It aims to be a stable unix system for the Intel architecture.

OpenBSD and NetBSD are other variants of 4.4BSD, the main difference between them being that OpenBSD has a greater emphasis on security, and that NetBSD supports more architectures. Otherwise, the BSD-based Unixes are broadly compatible.

Yahoo's servers run on FreeBSD, and some of the systems behind Microsoft Hotmail also do. For while, FreeBSD was a better server operating system than Linux because of its superior networking stack and faster virtual memory system. With the 2.4 Linux kernel, this is no longer the case as Linux now outperforms FreeBSD in the majority of cases.

The main difference between Linux and FreeBSD is the licence of the two operating systems. FreeBSD's licence allows the open source code to be incorporated into proprietary software. The GNU Public Licence which covers Linux does not allow this; if you include GPL-licensed software in a new program you are obliged to licence that new program under the GPL also. For that reason the GNU General Public Licence has also been described as the General Public Virus.

Solaris and other non-free open systems

Solaris is a System V-style Unix, like Linux. To back-track a little, the original Unix development occurred at AT&T as an unofficial project of a couple of programmers in 1969, with the first release of the Unix Programmer's Manual being in 1971. Some of the Unixes that were released based on this original code include include SGI's IRIX in 1982, SCO's XENIX in 1983 which was the first Unix system to run on PC hardware, Ultrix in 1984, HP-UX in 1986, SCO Unix in 1989, IBM's AIX in 1990, and Sun Solaris in 1991, the same year that Linux was released.

The original claim to fame of Solaris was its support for symmetric multiprocessing, which is something that Linux now supports also. However an area in which Solaris still excels is that it allows you to plug and play CPUs on the fly, without shutting down the system. You can do the same with SCSI devices, memory, network cards and so on, and even upgrade parts of the operating system kernel without rebooting. Solaris also allows you to create independent virtual systems that are completely isolated from each other (FreeBSD is well suited to this also).

Since last year, Solaris 8 has been available for free in binary form for any computers with eight or fewer CPUs. However you cannot distribute these free binaries, as users have to agree to Sun's licence before they can use the system. For this reason, Solaris does not qualify as free software.

Linux binary compatibility is included in the Intel version of Solaris although not the Sparc version, however most common Unix software can be compiled to run under Solaris. If your business is too scared to use a completely user-developed operating system, Solaris may be an acceptable half-way house.

Migration from Windows

Speaking of half-way houses, most businesses are probably not at the stage where they would feel safe in dropping Windows support completely. However this does not mean that you need to devote any of your hardware to Windows exclusively. There are a number of ways to run Windows software on your Linux systems.

Proprietary solutions - vmware, Win4lin

vmware is a commercial PC virtualisation system for Intel architectures. There are versions of vmware which allow you to run not only Windows but also Linux and FreeBSD inside a Linux system. There is also a Windows version of the product which you can use to run Linux or Windows inside Windows.

A vmware virtualised Windows is slower than running the real operating system, but the compatibility is very good. Only software which accesses the hardware at a very low level won't work with vmware; this includes most DirectX software such as games and some multimedia applications. Also, because most of your PC's hardware is emulated, you can't necessarily use all of the features of your sound card or graphics card with vmware, and you may not be able to use all of your peripherals. A particular advantage of vmware is that you can either install Windows fresh into a vmware virtual system, or you can boot up an existing Windows partition into vmware.

Win4Lin is a lighter-weight product than vmware, which puts your Windows files in a directory on your Linux system, so it is not able to utilise an existing Windows partition. The performance penalty is less under Win4Lin than under vmware, and some software actually runs faster under Win4Lin than under native Windows. The trade-off is that compatibility is not as complete; there are for example some network programs like Napster that have difficulty under Win4Lin, and there are known problems with some multimedia software and games. Also, Win4Lin can crash not only your Windows system but also the underlying Linux system, which is something that vmware does not do.

Free solutions - WINE, plex86, bochs

WINE is the only solution which does not require a licensed copy of Windows, although it can utilise a Windows installation if you have one. WINE stands for WINE Is Not an Emulator, because strictly speaking it isn't. It is a free implementation of the Windows APIs, which will allow you to run some Windows software natively under Linux. It can run both Win16 and Win32 applications. There is a pre-release version of WINE 1.0 available now. If your software runs under WINE at all, it will usually run at a reasonable speed, and if you test it out thoroughly with your application and everything appears to work, then it will probably be pretty stable.

Plex86 is, in simple terms, a free reimplementation of vmware. In fact its previous name was freemware. Bochs is a slightly different idea, in that it is a true Intel x86 emulator, rather than a PC virtualisation system. That means that it doesn't attempt to run any code natively on the processor, it emulates everything in software. The original developer of Bochs was employed by MandrakeSoft to work on Plex86, but he has since been retrenched so the long-term status of Plex86 is looking a bit shaky.

The main problem with Plex86 is that it lacks stability, and the main problem with Bochs is that it lacks speed. Also, unlike WINE, if you want to run a licensed operating system inside either of them, you do need to buy a licence for that operating system. At the end of the day, my best advice is that you try all of the options and see which one works best with the Windows software you need to use.

Dual-platform applications (Netscape/Mozilla, StarOffice, WordPerfect)

There is a lot of software that runs on both Windows and Linux, some of which is freeware and some of which not. It is quite possible to run an office on dual-platform software, so that both Linux and Windows desktops run side-by-side, and there are various approaches you can take in order to achieve this. Amongst the most commonly used dual-platform software includes:

Apart from running pre-compiled software which is available for both operating systems, there are at least four other ways in which to achieve dual-platform compatibility. There are:

The end result

Desktop environments - KDE, GNOME

At this point in the proceedings, it is time for a guided tour of the GNOME and KDE desktops. What you are aiming to achieve in deploying Linux on the desktop is in providing a computing environment that people will use productively. Do not overestimate the differences between Windows and Linux, and do not underestimate the average computer user's indifference towards the more fundamental underlying differences between those operating systems.

Both desktop environments are now stable, at least on a par with Windows 2000 and XP, and almost to the standard of stability of Linux server software. In general, GNOME is more configurable than KDE; for example, GNOME's toolkit is themable. KDE is more like Microsoft Windows than GNOME, which pleases some users and annoys others.

KDE supports fewer development languages than GNOME, but has been ported to Microsoft Windows (using CYGWIN) which may give you more scope for running dual-platform software than GNOME allows. (Note that the software must also be portable to Windows by recompilation under CYGWIN; you cannot expect to run Linux binaries under Windows.)

Office suites - OpenOffice.org/StarOffice, KOffice, GNOME Office

OpenOffice.org is an open source project utilising the code from Sun StarOffice. The software is sometimes known as OpenOffice although it cannot actually be described by that name, for legal reasons. The OpenOffice.org software runs on Windows and Linux, and is based on the same codebase as StarOffice 6.0 which is now in beta.

StarOffice 5.2 contains several components which the OpenOffice.org software and StarOffice 6.0 lack; these are email, scheduling and database management. Both versions of the suite do offer word processing, spreadsheet, graphics and presentation.

GNOME Office was originally designed to be a single office suite comprising word processor, spreadsheet, database, and so on. The developers have now decided to be more agnostic about which applications to include, and hence we now have a selection of applications available in each category. This makes it a little more difficult to support than office suites with only one application for each purpose. Amongst the applications that are included in GNOME Office include Abiword for word processing, Gnumeric spreadsheet, Evolution for email and scheduling, GNOME-DB for database management, GIMP and Sketch for graphics, Toutdoux for project managmeent, and Achtung for presentation.

Koffice is a slimmer offering with only KWord, KSpread and KPresenter as its core components. There are other KDE components which fill that out a bit with mail and graphics.

Applixware is a proprietary office suite which has been available on Unix for years, it also offers word processing, spreadsheet, database, email, graphics and presentation. WordPerfect Office is also available from Corel, although most of that package is really native Windows code running under an integrated version of WINE.

Internet applications

The most popular browsers available for Linux are:

All other imaginable Internet applications are available in open source, as they were in most cases developed in open source before commercial implementations were even written. But the exceptions to that rule, the applications that were originally proprietary such as Napster and ICQ, are also supported with Linux ports.

Groupware/collaboration

Evolution is the GNOME groupware suite which features peer to peer calendaring support using the iCalendar protocol, LDAP address books and contact sharing using the vCard protocol. It does not support any document management functions.

StarOffice 5.2 offers a schedule server which allows real-time transparent sharing of calendaring and task information, although this support is being discontinued with StarOffice 6.0 and OpenOffice.

Offering a broader subset of groupware functionality, Lotus Domino is available for Linux. It is of course a commercial application but a very mature one which a wide support base, and needless to say is dual-platform.

phpGroupware is a Web-based groupware product written in PHP, which is a Web application server and development environment. So far it includes calendaring, mail, tasks, project management, Web upload for intranets, and discussion, but it is designed with a modular component-based architecture that allows for the easy addition of new functions.

There are a large number of other Web portal systems which fit more or less within the definition of groupware. These include Jetspeed, Metadot, PHPNuke, Eridu, more.groupware and TWIG. These generally include at least discussion, email and news features, and may also include calendaring and task management.

Back office systems

Email/fax

The classic mail server for Unix is sendmail. Traditionally sendmail has had a lot of bugs and security issues, which require its administrator to keep up with the latest patches and upgrades. It has also been the most difficult mail server to configure. However, it is regarded as the most capable and configurable mail server, such that if there is something you want to do that you can't do with any other mailer, you can probably do it with sendmail.

On Linux, smail used to be a better choice because it was functionally compatible with sendmail but offered much simplified configuration files and better security. smail is not being very actively maintained any more, and exim has essentially taken its place. Exim also offers more features than smail such as database integration.

Other alternatives are qmail and postfix, which are both good for sending mail in large volumes. qmail is less functionally compatible with sendmail, if that is important to you, whereas postfix, like exim and smail, are essentially a drop-in replacement. If you have software that expects to work with sendmail, it may not work with qmail. qmail and postfix have been designed to be secure, which is something that sendmail has traditionally not been, although its latest version ameliorates the worst of the underlying security issues.

Openmail is HP's mail server, which is free to licence for under 50 users, and its main claim to fame is that it allows sharing of Microsoft Outlook calendaring and task data. It does have very high resource requirements though, so unless you really need an Exchange compatible mail server, Openmail probably isn't your best choice.

Database (PostgreSQL, MySQL)

PostgreSQL and MySQL are the two most popular relational database products for Linux. PostgreSQL supports a greater subset of the ANSI SQL specification, and scales much better than MySQL. Some of the advanced features that PostgreSQL has that MySQL lacks include foreign keys and transactions (although transactions are being added to MySQL).

MySQL used to have an edge on PostgreSQL in speed, but the latest PostgreSQLhas made gains on speed and is now a superior choice to MySQL for most purposes. MySQL does have the larger user base, however, and works better under Windows.

Directory services (LDAP)

LDAP can be used to store data accessed by a range of different services on the system, including login account data, directory data for StarOffice and Netscape, roaming user profiles for Netscape, and any other typed and ordered information about objects. LDAP can replace X.500 which is an older directory standard, NIS which is an older Unix standard for user information (the Sun Network Information System), and NDS which is the Novell directory system.

There are a number of LDAP browsers; gq is the one I use. In most cases however the LDAP browsing function will be bundled with another product such as Evolution, Netscape or StarOffice.

Backup

The widest-used system for tape backup on Linux systems is AMANDA. Like many similar products, it does not actually implement many new protocols for network transport or for storage on tape, but simply packages the basic Unix tools such as tar, cpio, gzip, dump and restore. The advantage of doing this is that the archives created are more portable between systems.

If you prefer to back up to a filesystem or CD, there are a wide variety of other free products available. The one that I use is called hostdump, and it weighs in at less than 50k in size.

There is a well-tested commercial product called BRU which competes in the same space as Backup Exec, and other proprietary products include Arkeia, Bakbone, NovaNET and Uniback.

Base system installation

Distributions of Linux - Red Hat, Debian, others

There are a variety of different "distributions" of Linux available, some free and some proprietary. The most popular distribution is Red Hat, because of the commercial support it offers included in the price of its boxed product. However this workshop will concentrate on the Debian distribution of Linux, which is an entirely free distribution and is preferred to Red Hat by many experienced Linux users. I think it is also easier than Red Hat to keep up-to-date and secure.

Red Hat uses rpm packages for easy installation of pre-compiled applications (but rpms can also be used with other distributions as Red Hat Software has released the specification to the public domain). Debian uses deb packages, which are similar in concept but can't generally be used with other distributions. The Red Hat package management program is called rpm (there are graphical front ends for it called glint and gnorpm), and the Debian equivalents are called dpkg and apt (there are friendly front-ends called dselect and aptitude).

Many of the other distributions available derived at some stage from Red Hat. Mandrake is one of these, although it no longer has as much in common with Red Hat as it used to. It is designed for newer machines and aims to provide the newest versions of most packages (which is an area in which Debian falls down). Other good quality and widely used distributions include Caldera OpenLinux, SuSE and TurboLinux. There are also distributions designed for specific architectures such as Yellow Dog Linux for the Macintosh, and distributions for specific purposes such as Mitel SME Server and Smoothwall as "set and forget" firewalls.

The kernel

Strictly speaking, the only thing that is really Linux is the kernel. The rest of the operating system is a hotch-potch of software from all over the place, such as GNU (the free Unix project) and BSD Unix. The kernel is a bit like io.sys from MS DOS, it communicates with the hardware at a low level.

It is a good idea to compile a kernel customised for your particular system. Otherwise, you are stuck with the kernel that was compiled by the packager of your distribution, and which contains a lot of junk that you will never need (for SCSI, PCMCIA, ISDN, etc). As the kernel is loaded into memory at all times (except for loadable kernel modules, which are a comparatively recent invention) it is a good idea to keep the kernel lean.

Directory structure

Unlike a DOS or Windows system, the directory tree of a Unix system is pretty much the same from one system to another. The main top-level directories are:

If the system has more than one hard disk, these directories can be on any hard disk you want. Unlike on a DOS or Windows system, there is only one unified file system although the files may be spread over multiple hard disks (or even multiple computers). Every user of a Unix system has a username and a group, and every file on the system has read/write/execute attributes for the users and/or groups who are allowed to access it. Unlike DOS attributes, "read-only", "read/write", "execute" and any combination of attributes can be set separately for different users.

The filesystem native to Linux is most commonly ext2fs, but there have been some recent development of filesystems that add additional features. ext3fs and reiserfs both add journalling. ext3fs is backward compatible with ext2fs and is probably a better choice for most purposes; it has recently been integrated into the official Linux kernel. There are also filesystems that provide encryption, as will be noted below.

The shell

Here are some other differences between common DOS and Unix commands:

DOS

Unix

ren or rename

mv

copy

cp

del

rm

dir

ls (or "ls -l" for long format)

attrib

chmod

chkdsk

fsck

type

cat

find

grep

edit

vi

However many other commands are the same or similar (eg. cd, rmdir, mkdir, more, echo, file redirection and pipe commands and symbols). DOS was, after all, largely inspired by Unix. A couple of the more immediately noticeable differences are that in Unix capitalisation matters and directories are referred to with forward / rather than backslashes \.

Networking

TCP/IP, alternatives

A Linux network will generally run TCP/IP. You can use Windows machines in the same network running NetBIOS over TCP/IP. You can also run IPX/SPX on your network if you need it to interoperate with Novell machines, or Appletalk (natively or over IP) if you have Apple machines on your network.

You have a wide variety of choices on the transport layer as well; you are not restricted to ethernet but can use token ring, wireless ethernet, ISDN and ADSL as long as you have the hardware to support it.

SMB, Netware file and print sharing

Samba is the open source product that offers file and printer sharing and Windows NT domain services for Windows machines on your network. Its file sharing speed actually exceeds that of Windows itself. Samba can also read shares from Windows machines.

Mars_NWE provides Novell Netware compatible file and print sharing in both directions. NetaTalk is the equivalent product for Apple file and print sharing services, although there is no currently maintained method of sharing from an Apple system back to a Linux machine. With Mac OS X which is essentially a unix system, this is unlikely to pose a problem any longer.

Native network file systems: nfs, coda

NFS is a network filesystem that allows you to import and export parts of your filesystem tree across computers transparently. Like sendmail, NFS has had a tradition of security problems. If you maintain it properly, these problems can be managed, but you should never run NFS on a machine that is accessible from the Internet.

CODA is a network filesystem which adds some advanced features such as background replication and disconnected operation, to support mobile users. Support for NT/Windows 2000/XP is in development, and Windows 95/98 support exists, but is not yet as stable or user-friendly as it will eventually be.

Security principles

Your system can be as secure or as insecure as you like with Linux. With Windows, you don't have that choice.

Whilst security is not always mandatory, you do need to make a conscious assessment of your security requirements. The Linux Security HOWTO classes security principles into the following categories:

In general, you should never send your password over an insecure network. Neither is it a good idea to use telnet over such a network for remote logins. SSH is the product that you should use instead, and it such a flexible solution that you can use it to encrypt any traffic across your network. You can also quite easily set up an encrypted virtual private network with Linux using either PPTP (which is a Microsoft-proposed standard) or IP-SEC.

It is also a good idea to immediately subscribe to at least one security mailing list, so that you will be informed as soon as anyone knows of a security problem with any of the software you are using, and what you should do to fix it.

Graphical environment installation

X Windows

The X Window system is a cross-platform standard for a network-transparent graphical user interface system, first released in 1986. It works on a client-server principle, whereby the server (which displays the graphics) and the client (which runs the application) may be on entirely different computers. The server is generally the machine that you are sitting at, whereas the client may not be.

Thin clients

Using this principle, it is possible to run a full-featured graphical windowing environment on even a 386 or 486 by setting it up as a thin client. This predates Microsoft's terminal services by over a decade. There are a number of ways of achieving this. One of them using GNOME is to change Enable to "true" in the [xdmcp] section of /etc/X11/gdm/gdm.conf, and then add the following line to /etc/inittab on each client:

7:23:respawn:/usr/bin/X11/X vt7 -query serverhostname

This will then cause the X server program to run on terminal 7 (the graphical terminal) on the client, receiving its screen contents from the serverhostname machine.

Desktop environments and window managers

Before KDE and GNOME came along, there were a variety of window managers for the X Window system, but these really just provided minimal "window dressing" to X applications. They did not do what Microsoft Windows did, which was to allow applications to communicate with each other using technologies such as OLE (Object Linking and Embedding), ActiveX and COM (the Component Object Model).

The first desktop environment of all was CDE, the Common Desktop Environment, which was created as a joint venture by IBM, Novell, Sun and Hewlett Packard for their proprietary Unix systems. It was launched in 1993 and introduced various technologies that acted as glue between applications and the desktop, enabling operations such as drag and drop and providing unified systems for configuration, help and application development.

GNOME and KDE began their development at around the same time as each other, but KDE developed more quickly. Its main problem was a licensing issue with the GUI toolkit it utilised, Qt, which rendered KDE incompatible with the GPL. This led to the Free Software Foundation lending its support to the GNOME project as a competitor to KDE. GNOME eventually settled on the GIMP toolkit (GTK+) as its GUI API.

KDE's licensing problems have since been sorted out, and both environments are now quite mature and compare favourably with Microsoft Windows in all respects. Gnome is at version 1.4 and KDE is at version 2.2. The differences between GNOME and KDE are more important to developers than end-users.

Window managers are still commonly used either alone or in conjunction with one of the desktop environments. The most popular Window managers include Enlightenment, Sawfish, Blackbox, Afterstep, Windowmaker and ICEWM.

Limitations

Hardware

Hardware support for Linux does lag behind Windows. Even now, not all USB devices are supported, including some common Canon scanners and devices such as USB TV tuners. Internal modems are not properly supported. Not all printers are properly supported.

The reason for this is that hardware manufacturers generally do not write drivers for their software for Linux, and often do not even release full specifications. As a results of this Linux developers have to figure out how the hardware works and write their own drivers, which takes time and volunteer effort.

Accounting

Accounting software is one of the only business applications that is poorly supported under Linux. For personal finance, GNU Cash is an excellent choice. GNU Enterprise aims to provide a framework for the development of applications such as enterprise accounting, but it is not quite there yet. So for the time being we are restricted to Web-based dual-entry accounting systems, which include SQL-Ledger and XIWA. Both are promising, but far from a Quickbooks or MYOB, let alone anything beyond that.

Fonts

Truetype fonts can be used with Linux, but the process is still fairly tricky. You can't, under any distribution that I am aware of, simply open the fonts folder and drag the fonts in there, like you can with Windows. You have to separately enable the truetype fonts to work with Ghostscript, which is the printing system, and with X Windows to display them on your screen, and again in order for them to work with StarOffice.

Questions/demonstrations

Any questions? Questions that cannot be asked during the workshop can be directed to terminus@terminus.net.au.

Demonstrations will include: