IT Philosophy ■ The thesis
Somewhere in the FreeBSD source tree sits a subsystem called kernel TLS. It moves encryption of a video stream out of the application and into the kernel, which is why a single machine can serve four hundred gigabits a second of Netflix traffic without setting fire to its memory bandwidth. Drew Gallatin designed it at Netflix, for Netflix, and it took about five years to land in the tree in full.
Nothing required this. FreeBSD's licence asks for the copyright notice and nothing else. Netflix could have kept kernel TLS, and the asynchronous sendfile work, and the unmapped mbufs, and the CAM I/O scheduler, and RACK and BBR, entirely to itself. There is no clause anywhere that would have made a difference, and no lawyer would have had a case.
In three weeks, at EuroBSDCon in Brussels, the sponsor board reads Apple and Arm at gold, Netflix and the FreeBSD Foundation at silver. Nobody made them do that either.
What they all agree on
Start where the argument is quiet, because that part is larger than either side admits.
BSD, MIT, Apache and the GPL all grant the same four things: run the software for any purpose, read how it works, change it, pass it on. All four are approved by the Open Source Initiative. All four insist the copyright notice survives the journey. On the substance of what a recipient may do with the code in front of them, the four documents are in agreement, and anyone who has argued otherwise at a conference bar was arguing about something else.
That is the floor. Below it there is nothing to discuss, because a licence that does not even require its author to be named has stopped being a licence and become an abandonment. Attribution is the condition on which the whole construction rests.
The staircase
Now climb, and watch who leaves.
Step one. Derivative works must carry the same licence. The GPL requires it, and requires it as its defining feature. BSD, MIT and Apache do not. The GPL leaves the staircase here, on the clause it is proudest of.
Step two. Modified files must carry prominent notices saying they were changed, a copy of the licence travels with every distribution, and a NOTICE file, if one exists, must be reproduced. Apache 2.0 asks for all of that in section four, and adds a patent grant in section three that terminates if the recipient starts patent litigation over the work. Sensible provisions, every one, and a certain amount of faff at the point of shipping. Apache leaves here.
Step three. The name of the project may not be used to endorse or promote derived products. That is clause three of BSD 3-Clause, and it exits at this step.
Step four. What remains: keep the notice, accept that there is no warranty. MIT and BSD 2-Clause both stand on this step, and neither asks for anything further. They share the top between them.
The measurement is easier than the argument. These are the licence texts as published in the SPDX list, counted this morning.
The licence that calls itself the free one needs thirty-three times as many words as the one that asks least. Part of that length is legal care rather than obligation, and it would be dishonest to pretend otherwise: definitions, patent language, the machinery of enforcement, and wording built to survive a courtroom. So take the count as an indicator. It indicates; it does not prove, and the missing piece is how high the fences stand in the text. That part is not mysterious either. A high fence invites people to walk round it, every way round has to be closed off in writing, and each closure is another paragraph, which is why length is what a fence costs once somebody has to defend it. The shortest licences are short because there is nothing to walk round. The proof therefore sits one level down, in the clauses themselves, and it is countable without any arithmetic at all: one condition at the top of the staircase, three at the step below, four plus a patent mechanism below that, and at the bottom a condition that follows the code into every work it ever touches.
The parallel with statute is hard to avoid and it holds. A body of rules grows long because somebody wanted to settle cases in advance, and every additional paragraph is a case somebody preferred not to leave to the person acting. Where little is written down, a great deal stays with whoever is doing the work. That says nothing against rules as such, because the floor stays the floor and the notice stays the notice. It says something about where a decision ends up once a text sets out to light every corner: with the drafter, and no longer with you.
There is a detail in that list worth pausing on. BSD climbed this staircase itself. Four clauses became three when Berkeley struck the advertising clause on 22 July 1999, in a letter from William Hoskins at the Office of Technology Licensing addressed to all licensees and distributors of any version of BSD, and three became two in the variant most projects use today. The licence that asks least arrived there by giving things up over twenty years, which is a rather better argument for reduction than any essay about it.
The less a licence asks of you, the more of it is yours. And the world's.
The assumption underneath
Every argument for copyleft, once you strip the vocabulary, rests on a claim about the person receiving the code: without an obligation, they will take and give nothing back. The obligation exists because the behaviour is expected. That is what an obligation is for.
And the claim is not fantasy. The cases are real, and they should be named rather than waved away. Sony ships FreeBSD 9 inside every PlayStation 4. Juniper has built Junos on FreeBSD since the late nineties and has said plainly that the licence was part of the appeal, because it allowed proprietary extensions without further negotiation. WhatsApp ran its connection machinery on FreeBSD through the years when it was setting records for connections per box, and the wider world learned very little about how. Whole industries sit on this code and return a fraction of what they took.
Taking happens, then. The open question is whether the obligation is what produces the giving.
What actually came back
Netflix is the awkward case for that theory, because the giving is enormous and the obligation is absent. Kernel TLS is in the FreeBSD tree. So is asynchronous sendfile, so are unmapped mbufs, so is the CAM I/O scheduler, so are RACK and BBR and the TCP pacing work. Gallatin has stood on conference stages explaining how the four-hundred-gigabit machine works, in detail, to an audience that includes every competitor Netflix has. The company runs FreeBSD current in production, which means its engineers meet the tree's problems before anyone else and fix a good number of them on the way past.
Sony, for that matter, publishes the modified FreeBSD kernel sources for the PlayStation 4 on its own website. The BSD licence does not require the source of a modified kernel. They put it up anyway.
None of this is charity. Running a private fork of an operating system is miserable and expensive, every local patch is a tax on every future merge, and upstreaming is the cheapest way out of that trap. Which is the point: what makes companies contribute is the arithmetic of maintenance, and that arithmetic works the same under every licence on the staircase.
What copyleft actually compels
Here the construction deserves a closer look, because it promises less than its reputation suggests.
The GPL obliges you when you distribute. It does not oblige you to upstream, so a company may keep an enormous private patch set for years, hand it to customers as a tarball nobody reads, and remain entirely within its rights. And if the software is never distributed at all, if it merely runs on a server and answers requests, the obligation does not arise. Every hosted service built on GPL code sits in that gap.
The AGPL exists because that gap was too large to ignore. Section thirteen requires that anyone interacting with a modified version over a network be offered the corresponding source. It is an honest patch to a real hole, and it is also an admission: the original construction did not compel what people believed it compelled, for the entire period in which the industry moved to running software instead of shipping it.
The room with one exit
There is a second thing an obligation does, and it shows up years later.
ZFS is licensed under the CDDL, which the Open Source Initiative recognises. Linux is licensed under the GPL, which the Open Source Initiative also recognises. Two free licences, and the combination cannot be distributed as one work, which is why ZFS has lived inside the FreeBSD base system since 7.0 in 2008 while on Linux it stays outside the tree, rebuilt against every new kernel, the stepchild nobody will take in because of the licence it was born with.
Nobody behaved badly here. Both licences were written by people trying to protect something. The result is a room with one exit, and the exit is a rewrite. That is what a condition does over a long enough period. It decides two things: what you may do with the code, and which other code it may ever stand beside.
The limit
Now the part that costs something to write.
A licence that asks for nothing sometimes receives nothing, and the permissive side has to live with cases where the taking was total and the giving was zero. That is the deal, accepted in advance.
Worse, the openness of a project is no protection against its owner. Redis was BSD-licensed for fifteen years and moved to SSPL and RSALv2 in March 2024, before reversing course and adopting the AGPL in 2025. Elasticsearch went to SSPL in 2021 and offered the AGPL again from August 2024. HashiCorp took Terraform to the Business Source Licence in 2023 and the community forked. In every one of those cases the copyleft camp has a point, though a narrower one than it usually makes: the AGPL would have answered the grievance each company named, namely a cloud provider selling the work as a service and returning nothing. It would not have stopped the relicensing itself, since each of them held the rights and could do as it liked. Two of the three arrived at the AGPL in the end anyway.
So the honest position is that conditions buy something specific at a specific price, and that the price includes the room with one exit. Choose accordingly, and stop calling the choice freedom when it is a trade.
Which one, then
For a weekend project you want other people to use without ringing you: MIT or BSD 2-Clause. Nothing to administer, nothing to enforce, and the notice keeps your name on it.
For a library meant to end up inside commercial products: the same two, and Apache 2.0 if patents are anywhere near your problem, because the explicit grant is worth the extra paperwork.
For a product you intend to sell while others may host it: the AGPL, honestly declared, or a dual arrangement. It is a trade, it is legitimate, and it should be described as what it is rather than as a moral position.
For infrastructure meant to outlive you and to be embedded in systems you will never hear about: the top of the staircase, every time. Coexistence is the property that matters at that distance, and coexistence is exactly what a condition removes.
The point
The four documents agree on almost everything. They differ in what they demand afterwards, and the demand is the whole of the disagreement.
Netflix gave back for five years under a licence that could not have made it. The staircase does not measure virtue and never claimed to. It measures how much of the thing in your hands is yours outright, unattached and free to travel, and the world's along with it. That ranking is not a matter of taste. Count the conditions, and the order comes out the same every time.