[Toybox] [RFC] Proposed text of crowdsourcing campaign.
rob at landley.net
Tue Jun 4 21:26:09 PDT 2013
$20,000 - 3 months (minimum for funding)
$40,000 - 6 months
$60,000 - 9 months
$80,000 - one year: full roadmap, 1.0 release
(Again, I'm looking at indiegogo not kickstarter because kickstarter's
terms of service won't let you raise money for salary, it's designed
around the assumption you ship a physical product to each individual
donor. Indiegogo will let you do outright charity drives if you want
to, it's a better fit for sponsoring open source development. Of course
I'll still work on this if nobody sponsors me, at about the same rate
I've been doing. I'd just stop feeling guilty about my inability to
keep up. :)
---------- Begin audio
Hi, I'm Rob Landley, and this campaign is to let me work full-time on
the open source software package Toybox, a BSD-licensed posix command
line implementation for Android and Linux.
Why Toybox? Because smartphones are replacing the PC, just like the PC
replaced the minicomputer and mainframe before it. I want to help
Android beat iPhone to become the new standard, so that when PCs go
away the next generation of computers aren't sealed black boxes from a
Phone hardware is ready to replace low-end workstations today. They've
got gigahertz processors, gigabytes of storage, broadband internet
access, and displays with as many pixels as HDTV. Display peripherals
attached through USB can give you a full size screen, keyboard, mouse,
and so on, often packaged into a convenient docking station that even
charges the phone's battery while you use it. Since there are more
pockets in the world than desks, economies of scale make phones cheaper
than desktops could ever hope to be, so his transition is only a matter
But the software side is not ready yet. You can't compile new software
on a stock Android phone. Until android provides a self-hosting
development environment capable of rebuilding the entire operating
system from source code, it remains tethered to legacy PC workstations.
As long as Android needs a "real computer" to produce system updates,
it can't _be_ a real computer and replace the PC. I want to help
Android grow up.
Android needs four software packages to provide a self hosting
development environment, three of which are in good hands, and the
fourth is my specialty. The four are a kernel, a compiler, a C library,
and a posix command line. For reasons described in the long video,
Android can't use the legacy Linux versions of these packages from the
PC, so it needs new Android-compatible ones. (If you doubt this, note
that busybox predates Android but still doesn't ship with it. As
ex-busybox maintainer, I know why this is not a problem that waiting
will fix, but writing new code can, so that's what I'm doing. See the
long video for the gory details.)
Android's existing kernel is already good enough: it's an extended
Linux kernel which adds new features but doesn't remove any. The new
compiler, LLVM, is being developed primarily by Apple, which of course
gives iPhone a headstart but this package is open source enough that
Android can use it too. The new BSD-licensed C library musl, by Rich
Felker, is already capable of building hundreds of existing Linux
packages, and should provide everything Android needs.
Toybox provides the fourth package, a posix command line capable of
running the configure, make, and install stages of package builds, and
generally providing good system plumbing everywhere else.
I started toybox as a casual hobby, and in November 2011 I redirected
toybox development to address the Android self-hosting problem. I
worked out a roadmap of over two hundred commands toybox needs to
implement, and put together a test environment using toybox to build
other software. Over the past year and change I've put in five to ten
hours a week on toybox, purely on a hobbyist basis, finishing almost
half of the planned commands.
That's not good enough anymore. Transitions happen when the market is
ready, not when any specific product is ready, which is how the market
wound up standardizing on DOS and Windows. The transition from PC to
smartphone is happening now. <a
sales are declining rapidly.</a> If Toybox is affect the outcome, it
needs to be finished as soon as possible.
Why me? Because I'm good at this, experienced at exactly this problem,
and I love doing it. I worked on busybox for years before anyone ever
paid me for it, and I've been working on toybox unpaid up until now.
This just lets me spend more time on it, to finish it faster, be more
responsive to my contributors, and to do a better job.
Unfortunately, I'm not cheap. I want to do this, but I'm not a college
student living in a broom closet eating Ramen anymore, I have a real
house with a real mortgage, my wife's back in college working towards
her doctorate, I'm too old to voluntarily go without health insurance,
and so on. A <a
LinuxFest Northwest talk estimated</a> that an experienced programmer
who _wants_ to work on an open source project would charge at least
$75,000 a year. That's a signifcant pay cut from any of my last
half-dozen contracts, but it sounds about right.
I'm bumping it up slightly to $80k for a year because indiegogo takes a
cut and I want to buy some new hardware for the project, but I'm also
offering a better deal by not demanding the job security of a full
year. I'll do as little as three months if that's all I can get, but
the full year would let me finish the entire roadmap and properly
support the project.
BusyBox took almost ten years to get to the point Toybox needs to reach
now if it's to help Android beat iPhone. I think this is important, I
very much want to spend all the time I can afford to working on it. In
the past year and a half, that hasn't been enough, so I'm asking the
internet for help.
---------- End audio
The big video is at http://www.youtube.com/watch?v=SGmtP5Lg_t0
You can add #t=TIMESTAMP (ala #t=0m29s) to jump straight to any of the
- 0m29s : Why the smartphone is replacing the PC
- 4m22s : Software needed to become self-hosting
- 6m20s : Do we care if android or iphone wins?
- 9m45s : Android is not vanilla Linux: oppose or accept?
- 11m30s : Why Open Source can't do User Interfaces
- 15m09s : Android is not copyleft: oppose or accept?
- Why copyleft is dying, killed by GPLv3
- 18m23s : Security issues (early PC wasn't networked, yay
- 21m15s : Solving the software problems
- 22m55s : What toybox needs to be/do
- 28m17s : What is toybox?
- 28m58s : Why toybox started...
- 37m50s : What does toybox actually implement?
- Questions (Toybox small as busybox? Yes but simplicity > size.)
And of course:
More information about the Toybox