## Link https://youtu.be/MkJkyMuBm3g?si=WNDMYcgRrni-R6Gs ## Clips ### The Linux Distro landscape after the dot com bust, Redhat ran screaming, SUSE went bankrupt, the guy who made Slackware was sidelined with a health issue that turned out to be related to his toothbrush, wonderful history here start = 1:18 end = 2:00 ### Knoppix had a hard limit of 700MB of space, and 110MB of that was basically the same packages as the Linux from Scratch project start = 2:00 end = 3:00 ### Tom's Root Boot aka tomsrtbt was built on BusyBox and uclibc start = 2:40 end = 3:40 ### If I can replace the 100MB of Linux From Scratch packages with BusyBox and Uclibc start = 3:10 end = 4:10 ### So I set about to replace the GNU tools with BusyBox and Uclibc and it didn't work - It spectacularly didn't work - This is how he started contributing to BusyBox start = 3:20 end = 5:20 ### First patch to BusyBox was before he knew how to use source control start = 4:10 end = 5:10 ### If you cut the releases you kinda are the maintainer - Suddenly he's the maintainer of BusyBox - Here's the keys to the server start = 4:20 end = 6:20 ### One of the things I inherited was the hall of shame - A wall of GPL violations that accomplished nothing - Asked Pamela Jones of Groklaw start = 4:45 end = 6:45 ### What happens when you sue companies and force them to submit their changes to your GPL project - You get horrible code that you don't actually want - And then they won't stop start = 6:40 end = 8:15 ### So I couldn't stop these lawsuits once they got going - People with separate interests wanted to use BusyBox as a club to beat hardware specs out of vendors start = 8:30 end = 9:30 ### Then GPL3 shipped and the open source world split in two start = 9:00 end = 10:00 ### Bruce Parens - The guy who named BusyBox and abandoned it in 1998 - A decade before Eric Anderson abandoned it to Rob Landley - Suddenly piped up and claimed moral authority over BusyBox start = 9:50 end = 11:50 ### Rob quits being maintainer of busybox because now "this isn't fun anymore" start = 11:28 end = 12:14 ### The original motivation of freeing up space for Knoppix had turned into "I want the simplest possible Linux system capable of rebuilding itself under itself from source code" start = 11:50 end = 12:40 ### The Cheyenne Mountain Story - We would much rather audit half a million lines of BusyBox rather than tens of millions of lines of GNU code that do the same thing start = 12:14 end = 13:06 ### Reading GNU cat start = 13:06 end = 13:32 ### My response to GPLv3 basically became "Death First" start = 16:00 end = 17:00 ### Just because I can't motivate myself to work on BusyBox anymore doesn't mean I want to be a bottleneck - I had basically been doing it for fun start = 16:50 end = 17:50 ### Then Tim Bird reminded Rob that Android's command line was crap, which was basically a folded over piece of tin foil to complete the circuit to make the userspace barely exist start = 17:00 end = 18:00 ### Mainframes begat Minicomputers begat Microcomputers begat Smartphones and each time the previous generation gets kicked up into the server space, this time the server space is called the cloud it has a marketing budget hooray start = 19:25 end = 20:45 ### IBM cut off Digital Equipment Corporation's Head and Queen Played and there was lightning start = 20:00 end = 21:00 ### IBM's death looked like doing a reverse acquisition of Red Hat much like AOL bought Time Warner - So IBM is now... Red Hat bought IBM but the money went the other way start = 20:40 end = 21:30 ### The phone is a real computer as far as hardware, but software wise it's not yet self hosting - The PC itself didn't become self hosting until its code stopped being compiled from PDP 10s start = 21:00 end = 21:42 ### My mental model with Android now is if a 10 year old girl in rural India inherits her mother's old phone and can fish a USB hub out of the trash with a USB keyboard and USB mouse and somehow cast it to a display, then the software needs to be there too so that this can be a real DEVELOPER device for her, you shouldn't be a second class citizen as a developer just because you only have a phone and not a laptop start = 21:40 end = 23:20 ### You need a kernel, you need a C compiler, you need a C library, and you need a set of command line utilities start = 24:20 end = 25:20 ### Copyleft did not help add code to BusyBox even with endless lawsuits that he couldn't stop once they started start = 25:30 end = 26:05 ### Why there's no such thing as the GPL anymore - Linux and Samba can't share code and why start = 26:00 end = 27:00 ### When GCC went GPL3, Apple froze on GCC 4.2.1 for 5 years in Xcode while they sponsored the development of a replacement: LLVM start = 27:00 end = 28:00 ### All the ways that the GPL3 broke Copyleft start = 27:30 end = 29:00 ### The give stages of grief - The GPL was the terminal node in a directed graph of license convertibility start = 28:30 end = 30:00 ### The Apple vs Franklin decision in 1983 which extended copyright to cover binaries created modern proprietary software - Before that a binary was just a number start = 29:20 end = 30:00 ### Lawyers don't like things that don't cause lawyers to get paid in the future - Why the BSD License - How he created the BSD0 license start = 30:50 end = ### Toolbox had 33 concatenated copies of the BSD License in a file and I went what are you smoking start = 32:22 end = 32:55 ### The Kindle Paperwhite had 325 pages of concatenated license text and it's about licensing pulldown start = 32:40 end = 33:20 ### So I took the OpenBSD suggested template license and removed cruft to create BSD0 - I got permission from Marshall (Kirk) McKusick, the maintainer who took over from Bill Joy, to call this a BSD License start = 35:05 end = 36:30 ### Comparing the Code - BusyBox vs Toybox - How BusyBox's code eventually became horrifying - How Toybox does better, using the knowledge of the previous BusyBox maintainer start = 36:40 end = 40:15 ### The number two contributor to Toybox is the Android Bionic maintainer - And he has a policy that he sends me patches and then pulls from me start = 40:15 end = 42:30 ### Single point of truth - To add a command to Toybox, you add one file - To add a command to BusyBox when he left, you had to touch five five files start = 42:30 end = 44:30