Pinterest Stumbleupon Whatsapp
Ads by Google

There’s a grave misconception about the open source world.

Far too many people think that it consists entirely of people working together for a common goal. That those who choose to write code, and give it away for free, are Digital Hippies; bearded, bespectacled, sandal-wearing folks who, if they had never discovered computers, would be sitting around a camp fire, strumming a guitar and singing Kumbaya.

False. Totally, utterly false.

There have been times when serious rifts have emerged in the open source community, which produced bitter feuds, schisms, and bad blood not seen since the heady days of Oasis and the notoriously tempestuous Gallagher Brothers.

But whilst Noel and Liam Gallagher solve their differences with flying fists and witty one-liners, the open-source community instead chooses a (typically) more productive way. Forking.

What Is Forking?

Forking has nothing to do with your utensil drawer. Rather, it relates to the direction an open source project takes.

Ads by Google

forking-fork

Most open source software is licensed under open, permissive licenses Open Source Software Licenses: Which Should You Use? Open Source Software Licenses: Which Should You Use? Did you know that not all open source licenses are the same? Read More that are permit the user to take advantage of the four freedoms of Free Libre Software. The Free Software Foundation describes them thusly:

The freedom to run the program as you wish, for any purpose (freedom 0).

The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.

The freedom to redistribute copies so you can help your neighbor (freedom 2).

The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

When a programmer ‘forks’ a program, they take a copy of some already-written code and treat it as an entirely separate project. They might rename it, and any changes made will only be reflected within that particular ‘branch’.

There are many reasons why a piece of software might get forked. Sometimes, the end-user benefits greatly. Sometimes, the fork is done under a shroud of anger, hatred and animosity. Let’s look at some examples: one good, one great, and one ugly. 

The Good – LibreOffice and MariaDB

In the nineties and early noughties, there was a company called Sun MicroSystems. Sun was a pretty large company, with thousands of employees, and revenue dwarfing the (then ailing) Apple.

Sun Microsystems built a family of processors called SPARC (which, in many respects, had a lot in common with the ARM chips that power most mobile phones and tablets, and some Chromebooks), as well as servers which were powered by them. They also built a huge amount of computer software that is still heavily used today.

forking-sparc

Software like the Java programming language/virtual machine, and the MySQL database. Software like OpenOffice, which virtually ended Microsoft Office’s absolute monopoly.

Unfortunately, all good things must eventually come to an end, and in 2009 Sun Microsystems was taken over by Larry Ellison’s Oracle Corporation.  This spooked the Open Source community, given Oracle’s poor track record for openness and egalitarianism when it comes to free software. This was exemplified in 2010 when Oracle took Google to court for violating their copyrights and patents over the Java programming language used in the Android mobile operating system.

This was the straw that broke the proverbial camel’s back. Members of the open source community took two of the most significant Oracle products, and forked them. MySQL became MariaDB, whilst OpenOffice became LibreOffice LibreOffice - A Free Office Suite For Windows, Linux & Mac LibreOffice - A Free Office Suite For Windows, Linux & Mac Read More .

This move ensured that these products would be able to be used for years to come, whist still under a permissive license and at no cost to the consumer. Crucially, Oracle wouldn’t be able to do anything about it.

Today, LibreOffice LibreOffice - A Free Office Suite For Windows, Linux & Mac LibreOffice - A Free Office Suite For Windows, Linux & Mac Read More is one of the most used office suites in the world, and comes as default with a number of Linux distros;  OpenOffice has been taken over by the Apache foundation and is now known as Apache OpenOffice. MariaDB has similarly had a great deal of success, and has replaced MySQL on a number of Linux distros, including Fedora starting from version 19 Fedora 19 "Schrödinger's Cat" Is Alive And Full Of New Features and Improvements Fedora 19 "Schrödinger's Cat" Is Alive And Full Of New Features and Improvements Joy to the world, a new version of Fedora codenamed "Schrödinger's Cat" has been released! In the past, Fedora has provided leadership in the open source community, holding up to strict open source policies, continuous... Read More .

The Great – Node.js And Node Forward

JavaScript is one of the fundamental building blocks of the Internet What is JavaScript, And Can the Internet Exist Without It? What is JavaScript, And Can the Internet Exist Without It? JavaScript is one of those things many take for granted. Everybody uses it. Read More . Most pages, including this one, use it to present content, handle interactivity and precisely control the user experience.

A few years ago, JavaScript made the leap from the browser to the server with Node.js What is Node.JS and Why Should I Care? [Web Development] What is Node.JS and Why Should I Care? [Web Development] JavaScript is a just a client-side programming language that runs in the browser, right? Not any more. Node.js is a way of running JavaScript on the server; but it's so much more as well. If... Read More

It allowed developers to build servers applications and the back-end functionality of websites with the familiar JavaScript programming language. What made it really special though, was the NPM package manager. Similar to apt-get What Is An Ubuntu PPA & Why Would I Want To Use One? [Technology Explained] What Is An Ubuntu PPA & Why Would I Want To Use One? [Technology Explained] Read More or OneGet Windows Gets A Package Manager - Download Software Centrally Via OneGet Windows Gets A Package Manager - Download Software Centrally Via OneGet Microsoft is adding yet another Linux feature to Windows. Package management can seriously boost productivity, increase security, and ultimately save you a lot of headache. We show you how it will work. Read More , it allowed programmers to install extensions and libraries through a convenient command-line interface. Developers loved it.

forking-joyent

The grand patriarch of the Node world was Joyent, a major cloud-hosting company based in San Francisco. Although Node was open source, it was dependent upon Joyent for financial support, and many started to feel that Joyent had taken the role of ‘Benevolent Dictator For Life‘ and had exerted too much control on the direction of the Node project.

Some core developers, feeling the need for Node to take a more independent direction, forked Node. Node Forward was born.

This schism has been pretty traumatic for the community, but it is hoped that the decision to fork Node will eventually result in a more open, more democratic approach to developing one of most significant software projects in the world.

You can get involved, or follow their progress on Github.

The Ugly – SystemD

Calling systemd controversial is a bit like describing deep fried butter as ‘somewhat unhealthy’. The truth is, systemd almost split the Linux community into two.

But what is it? Well, first, let’s talk a bit about how Linux works. Until recently, whenever a computer running Linux was booted up, it would first launch a program called init. This would run until the computer was eventually shut down, and is responsible for launching your computer and handling orphaned processes.

The problem is, Init isn’t all that great. Mostly because it’s slow. Like, really slow. That’s because it launches tasks serially, or one at a time. For a new task to start, it first has to wait for the last one to finish. Although this might have been a useful feature a long time ago, when computers were chronically underpowered, it’s not really that helpful in 2015, where most computers are multi-core behemoths with gigabytes of RAM.

So, systemd was created. The problem was, systemd broke an important design philosophy of how system tools for Linux should work. Instead of doing one thing, and doing it well, systemd did multiple things besides boot the computer. It sounds innocuous, but in the Linux world it’s as close as you can possibly get to grand treason.

forking-systemd

At this point, the Linux world split into two camps. One which desperately wanted to ditch the old, slow, and outdated init daemon. The other strongly objected to systemd as a matter of principle, and didn’t want it to be anywhere near their Linux machines.

Things got heated.

Bloggers decried what would be the ‘end of Linux’ as they knew it. Linus Torvalds, creator of the Linux kernel, went so far as to ban a key systemd developer from working on the Linux kernel, although he later stated he had ‘no strong thoughts’ on the systemd controversy.

With the schism in the Linux world gaining column inches in the technology press, griefers and trolls took note and started causing mayhem in a number of major Linux mailing lists and forums.

As more and more distros announced they’d be moving to systemd, a group of frustrated programmers took matters into their own hands and launched a systemd-free fork of Debian called Devuan.

Spins and derivatives of existing distros aren’t exactly rare, but by all accounts Deuvan has picked up an impressive amount of steam. Developers are working hard on a future public release of the OS, whilst the organizers have already started soliciting for donations.

Although the fork of Debian will undoubtedly result in greater choice when it comes to how Linux is used, and may one day become an important player on the Linux landscape, it’s important to remember where it came from. A tumultuous, acrimonious place which almost brought one of the most culturally and commercially significant open source projects to its knees.

A Fork Too Far

The systemd controversy shows that forking can be indicative of a schism, or a deep conflict, within a project. But in the same breath, it can also be a cry of independence from an overbearing, corporate backer. Indeed, forking can sometimes ensure free software remains just that. Free.

What do you think? I’d love to hear your thoughts. Drop me a comment below, and we’ll chat.

Photo Credits: Silver Forks (Nana B Agyei)Forking with HyperBob (HyperBob)img_7809 (Michael Hicks)Joyent welcomes node.js knockout (Nina Baidley),  systemd status messages (Kai Hendry)

  1. dragonmouth
    January 31, 2015 at 8:08 pm

    "the UK is being torn apart by whether we should build a new train line."
    Democracy in action. :-)

    There's something to be said for autocratic rule, in politics as well as software development.

  2. ReadandShare
    January 28, 2015 at 6:09 pm

    The two different approaches of corporate ownership / leadership versus open source / community direction kinda reminds me of two major political systems...

    1. China -- the only system to bring 600 million people out of abject poverty in just one generation -- the only system to build the world's largest high speed rail from scratch in just ten years -- but everyone is expected to march in lock step -- or get out of the way -- so heaven help them if they have a poor leader... Apple?

    2. India -- loud and messy as hell -- slow moving like molasses -- but everyone gets his say and who knows -- when they eventually come up with something cool -- it will be much more sustainable? Gnu Linux?

    • Justin Pot
      January 29, 2015 at 12:47 am

      This is a really interesting metaphor. I'd add to it that if Apple ever fails, its software will likely disappear from the face of the planet – just like if China's government is overthrown, it probably won't be peacefully. Thanks to forking, though, major open source programs will likely continue to exist in some form for decades to come – just like how democracy allows Indian governments to evolve over time, incorporating ideas from various voices and slowly improving.

      Lots to think about.

    • dragonmouth
      January 29, 2015 at 8:42 pm

      "if China’s government is overthrown, it probably won’t be peacefully"
      Not to be picky but "peaceful overthrow" is an oxymoron.

    • Matthew Hughes
      January 31, 2015 at 7:57 pm

      Great comment ReadAndShare. Expanding on the China thing, it's not just the fact that people not keeping with the program are expected to step aside. It's that China can build great, unimaginable things by making unilateral decisions. Meanwhile, the UK is being torn apart by whether we should build a new train line. If it does get built, it will take decades to complete.

      That's, I feel, what the open source world is like.

      Cheers!

  3. dragonmouth
    January 28, 2015 at 4:31 pm

    "systemd did multiple things besides boot the computer. "
    In addition to breaking the rule about doing one thing and doing it well, systemd broke the philosophy that Linux is modular. It combines into one some modules that a segment of the community does not think should be combined because they may not need to be executed.

    "Although the fork of Debian will undoubtedly result in greater choice ................ it’s important to remember where it came from."
    Let us not forget that the arguably most successful distro, Ubuntu, is also a form of Debian.

    Distro forking has caused the Balkanization of Linux. Any wannabe developer can create a new distro by using the chinese menu method. Upon closer examination, many of these forks and spins are only minimaly different from the previously existing ones. A slightly different application mix or slightly different eye candy is enough to cause the development of another distro. As of Monday, 1/26/15, DistroWatch database contains a total of 793 distros, with 287 of them considered active. There are another 245 on the waiting list to be added to the main database. Does anybody really think that there are over 1000 different ways of doing basically the same thing??? Even using the most liberal definition of "unique", does anyone really think that all 1000+ distros are "unique"?

    One of the biggest knocks on Linux is that it does not have the applications that Windows or Mac have. While Linux does have various office suits, database apps, media players, it is lacking many other applications common in Windows/Mac, such as a TurboTax-like app. It would do wonders for Linux acceptance if either the Windows apss were ported or if analogs were developed. So instead of endlessly forking around with distros and getting their 15 minutes of fame, the wannabe developer could leave a more lasting impression on the Linux world if they turned their creative energies to creating analogs to Windows applications. Of course it takes real creativity to come up with an application as opposed to just assembling a new distro from modules.

    • Matthew Hughes
      January 31, 2015 at 7:53 pm

      Salient stuff as always, Dragonmouth. Cheers for your comment!

  4. RLFrost
    January 28, 2015 at 4:27 pm

    Thank you, Matthew, for an informative well-reasoned article. Forking often allows us to evaluate options in ways that mere theory and conjecture cannot. I agree that it is often the reason that we end up with more robust solutions in the FOSS community.

    As for systemd, those who argue that it is a panacea must not be system administrators, or are very lucky administrators who have not seen it simply ignore conflicts in its headlong rush to have the init process over and done. My personal experience is that it is a few revisions-- and some administrative tools-- away from being truly useful. Regarding its extension past the init processes, I think that cooler heads may prevail in the long run.

    In the save vein, anyone who thinks sysv without modification is a final solution must have forgotten the effort required to synchronize the init process as new hardware and faster memory and cpu performance has continually challenged the successful administration of daemon startup.

    I personally think the Devuan guys may be onto something good. If they can bring themselves to use some parts of the systemd code-- or something similar-- and prevent the init process from becoming a monolithic headache, they will have again proven the resilience of free software ingenuity.

    RLFrost

    • Matthew Hughes
      January 31, 2015 at 7:52 pm

      Thanks so much, RLFrost.

      I didn't really want to state my opinion on SystemD. I was planning to just write a dispassionate, factual look at forking. But... Yeah. Systemd's pretty rough around the edges.

      Cheers!

Leave a Reply

Your email address will not be published. Required fields are marked *