Open Source

I started out using Unix with BSD, SunOS, and Solaris back when the most prominent GNU projects was Emacs. I got into using Linux when I came to Pico Communications, since as a small startup we’re on a budget and haven’t yet found a reason to justify purchasing a Solaris box. I decided to try Red Hat Linux, since that was the version we had on hand in the office. I’ve moved to Fedora since Red Hat stopped supporting end user Linux.

Because the open source community is, by its very nature, widely distributed, there are no central locations to get all the information about what’s going on and all the latest utilities— though freshmeat.net makes a good try at it, and shows just how much activity there is in the open source world every day! Red Hat makes it easy to get updates if you subscribe to their update service— they even have a cron job that will go out every night and check for new updates.

Background

The Open Source Initiative has a great deal of interesting information about open source software and the community, including the infamous Halloween Documents. Eric S. Raymond’s book The Cathedral and the Bazaar and papers Homesteading the Noosphere and The Magic Cauldron are good reads. David A Wheeler has a paper on Why Open Source Software / Free Software with good quantitative analysis.

News

Slashdot is a very handy news site for all manner of things, including matters significant to the open source community; NewsForge has specifically open source related news. freshmeat.net has news of all the latest open source releases. LWN.net has news from the Linux world. Linux Center and LinuxLinks have lots of other sites to try. UNIXguide.net is similar, but covers all flavors of Unix. Enterprise Linux Today has news for folks using Linux at the large-scale professional level. The Linux Gazette is a monthly online magazine that seems to have forked. I haven’t investigated the Open Source Development Network yet. Root Prompt is a good site for system administration information.

Source

There’s a huge archive at ibiblio. rpmfind.net is a good way to track down any package you’re hunting.

SourceForge (sponsored by VA Linux) is a free service for hosting open source development projects. They have a CVS server, mailing lists, bug tracking, message boards and forums, task management, site hosting, permanent file archival, full backups, and web-based administration for the lot.

Libraries

I’m always interested in effective libraries that can save on development time, and the Common C++ Library looks interesting, with “portable support for threading, sockets, file access, deamons, persistance, and system services.” CoreLinux++ looks like it might have some interesting prospects.

Security

There are good security sites at Insecure.org and LinuxSecurity.com.

Projects

GNU

The Free Software Foundation’s GNU Project, begun by Richard M Stallman (RMS), is one of the pioneers of the open source world.

Operating Systems

The Linux Documentation Project is a very handy starting point for information. Red Hat Linux also run Cygwin, which are Unix tools for Win32. Debian GNU/Linux. SuSe. Mandrake. JustLinux. Linuxprinting.org. Linux Online. The Linux Kernel Archives are handy. Note that Microsoft’s Linux Myths has been debunked. Some articles on Linux at Wired and Fortune. Tux.Org is a site supporting the efforts of users, groups, and developers.

FreeBSD is an alternative to Linux.

Embedded Linux

VMELinux, Embedded Debian, DSPLinux (which deals with the ARM7 and ARM9 processors), ARM Linux, and MontaVista Software’s Hard Hat Linux are for embedded systems.

Infrastructure

PAM, RPM, ...

VNC is a lightweight and free replacement for pcAnywhere; it takes up astonishingly little disk space, and the client and server run on Win32 as well as Linux. I use VNC over a VPN connection to access my machines at work from home.

Windows Interfaces

WINE is an ambitious project to replicate the Windows API on Linux, making it possible to run Win32 applications in a stable environment. TransGaming is using WINE to enable playing PC games on Linux. Bravo!

Samba allows Unix systems to speak the SMB protocol used for file sharing among Windows systems, and to get involved in authentication, printing, and other such activities. It can even mount Windows shares on Unix without a hitch.

Development Tools

gcc

GCC is the Gnu Compiler Collection, an effective compiler that has front ends that can parse C, C++, Objective C, Fortran, and Java, and has libraries for all these languages, including the GNU Standard C++ Library.

Perl

perl and Larry Wall

Java

java (http://www.blackdown.org/, kaffe)

TCL: Tool Command Language

Python

JavaScript

The Mozilla implementation of JavaScript is available. If you’re doing a lot of work with it (such as server-side JavaScript in a web server), check out the undocumented XDR API— it’s handy for caching pre-parsed JavaScript.

Valgrind

If you can’t afford Purify, Valgrind is an excellent open source memory checker.

GUIs

There have been a number of graphical interfaces for Unix systems. I’ve worked with Suntools (which become Sunview and then merged into OpenLook and flirted with NeWS for a while) and X11. X11 is the most common GUI I’ve seen on Unix. X has a server program that accepts network connections, draws on the screen, and sends input events to the programs connected to the server. This naturally slows things down a bit relative to programs that can just draw directly in the frame buffer, but also allows you to do nifty things like run a program on a really fast machine that draws its contents on the screen of a relatively slow one. (This was really handy back in CS 60C at Berkeley when I was able to sit at a Sun 3/60 in the basement of Evans Hall and connect up the Sun 4/280 up the hill at LBL where my afternoon job was.)

X Windows itself is just a way of drawing things on the screen and getting events from the user. People build “widget sets” to abstract notions of buttons, checkboxes, drop-down combo boxes, windows, tabbed dialogs, and so on. Some of the standard free widgets are the Athena widgets; the Motif ones are quite classy in appearance, but more expensive. Projects like GNOME, the K Desktop Environment (KDE) and Simple End User Linux (SEUL) are creating GUI technology and the tools that use it to give Linux a more intuitive user interface.

X Windows usually runs with a “window manager” that handles details of all the windows on the screen— putting title bars on them, handling iconification, things like that. Window managers range from classics like twm (Tom’s Window Manager) to Enlightenment, ...

Applications

Mozilla, ... OpenLDAP.

Emacs

A very powerful editor that has its own dialect of LISP for configuration. It even runs on Win32. There are some nifty Win32 utilities for Emacs at the Tertius Development Group, including a utility for linking Emacs and MS Developer Studio.

Copyright © 2003–4 Max Rible Kaehn — All Rights Reserved.