New UNIX implementation (1983)
groups.google.com
groups.google.com
http://www.thelinuxdaily.com/2010/04/the-first-linux-announc...
RMS starts with a grandiose vision, which (at the time of writing) he hadn't even begun. He then asks for time, money, and equipment, before the end of the first paragraph. The very first thing promised, a kernel, has never been effectively delivered.
Linus starts with a modest disclaimer, then asks for feedback as to what other potential users might want most.
Night and day. Yet, could we have had one without the other?
Post lawsuit RMS wrote his manifesto and the GPL was born, and the various BSD flavors of UNIX were the only UNIX kernels that had had their software provenance litigated.
Into that Linus wrote his entirely new kernel which was 'unix like' but not UNIX at all on the inside (generally user land felt like UNIX because MINIX felt like UNIX).
And because Linux had a pretty complete history from birth to present (making tracing software ownership possible) RMS annexed it as the GNU "kernel" trying to get everyone to call it GNU/Linux for a while.
When Linux arrived, it was booting to a working free userspace within months. The FSF had, from their perspective, the right plan. They certainly weren't just a compiler.
I was also at Sun in '91. Michael Tiemann worked there for a while, on gcc.
Prior to my time at Sun, I'd made contributions to gcc, gdb, gas and emacs (all in support of the Convex architecture) before my time at Sun. (My former boss from Convex was the president of BSDi, too. Most of the engineers from Prisma, his company between Convex and BSDi, came to Sun when Prisma folded, becoming the early version of Sun's RMTC.)
You do some disservice to rms here. Easy enough to understand (rms is easy to dislike).
By 91, GNU had a compiler, and emacs, both of which Linus used to develop his kernel.
Having said that, I agree that people are generally discounting rms' immense contributions* a bit too easily here.
* (both technical contributions and in terms of just the entire culture of open source, which he really helped shape in a very significant way, and I say that as someone who mostly dislikes the GPL and prefers MIT/BSD style licenses)
For the bulk of Unix user/developers, the big thing was that GCC reintroduced the idea that you should be able to get free dev tools for your Unix OS, during a time when some vendors had decided that you should pay more to get the dev tools in addition to the base OS.
As dllthomas said, RMS never wanted the kernel to be called "GNU/Linux", he wanted (wants) the Linux kernel with the GNU userland to be called "GNU/Linux".
I see that you an link to the Wikipedia page on the naming controversy. "Operating system", at least as RMS uses it, doesn't refer to the kernel, it refers to the kernel+userland.
Today most people who use a Linux distribution on their machine will say they run Linux or "distroname" (like Ubuntu or CentOS) on their machine. They don't say they run Gnome 2/Linux Kernel 3.x/gcc 4/gnu utils 2.8. By RMS' reasoning (and he is very precise in this) the "Operating System" is not "Linux" it is "GNU/Linux". They even added a field for it in uname(1) (-o).
The "Operating System" is a combination of the kernel, the editors, and user tools, and the compilers. Go back and read his original announcement, this is his definition:
"To begin with, GNU will be a kernel plus all the utilities needed to write and run C programs: editor, shell, C compiler, linker, assembler, and a few other things. After this we will add a text formatter, a YACC, an Empire game, a spreadsheet, and hundreds of other things. We hope to supply, eventually, everything useful that normally comes with a Unix system, and anything else useful, including on-line and hardcopy documentation."
By that original definition, we shouldn't even bother calling it GNU/Linux should we? Its just GNU. I expect taking that position though would be quite unpopular.
As the Wikipedia page alludes to, there were at least two camps at the time. Many, like myself who 'grew up' on the UNIX side of the house, the Naming Hierarchy was 'kernel->[userland]->window system' So it was SunOS->SunTools or SunOS->X/News. If you called something a "UNIX" system it meant that the kernel was based on the design architecture of Thompon, Ritchey, et al from Bell Labs. SunOS, IRIX, SystemV, and Unicos were all "UNIX" systems even though their userland code and window systems (if they had one) varied. Even in RMS' original statement of purpose, the first component of GNU was a kernel, and some other bits.
So to someone with the same background as I've had you could call it Linux/GNU (hierarchy preserved) or "Ubuntu" based on Linux with GNU tools. But Linux as the kernel architecture is at the top of the naming chain, not GNU.
For folks who came up from the DOS/PC side of things the 'window system' was the primary naming tool (in this case Windows). It was PC-DOS/Windows for a while but Microsoft decided to go all out and make "Windows" the brand/trademark they hung their hat on, and we got Windows/DOS, Windows/NT, Windows 98, Windows XP, Windows Vista, Etc.
As dllthomas illustrates, the interpretation of the 'it' part rooted the disagreement, and which side of the disagreement one resonated with seemed strongly correlated with ones early exposure to naming conventions.
My belief is that the emotion in the discussion came from egos, or people feeling person A or person B's contributions or impact were over or under valued. We can see some of that in the comments here where people emotionally jump to a conclusion that I'm down on RMS (I'm not), or even partisan in this debate (I'm not that either). There is ample documentation that Linus' goal with Linux was to write a new OS from scratch kind of like (but better than :-) MINIX. And there is ample documentation that RMS' goal was to create an operating environment that was unencumbered by onerous restrictions. It was fortuitous the Linus' work was so successful, and it was fortuitous that Linus could leverage the work done in the preceding 9 years in making tools available for him to use.
But it was also clear that Linus wasn't specifically supporting the GNU project by writing Linux (although he subscribed to the philosophy). When RMS started claiming as part of the project it set up this little tempest. Perhaps the term 'annex' is too emotionally charged to be used for that action.
This is not how I remember it. RMS has not, to my knowledge, ever pushed for the Linux kernel to be called GNU/Linux, but for systems running a combination of GNU software and the Linux kernel to be called GNU/Linux.
Well, I think it's justified, but it's justified if
you actually make a GNU distribution of Linux ... the
same way that I think that "Red Hat Linux" is fine, or
"SuSE Linux" or "Debian Linux", because if you actually
make your own distribution of Linux, you get to name the
thing, but calling Linux in general "GNU Linux" I think
is just ridiculous.[34]
It came up in the documentary because there had been a huge firestorm over RMS saying everyone should call it GNU/Linux. Various allegations of 'usurpery' etc and generally bad feelings. Linus' counter, which he made in the documentary and I had heard in person at a Usenix conference was that if the GNU project made a distro (and this is still a valid point) where everything in it was free and wanted to call it "GNU/Linux" that would be great, but trying to change the kernel name from Linux to GNU/Linux is just silly (or ridiculous as Linus points out).[34] ^ Moore, J.T.S. (Produced, Written, and Directed) (2001). Revolution OS (DVD).
Every damned other thing in there seems to argue precisely the opposite.
I defy you to find anything Stallman said (as opposed to characterizations by others, which could easily be deliberate or accidental mischaracterizations) that implies a position that a system without GNU code (or with insignificant amounts) running Linux should be called GNU/Linux. If such exists, then I will agree with you that Stallman once held the absurd position you attribute to him.
Edited to add:
"It came up in the documentary because there had been a huge firestorm over RMS saying everyone should call it GNU/Linux."
I agree that there was a huge firestorm over RMS saying everyone should call it GNU/Linux. I disagree with what that "it" refers to.
Also, LOC is a really poor metric for comparing the importance of a piece of software for a system. Many applications have far more LOC than the entire OS itself, and you wouldn't call that app more essential than the OS.
GNOME, incidentally, is GNU[1]. Coreutils is not the sole contribution of the GNU project to a (typical desktop or server) Linux system.
[1]: Certainly currently - I am less confident it started that way, but the G seems to stand for GNU so that's some evidence that it did.
Also, Linux isn't GNU, but it is GPL.
People get annoyed at the RMS self-promotion, or GNU promotion, but that stuff is important.
Stallman, a seasoned academic researcher talking to a small community, was quitting his job. Torvaldes was a student finishing his undergraduate degree at a time when Unix was widespread, Usenet had become popular, and computing power was ubiquitous enough that writing a kernel made sense.
(Except for the performance benefits of going bare metal, but that does not apply to a free alternative to an existing kernel.)
Please elaborate.
That sounds like a Kickstarter pitch. RMS was ahead of his time in yet another way.
"Announcing your plans to others satisfies your self-identity just enough that you're less motivated to do the hard work needed."
That's not to say Stallman didn't do any work, but I'm wondering if this observation applies here.
What I find interesting about RMS isn't that his productivity was suspect, but frankly that it just ended in the late 80's. He still writes code, surely, but there's a big wall in his history where he just decided that the code was there and what the world needed was moral evangelism. That's a fairly alien attitude to most of us, I suspect. I certainly could never have been happy with a pivot like that.
More generally the idea that the FSF was just lolling about not getting anything done until Linux landed in their lap is a weird modern fantasy. And ironically it's exactly the kind of thing they tried to treat by publicizing (or "stealing" if you swing that way) the "Linux" brand with the "lignux"/"GNU/Linux" nonsense. They wrote a ton of working code, most of which we're still using today. What they didn't write was Linux.
IIRC, RMS had developed pretty severe wrist pain by then, and was forced to dictate his code to assistants. Well, you can imagine how that went.
GNU was like this sun, and we were starting to move toward it. It was like we were sunflowers looking for sun... and then meteors being pulled by gravity.
For some people, the FSF and GNU project were more important than DOS or the Mac.
Was the problem just in the different approaches between Stallman and Torvalds? That being: Stallman wanted to create GNU from the outside in (editors, then tools, then compilers, then the kernel) whereas Torvalds went inside-out?
A new editor or a new command-line tool was immediately useful to a user of a proprietary Unix.
In contrast, a new kernel would not have been useful to the user of a proprietary application or a proprietary command-line tool unless perhaps pains were taken to give the new kernel binary compatibility with proprietary kernels -- and even then there would have been worries about whether the user had the legal right to run the proprietary tool on the new kernel.
In summary, the order in which Stallman chose to build the pieces was the order that grew the user base the fastest, which in turn grew contributions from developers the fastest, in a virtuous cycle.
In some ways you could argue Stallman's approach was disrupted by the arrival of cheaper commodity hardware.
Linus also benefited tremendously from having the GNU toolchain and userspace already available.
I'm pretty sure no one could build a functioning micro-kernel that'd be useful and able to compete at the time the Hurd project was still relevant. Then again, maybe I'm just making excuses for the FSF.
People weren't really clamoring for Hurd or a kernel for GNU, because they got an OS with their computer, and got the GNU tools and libc. The really major geeks would buy old, used workstations, which were built like tanks and were plenty fast for running single-user unix.
This has the timeline wrong, for emacs.
http://features.slashdot.org/story/13/01/06/163248/richard-s...
"The last piece of Gosmacs code that I replaced was the serial terminal scrolling optimizer, a few pages of Gosling's code which was proceeded by a comment with a skull and crossbones, ... "
Who Am I?
I am Richard Stallman, inventor of the original much imitated EMACS
editor, now at the Artificial Intelligence Lab at MIT. ...Sorry, no cite handy right now :(
I'm not sure that demand for running UNIX at home, on a PC existed in 1983. What was the status of the 386 architecture in 1983?
And if it's true that the demand for a UNIX to run on a PC was absent in 1983, then it makes RMS's suggestions all the more interesting. As others have said, RMS was as much ahead of his time as he is weird.
Anyhow, I don't know why a 386 processor is required for people to want to run Unix. Unix was well established as 'the' OS for serious computing, and MSDOS was not a great alternative. Actually, MicroSoft released a lousy *nix themselves in 1980: http://en.m.wikipedia.org/wiki/Xenix
So, the idea of running Unix on PC software was mot unusual and made plenty of sense. Not necessarily for home users, but for small businesses and education professionals, who have been a significant market for personal computers all along.
The 286 and 8086 had multitasking based on allowing small programs to run concurrently, but nothing that used a lot of memory.
The competing 68000 also lacked an MMU. The later 68010, I think, had the MMU.
I had Amigas with 68000s, and one with a 68030. AmigaOS didn't have any special capabilities on a 68030 that it didn't have running on a 68000. AmigaOS was a Unix-like IS with full preemptive multitasking that could operate in 256k of address space, on a 68000.
Did all the processes run in the same address space on the Amiga??
Actually looks like Xenix used that too. http://www.tenox.net/docs/microsoft_xenix_30_286_press_relea...
I was only familiar with 68k so I'm probably wrong here.
The 286 is a 16-bit CPU so there would have been various memory limits. http://www.os2museum.com/wp/?page_id=313 has some details on what it can do, but not much mention of limits...
[edit] Quick googling found instructions for installing on an XT with 1M RAM and a single 720k floppy:
http://www.minix3.org/iso.previous/Intel-2.0.3/xt/README
I had a 10MB hard drive, so didn't need to go through such gyrations (though I didn't upgrade to a 2nd MB of ram until later)
No, I don't think RMS's GNU was targetting "PC's", i.e., non-shared computers, in 1983. Few people would have owned them. My point, perhaps missed by others, was that Linux was aimed at a new bit of hardware that many people had acquired by 1991, the 386 PC.
I live in Brazil. I remember when I went to the local university in order to grab a 40+ diskette copy of slackware. A few months later I subscribed to a CDROM compilation (can't recall the name, something like imagemagic) that would mail me a 6 CD case containing many of the early distros every couple months - back in the day downloading it was too expensive (things improved a lot but telecommunications here are still very expensive compared to EUA).
This stood out to me. Back in 1983 online collaboration was unheard of, and it was only the incredibly modular nature of Unix which made the project seem at all plausible.
Not really. Stallman mentioned Chaosnet which the AI Lab had used for, among other things, internal mail (not yet called "e-mails") between developers about changes to programs. He also mentions UUCP, which was the godawful Unix way of sharing files (and which could be used for mail purposes).
"I am Richard Stallman, inventor of the original
much-imitated EMACS editor."
Stallman may have significantly improved Emacs, but he isn't the inventor. Guy Steele and David Moon are. Stallman only took over development after it had become the standard AI text editor. Stallman wasn't even the first one to implement Emacs in Lisp; Dan Weinreb did it first. "Inventor of the original" makes it sound like Emacs was his original idea.http://web.archive.org/web/20110719154038/http://danweinreb....
And emacs was one of the very first screen editors. It invented lots of the stuff that would later seem "obvious".
So no: I think it's entirely appropriate to say that emacs was "invented" in the same way the browser was.
Using this criteria, who would you name as inventors? I can't think of a single one!
Full disclosure: I've been using emacs since 1981.
ISTR TECO under TOPS was a PITA.
eg. From Sec 4-1
Some characters, like <CTRL/U>, are both regular TECO commands and immediate action commands. The command string ^Uqtext` enters the specified text into Q-register q. However, <CTRL/U> typed while entering a command string is an immediate action editing character which deletes the current line. Thus you cannot type a <CTRL/U> (or any similar sequence) directly into TECO as part of a command string. Nevertheless, <CTRL/U> is still a valid TECO command; should TECO encounter it in a macro or indirect file, it will have its regular TECO effect (^Uqtext`).
http://h71000.www7.hp.com/doc/73final/documentation/pdf/teco...
But it reminds me of the first time I tried EMACS, actually, and my reaction to backspace bringing up a help file.
Compared to modern editors, TECO is incredibly difficult to use. Hell, it's incredibly difficult to use compared to vi and emacs.
This site replays old usenet posts. It was cool to wait for the announcement to pop up on net.unix-wizards.
Happy 30th birthday, GNU!
There is a GNU hackathon at MIT this weekend, for those that don't know already and might be interested: https://gnu.org/gnu30/
How I wish this became true, it's not too late right?
http://article.gmane.org/gmane.emacs.devel/162042
This has been a vague goal since the mid-'90s, and given the popularity of elisp etc, would probably be a nice boost for Guile, but the gulf between neat-idea and messy reality has always seemed so vast that I never thought it would actually happen.
[I haven't used Guile since the '90s... it was a bit of a disaster back then, but from what I hear, it's improved immensely (i.e., largely been rewritten) since.]
Dude was proverbially "leet as fuck" back in that day.
http://books.google.com/books?id=-VMEAAAAMBAJ&pg=PA112-IA5&d...
Edit: Apparently this: http://en.wikipedia.org/wiki/Empire_Classic_%28video_game%29
If you're even more curious, this is the one to try: http://www.killerbeesoftware.com/kbsgames/edee/index.shtml
I learned the hard way that you never, ever want to play as the Levant. After being destroyed by India, Africa and Europe, I restarted in New Guinea and was able to take over Australia. This went a long way for me to understand why remote, relatively homogenous cultures tend to be quite stable.
Linux has, eventually, started to fulfil the promise: technologies like cgroups, dm, uevents, kdbus, alsa..., and the respective userspace: systemd, dmraid, lvm, udev, pulseaudio, show that GNU/Linux is not UNIX but better in some respects.
It’s clear that systemd will break compatibility with BSD. What isn’t clear yet, is if this is truly a better system. I have nothing against change. I’m all for Wayland. I just have no confidence in Poettering's work.
Most of the other improvements that you listed have been in BSD for years. Its sound subsystem OSS4 is also a much cleaner API and better performing interface than ALSA.
This is not to take anything away from GNU, or the far more central role GNU code played in earlier Linux systems; I think it's totally legitimate to say that modern Linux systems are a success of the GNU project and the GNU vision. But it's less true these days that (desktop) "Linux" is "A GNU system with the Linux kernel."
Dash takes the place of the Posix binary /bin/sh for performance and memory reasons. The default shell for users remains /bin/bash — this is what a terminal application will run, which is what a “shell” is supposed to be. The /bin/sh thing is not supposed to be viewed as the shell, and its replacement is a non-issue in this context.
Simply saying “there are probably other examples” will not do. This sounds like simply wishful thinking to me.
It's by no means wishful thinking - I am a little more a GNU partisan than not.
The replacement of /bin/sh is not replacing bash. Bash has not been replaced.
> Clang now provides an alternative C compiler.
Yes, but are any Linux distributions actually switching to Clang?
Bash has been replaced in its role as /bin/sh. If you're disputing that, I'm confused or baffled. If you're not disputing that, and simply pointing out that most systems are configured to have bash installed and to use bash as the default shell, you're addressing a point I already conceded instead of answering the question I posed: how is it not fair to say that replacing bash with dash in the fairly-central role of "shell which executes system scripts" makes bash "less central"?
Small? Aren't we getting close to 16 million LOC?
Building the kernel is one of the harder parts of that goal, and when Linux took off the gnu kernel lost a lot of steam. That they chose a more difficult design only helped. But the question is moot now.
Even at that early stage, he realizes that GNU doesn't have to write everything. Having a large enough body of libre-software is the real goal. And who knows, in 10 or 20 years it may be time for a new kernel design?
Stallman would say GNU is an OS without a kernel. Debian GNU/Linux would be the complete OS. Someone pointed out on HN recently that many things user space on a typical "Linux" box comes from non-GNU projects, and it's not x11/GNU/Linux, or gnu/FreeBSD, or llvm/FreeBSD. So yeah I sort of see their point.
How far would be Linux without those investments?
Kind of ironic, in retrospect, is Linus's original comp.os.minix posting announcing the project, saying on part, "I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones."
Mid-90s Linux was more usable on then-current hardware than the Hurd is on now-current hardware, though I suspect that mid-90s Linux would be less usable now (on current hardware) than the Hurd.
Usability for pretty much any of the purposes for which one uses a computer operating system other than exploring theoretical ideas about how to architect a computer operating system.
> I'd like to see more people run with newer ideas from Plan 9 / Inferno / Hurd / all the other operating systems that aren't a monolithic 1970s design.
So would I. That doesn't make any Hurd more ready for any other use other than exploring newer OS ideas that Linux is.
Or even the most ready for such uses (or even the exploring OS architecture use) of the "Plan 9 / Inferno / Hurd" set.
Also, plan 9 doesn't explore much of anything in the kernel. It is a plain old boring monolithic kernel. The exploration in plan 9 was in the userland.
"GNU Hurd (usually referred to as the Hurd) is a computer operating system using the GNU Mach kernel designed as a replacement for Unix..."
So it looks like GNU Mach is the kernel.
Its probably hard with far fewer active developers, and even harder with the amount of Hurd's development effort that's gone into a series of dead-end efforts to replace the kernel.
http://lwn.net/Articles/554992/
first comments include slides and videos of gnu hm 2011 and 2013
The mailing lists are full of spam and progress is at a crawl. It's awful. If you want progress, just use Linux.
My understanding of the timeline is that 386BSD was not available when Linus started work.
A minority of people prefers this characteristics, history suggests that the majority just enjoys the added features: the GNU userland was widespread before Linux existed, people today install (parts of) the GNU userland on Mac OS X using fink/macports/homebrew.
Usenet: ...!mit-eddie!RMS@OZ ...!mit-vax!RMS@OZ
US Snail: Richard Stallman 166 Prospect St Cambridge, MA 02139"
Amazing. The use of words like "US-Snail" and all. Looks far cooler and geekier than what we have now usually:
xyz
xyz@whateveremail.com
@xyztwitterhandle RMS@MIT-MC.ARPA
:(You don't need a c-based tool chain installed to run a GNU/Linux system or make it usable for a non-dev though, no, Ubuntu doesn't have it by default for example.
Right. Not so much. That was exactly the last thing to happen as it turned out. He and everyone else in the effort worked on the tools and apps.
By contrast: > I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) > and things seem to work. This implies that I’ll get something practical within a few months
Anyhow, torvalds had already put in the work on the kernel and wanted feedback.
Torvalds had a kernel and no tools. RMS had tools but no kernel, so the inevitable happened and they were wed. Torvalds even chose the RMS version of a marriage license.
The marriage is fruitful, but RMS is frigid and bitchy the whole time, solely over the name of the child -- even though the child has matured and gone on to a brilliant career they can both be proud of.
This would also be a good time to note that Torvalds is not the one who chose the name of Linux -- usenet chose it.
I have great respect for RMS and admire his courage (and self-discipline) very much, but I really wish he'd let that thing about the kid's name go. Just let it go already Richard.
And Linux is (entirely legitimately) the name of the kernel - the dispute[1] is over the name of systems running a bunch of GNU code on top of a Linux kernel.
[1]: Elsewhere it has been contended that RMS has pushed for the name to apply to the kernel itself as well. I don't believe that was ever the case (though will certainly update my beliefs if presented with evidence) but am far more confident that it is not his current position.