Copyright and licences are the mechanisms that allow FLOSS (Free/Liberated/Open Source Software) to exist. But licences alone do not explain the culture and practices that allow this software to get developed and maintained.
As usual, there are many facets to this topic. Here are a few of them.
There is more to Linux and Free Software than Ubuntu. Ubuntu is a software distribution — it collects thousands of pieces of software written by others and makes it work together effectively.
There are many software distributions available for download. (As of this writing, the DistroWatch website lists over 300: http://distrowatch.com/dwres.php?resource=popularity ).
Here are a few popular distributions, and the niches they fill:
- Kubuntu, Lubuntu, Xubuntu: Ubuntu with different desktop environments.
- Debian : Nonprofit distribution. The basis for Ubuntu and many other distributions.
- Red Hat Enterprise Linux, SUSE Enterprise : Commercial open-source Linux for large companies.
- Fedora, OpenSUSE : “community” editions of the above.
- OpenWRT, Tomato : Linux for wireless routers.
- Gentoo : Focuses on compiling programs from source code to suit individual machines.
- Puppy Linux : Runs on older, lower-end hardware.
- Linux Mint : Desktop linux. Currently a popular alternative to Ubuntu.
- Studio64 : Sound editing.
- FreeBSD, NetBSD, Minix : Not Linux at all, but collections of FLOSS that use other kernels.
- OpenBSD: Non-Linux distribution focussed on security.
The source of a distribution’s software is known as the upstream.
Ways to Contribute
Use free software: The more you use FLOSS the more incentive you will have for it to succeed.
Give money: many projects have “donate” buttons on them.
Translate software: the Ubuntu “Rosetta” project is one way to do this. See: https://help.launchpad.net/Translations/StartingToTranslate
Submit and refine bug reports: Distributions have bug pages and so do individual projects. Finding simple test cases for the bugs on these pages can help developers solve problems faster.
Debug software: this is a good way to get into software development.
Improve documentation: You can put tutorials on a blog or improve the official documentation.
Support others: Teach others what you know and help them solve problems. Help those near you get involved with FLOSS.
Offer thanks: Often developers only hear complains and problem reports. Sending e-mails of thanks can feel rewarding.
Write code: The best way to start is to make small improvements in an existing project.
Get political: governments sometimes propose legislation that makes it more difficult for FLOSS to exist. One current example is the new Copyright bill, C-11.
Here are some of the sociological aspects of FLOSS projects you may encounter.
Do-ocracies : In many cases decisions are made by those who put in the work.
Transparency : Most open-source projects favour making development and communication totally public. Issue trackers and mailing lists are usually accessible to anybody who is interested.
Benevolent Dictatorships : Many projects accept their founders as “rulers for life”, with the understanding that if they annoy their users/contributers too much then the project will be
Coding Standards : Often there are strict rules about formatting contributions so that a software program with hundreds of contributors still looks coherent.
Community Standards : Some projects have detailed codes of conduct, such as the Ubuntu Community Standards or Debian policies. Some projects have formal constitutions and mechanisms for electing leaders and making decisions.
Geographic Distribution : Most projects have members who participate across the world. As such, electronic forms of communication are the norm, although successful projects often will hold conferences so that people can meet face to face occasionally.
Software is cheap to copy, but expensive to produce (in terms of labour). In some cases volunteer effort is sufficient to keep a project going, but volunteers burn out or move on.
Some successful projects manage to pay developers to work on their software. How is this possible when FLOSS can be given away for no charge?
Drupal is a popular content management system that can be used to create sophisticated websites. It consists of a small core and a lot of modules, which are individually packaged by developers.
Many people make good livings developing websites in Drupal even though the code is free:
- People who know how to work with Drupal can develop websites much faster than those who can’t
- Clients want custom websites for their needs and are willing people to make those customizations
- The barrier to entry is ridiculously low, and there is an easy and natural path for people to make contributions to the project
- As a result, many tools end up being accessible to the entire Drupal community
Red Hat is a for-profit company that was founded in 1993. It became profitable in 2003 and now earns millions of dollars in income every year. It is one of the largest funders of FLOSS, contributing to projects including the Linux kernel and the GNOME desktop environment (which is what Ubuntu uses).
Red Hat releases an expensive product called Red Hat Enterprise Linux for corporate customers. In addition to selling the product it sells support and training. Yet the code that Red Hat uses and creates is free software, and the company strongly advocates the use of FLOSS.
Although Red Hat makes the source code available for free it strongly protects its copyright. Anybody who wants to redistribute Red Hat’s distribution needs to strip Red Hat images and trademarks out of the code first.
There are projects that do release Red Hat code. One of the most popular is CentOS — but CentOS is not entitled to Red Hat support or services, which is important to enterprise customers.
This has many advantages:
- The programs are accessible for hobbyists and students
- Red Hat does not need to concern itself with people who are not its customers
- Red Hat produces FLOSS but has a strong business model
Many projects do not make money, and many developers do not get paid. Of those which do, there are several ways that projects make money:
- Selling support, training, consulting and other services. For example, Ubuntu sells a variety of services to enterprise customers.
- Receiving donations from the public. For example, Wikipedia holds an annual fundraising drive.
- Making deals with companies. For example, Firefox is largely funded via deals with search engines: http://www.mozilla.org/en-US/foundation/annualreport/2010/faq/
- Advertising revenues.
- Receiving contributions from companies that benefit from its project. For example, IBM contributes developers to the Linux kernel.
- Selling closed-source “enterprise” editions of software and releasing FLOSS “community editions”.
- Being owned by rich companies that devote resources to the project regardless of financial benefit (for example, Oracle owns MySQL, Java and several other key FLOSS projects).
- Receiving “in kind” donations. For example, there are sites (Sourceforge.net, code.google.com) that host FLOSS projects for no charge. Distributions such as Debian receive web hosting at universities.
Money is not everything. Projects that do not have a good userbase often do not survive in the free software ecosystem.
Questions to Consider
What is this project’s licence? What rights to contributors have to give to the project when making submissions?
What (if any) written values or standards of conduct does this project have?
What mechanisms do people use to communicate?
How does the project sustain itself? How many people use the project? What kind of community has the project built up around it?
How difficult is it for new contributors to contribute? How welcome are the contributions?
- Identify a project that you might find rewarding to help out. What appeals to you about this project? In what way(s) might you contribute?
- Be sure to register your exploration project topic with Paul by the end of the week.
This work by KW Freeskool is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.