On Fri, Jan 17, 2020 at 10:50:51PM -0500, Theodore Y. Ts'o wrote:
+1 to everything Ted said, that's how I remember it as well. I knew
about both Linux and 386BSD and while 386BSD felt very familiar to
a SunOS guy, there was something special about Linux. For a while I
played with both, 386BSD was sort of better in that it had networking,
but like Ted, my network was a modem and TCP over a modem wasn't pleasant.
So Linux won out and eventually networked just fine.
At the time when Linus announced his creation (not yet
named) on
comp.os.minix in August 1991, it was already self-hosting. And that
happened pretty quickly; he first started working on the project in
June or July.
Around the end of 1991, I had added Job Control (implemented from
POSIX.1 as a the specification), so we could put jobs in the
background. In 1992 X Windows was ported to Linux. Networking
support followed shortly thereafter.
So all in all.. As I remember it, there was never
really a decision to 'make
this great new OS!'.. It kinda happened with right place, right time, right
people, etc.
In the super-early days (late 1991, early 1992), those of us who
worked on it just wanted a "something Unix-like" that we could run at
home (my first computer was a 40 MHz 386 with 16 MB of memory). This
was before the AT&T/BSD Lawsuit (which was in 1992) and while Jolitz
may have been demonstrating 386BSD in private, I was certainly never
aware of it --- and Linus was publishing new versions every few days
on an ftp site. We'd send patches, and in less than a week, there'd
be a new release dropped that we could download.
So the argument, "Linus would have never started on Linux if itT
weren't for the AT&T Lawsuit" I don't think fits with the timeline.
Development was very fast paced, and so it was *fun*. And at least
for me, the lacking of networking during the early days didn't bother
me much, since I didn't have networking at home. (I didn't have
grounded outlets, either, in my 3 people for $1050/month apartment.
Each leg was 50-60V to ground, and the wiring was cloth wrapped, and
was either steel or aluminum; I never did figured out which....)
Using zmodem over a 2400 bps modem was way more efficient than PPP, so
even once we had networking, I didn't always bring up pppd. And the
most common way I would download source was using set of 1.44 MB
floppies and a station wagon (literally; I was driving a Corolla wagon).
During those early days, the fact that Linux was more "primitive" than
BSD may have been an advantage, since it sources was small, and
release engineering is simple when you only support one architecture.
The other things I noticed was that because we didn't have the weight
of the Unix/BSD legacy, we were more free to experiment. Bruce Evans
was working on the serial driver for FreeBSD, and I was working on the
serial driver for Linux, and we had a friendly competition to see who
could get better throughput using the very primitive 8250 and later
16550 UART. The figure of merit we were using was the CPU overhead of
a C-Kermit file transfer over two RS-232 ports connected via a
loopback cable. We'd compare notes to see how we could make things
better, me for Linux, and Bruce for FreeBSD, and it was *fun*.
Eventually, it got to the point where I was making changes to the tty
layer to further optimize things, and at that point Bruce reported
that he couldn't do some of the optimizations, since it would have
required changing the TTY layer that had been handed down from the
Gods of Olympus^H^H^H^H^H^H^H^H BSD and so it was nixed by his
colleagues in FreeBSD land.
In contrast, in Linux, people felt free to rip out and replace code if
it would make things better. Depending on how you count things, the
networking layer in Linux was ripped out and replaced three or four
times in the space of as many years. Sure, the first version was
pretty crappy, and was barely good enough for simple telnet
connections. But things got better fast, because people were felt
free to experiment.
My personal belief is that it was this development velocity and
freedom to experiment starting with a super simple base is what caused
Linux to become very popular amongst the those who just wanted to play
with kernel development. Compare and contrast Linus's willingness to
accept patches from others and his turnaround time to get those
patches into new releases with Bill Jolitz's 386BSD effort --- and I
don't think you need the AT&T lawsuit to explain why Linux took off in
1991-1992. FreeBSD and NetBSD was started in 1993 because of the
failure of Jolitz to accept patches in a timely fashion.
- Ted