From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.2 Received: from minnie.tuhs.org (minnie.tuhs.org [45.79.103.53]) by inbox.vuxu.org (OpenSMTPD) with ESMTP id 2d82fc7f for ; Sat, 18 Jan 2020 03:51:23 +0000 (UTC) Received: by minnie.tuhs.org (Postfix, from userid 112) id 99C339C0F9; Sat, 18 Jan 2020 13:51:22 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 8FE679C0F8; Sat, 18 Jan 2020 13:51:02 +1000 (AEST) Received: by minnie.tuhs.org (Postfix, from userid 112) id EBD0D9BDD8; Sat, 18 Jan 2020 13:50:59 +1000 (AEST) Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11]) by minnie.tuhs.org (Postfix) with ESMTPS id 151A29BD25 for ; Sat, 18 Jan 2020 13:50:58 +1000 (AEST) Received: from callcc.thunk.org (pool-72-93-95-157.bstnma.fios.verizon.net [72.93.95.157]) (authenticated bits=0) (User authenticated as tytso@ATHENA.MIT.EDU) by outgoing.mit.edu (8.14.7/8.12.4) with ESMTP id 00I3opv8008813 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 17 Jan 2020 22:50:52 -0500 Received: by callcc.thunk.org (Postfix, from userid 15806) id 8A3F6420057; Fri, 17 Jan 2020 22:50:51 -0500 (EST) Date: Fri, 17 Jan 2020 22:50:51 -0500 From: "Theodore Y. Ts'o" To: Arno Griffioen Message-ID: <20200118035051.GC481935@mit.edu> References: <20200117195908.GF15253@ancienthardware.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20200117195908.GF15253@ancienthardware.org> Subject: Re: [TUHS] On the origins of Linux - "an academic question" X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: The Eunuchs Historic Society Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" On Fri, Jan 17, 2020 at 08:59:08PM +0100, Arno Griffioen wrote: > If I remember correctly from those days as a student, that was not the > starting point for Linux. > > He did not 'decide' to write Linux at the start.. He initially didn't even > decide to write an OS at all.. > > As I recall he actually got an i386 based machine and wanted to explore > the features of that CPU compared to the 286 and the like. To do that he > decided to basically write (if I remember right..) an editor that ran > directly on the hardware and made use of the new i386 features. Not an editor, but rather a terminal emulator, to talk to a modem so he could connect to the university's computers. He first started by having two processes, one which would print just 'A' characters, and another that would print 'B', and had a simple scheduler so they would alternate printing to the screen: "AAAABBBB", etc., then "ABABABAB", etc. And from there he wrote the terminal emulator. What he did after that isn't well recorded; it could have been an editor, but for a long time he using Minix for editing and compiling the proto-kernel that would later become Linux. > However, once he did publish it the MINIX userland basically became the > 'incubator' for this new little (monolithic! :P ) kernel broke out when > GCC and slowly the other GNU tools became available so it could self-host. > > Somehow Linus at that time found so much fun from getting all these > patches and code to stick into his funny little kernel and watching it > grow and evolve that he stuck with it and didn't move to other projects. 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