A general history question

scott redhowlingwolves at nc.rr.com
Sat Nov 5 23:00:43 UTC 2011


On 11/05/2011 03:10 PM, Don Quixote de la Mancha wrote:
> Richard Stallman and his colleagues at The Freesoftware Foundation
> assert that the proper term is "GNU/Linux", because in reality linux
> is just - "just!" - the operating system kernel.
>
> There's not a whole lot you can do with a kernel all by itself.  While
> the kernel is the first program to run in a complete operating system,
> with all the other programs being launched via the facilities of the
> kernel, a complete system - what we know as a "distribution" or
> "distro" - requires user space runtime libraries such as the Standard
> C Library, "daemons" that run invisibly in the background, some way to
> set up the configuration of the system - for GNU/Linux, these are text
> files mostly located in /etc - tools to allow the user to create,
> delete and edit various file formats, and for a computer with a
> graphical user interface, a way for the screen "real estate" to be
> divided up among programs that want to display graphics, as well as to
> send keyboard and mouse input to the appropriate GUI program.
>
> Richard Stallman originally set out to write a complete new - and
> better - source code-compatible clone of the very proprietary,
> expensive and closed-source operating system UNIX.
>
>   Among his reasons for wanting to do so was that the source to UNIX
> was at first distributed more or less freely by AT&T, when AT&T was
> broken up into many competing telephone companies.  The AT&T breakup
> also lifted many of the regulatory restrictions once placed on AT&T as
> a natural monopoly.  Now free of the restrictions that prevented it
> from competing in the computer business, AT&T realized there was money
> to be made in selling UNIX.
>
> A UNIX SystemV binary-executable license was expensive, with the
> license price increasing with the number of allowable logged-in users.
>
> A SystemV source code license was collosally expensive, with the
> licensees being bound by restrictive non-disclosure agreements, as
> well as the obligation to pay AT&T for any source or binaries that the
> licensees passed on to others.  Such source licenses were only
> affordable to those who found some way to charge a lot of money for
> whatever they produced from it.
>
> Stallman - or RMS as he prefers to be called - started out by
> developing GNU - which stands for "GNU's Not UNIX", which itself
> expands to "GNU's Not UNIX Not UNIX" and so on - from the outside in.
> That is, rather than writing a kernel from scratch than adding user
> space software that ran on top of that kernel, RMS and his colleagues
> at The Free Software Foundation developed a great deal of user space
> software first.
>
> RMS and I share a common trait for which we are both often criticized:
> we are very picky about our work, and don't particularly care if it
> takes a long time to get it right.
>
> More or less the first program that RMS wrote for use by GNU was a
> text editor called GNU Emacs.  That originally stood for "Editor
> Macros", as it was originally a set of simple macros, more or less
> like Word or Excel macros, for the editor that was built in to the
> LISP artificial intelligence workstations that RMS used at the MIT AI
> Laboratory in Cambridge, Massachusetts.
>
> Writing Emacs in C, with an integrated LISP interpreter enabled Emacs
> to be portable to other kinds of computers, with Emacs being quite
> powerfuly extensible by writing Emacs LISP (or elisp) programs for it.
>
> Emacs is pretty small and quick by today's standards, compared to say
> Firefox or the Gnome or KDE desktops, but back in the day it was said
> to stand for not "Editor Macros" but "Eight Megs And Constantly
> Swapping" - I first used it on a 16 MHz Sun Workstation with but four
> megabytes of memory! - as well as "Emacs Makes A Computer Slow".
>
> When Emacs was used on a GUI computer, it was popular to give it a
> Kitchen Sink icon!
>
> It could readily be argued that RMS would have by now made a lot more
> progress with GNU had he not spent so much time writing Emacs,
> improving it as well as porting it to so many completely alien
> computing platforms.  However, if you learn to use Emacs really,
> really well, you well find that it can do a great deal more than edit
> text.  For most coders who are Emacs fans, it does everything that
> today's Integrated Development Environments such as Visual Studio,
> CodeWarrior, Xcode and KDevelop can do.  It can actually do a great
> deal more, and is readily customizable by writing elisp programs.
>
> Thus Emacs all by itself empowered all of us coders to accomplish a
> great deal more with less effort and in less time than we could have
> with the programmer's editors of the day, such as the original UNIX
> vi.  Today's Vim (VI iMproved) works just like the UNIX vi, but it can
> do a great deal more than vi could.
>
>   I used to really suffer under the SunOS 3 vi; when some consultant
> dropped by with an Emacs source tape and showed me how to build and
> run it, I thought he was a Heaven-sent prophet!
>
> RMS, despite being notorious for never getting anything done, in
> reality is just about the most brilliant and productive engineer in
> all of human history.  It's just that he doesn't like to do anything
> the simple way.  If you Google up the GNU coding standards document,
> you will find the advice that while GNU programs as well as subroutine
> libraries are expected to work much like the UNIX originals they
> replace, they are expected to improve on them in just about every way
> possible.
>
> The GNU programs all have extensive documentation, the most essential
> parts of which can be accessed by giving the "--help" command-line
> option to the programs.  No such online help existed in the original
> UNIX command-line tools, I expect because they were originally written
> for such resource-constrained computers that the executable files of
> all the software really did have to be as small as possible.
>
> Many of the older UNIX programs, as well as the UNIX kernel itself,
> had fixed-size buffers, or memory areas in which they stored their
> data.  The GNU coding standard explicitly forbids such fixed-length
> buffers when it is at all possible to dynamically allocate buffers of
> any desired size.
>
> Dynamic allocation has many advantages, but the code that implements
> it is a great deal more complex than code that uses fixed-size
> buffers.  It can be slower and use more memory as well, because there
> is some invisible overhead due to the bookkeeping requirements of the
> dynamic memory manager.
>
> I first got into UNIX in a real way right around the time that work
> was commencing to make the kernel fully dynamic.  That might not sound
> like such a big deal, but operating system kernels of any sort are a
> lot harder to write than just about any userspace program.  A big
> advantage of fixed-size buffers in the kernels is that, to the extent
> you didn't try to exceed their capacity, you could count on them to
> work right!
>
> The SunOS 3 kernel on my old 3/160 workstations had a filesize -
> uncompressed - of about 500 kilobytes.  The entire Microport
> SystemV/AT UNIX distribution for the 80386 PC clones was distributed
> on a half-dozen or so 5 1/4 inch 360 kb floppy disks.
>
> The bane of my existence when I worked phone support for Microport was
> some customer ringing me up to shout at me about the message "Inode
> Table Overflow!" spewing all over his console.  His box didn't
> actually crash, but had become largely broken.
>
> That message occured when all the processes - running programs - on
> the system all together tried to open too many files and directories.
> On Linux, and the UNIXen of todays, the number of open files is
> limited only by the avialable memory installed in the computer, but
> back then, each open file was represented by an inode data structure
> that was an element of a fixed-sized array of such structures.
>
> Opening too many files would never overflow that array, as that would
> corrupt your kernel memory and crash your machine.  Instead your file
> open would fail, and you'd get that overflow message on the console.
>
> For most of my callers, the only way to fix that overflow would be to
> send them a configuration kit - we called it the Link Kit - that
> contained the object code - but NOT source code! - for the kernel,
> except that we did provide source for certain user-configurable items,
> such as the inode table array.  One would edit a header file to
> increase the size of that array, compile what sources we provided,
> then link all the objects together to make a new kernel that could
> have more files open all at one time than would otherwise be the case.
>
> But why didn't we at Microport just configure the kernel with a big
> inode table to start with?  That was because the entire inode table
> occupied precious physical memory - the kernel memory is never swapped
> out as user space programs often are - so an inode table that was
> larger than you actually needed not only wasted memory, but could
> cause other operating systems that used a lot of memory to fail!
>
> While adjusting the inode table size was the most common use for our
> Link Kit, there were lots of other configurable parameters.  Devices
> drivers were all hardwired in, for example.  Dynamically loadable
> driver modules as we have today were yet to be implemented.  Again
> linking in drivers you didn't really, really need took up a lot of
> wasted memory.
>
> RMS and his colleagues eventually got to the point that most of the
> software that was of any real use to developers who wrote code for Sun
> Workstations in particular, as well as most other UNIX variants, and
> to a lesser extent VAX/VMS, Microsoft Windows and even, just a little
> bit, the Classic Mac OS, could be downloaded in source code form from
> FTP servers all over the Internet.
>
> Getting that stuff to compile could be a chore, so the FSF financed
> itself to a large extent by selling tapes - TAPES! not DISKS! - of
> ready-to-install precompiled executable programs.  They also offered a
> custom service of making such a tape for just about any platform of
> your heart's desire, but for a hefty price.
>
> While some of that code could be gotten to work on inexpensive 16-bit
> MS-DOS and Windows 3.1 computers, a lot of it either had not yet been
> ported to the 16-bit x86 architecture, or just could not be ported at
> all.  To enjoy the full power of the GNU software, one had to drop a
> lot of dollars on an expensive UNIX computer, only to replace the
> proprietary software - which you had no choice but to pay a lot of
> money for - with the GNU software.
>
> RMS by this time was well into the development of HURD, the GNU
> operating system kernel, but in his usual fashion he wanted it to be
> light-years ahead of existing UNIX kernel technology.  It was a long,
> long time before HURD could do anything useful at all.
>
> While it was developed with portability in mind, a kernel is a very
> least portable of any kind of software, because its source code
> depends on all kinds of minute, picky, arbitrary and often downright
> disgusting ways on the hardware that operates the kernel.  Quite a lot
> of those hardware details are only available to developers who sign
> non-disclosure agreements.  Even when the hardware interface isn't a
> trade secret, it happens all the time that the document is just plain
> wrong, or doesn't even exist!
>
> Eventually a Finnish Computer Science undergraduate student by the
> name of Linus Torvalds got really tired of waiting around for HURD to
> be usable as well as ported to the 80386 PC clones, so he wrote from
> scratch, and more or less all by himself, just about the simplest
> possible operating system kernel that would work more or less like
> UNIX did, but ONLY on 80386 PCs.
>
> That kernel was called "linux", and it still is.
>
> Without the work of Richard Stallman, his colleagues at The Free
> Software Foundation, as well as countless others who contributed to
> the GNU source code, the linux kernel all by itself would have been
> largely useless.
>
> The original distributions were little more than the Linux kernel and
> the GNU user space software.  That's why they should be properly known
> as GNU/Linux.
>
> The distributions of today come with a great deal more software than
> the kernel and the original GNU stuff.  There are some who argue that
> we should call it "Mozilla Linux" because most of us spend most of our
> time using the Firefox web browser, which was developed by the Mozilla
> project.
>
> But the essential core of all of our distributions - not just Fedora,
> but Ubuntu, Slackware, Debian, all the Live CDs - is the GNU software.
>
> If you don't want to call it "GNU/Linux" instead of just "Linux", it
> would really be better not to call it Linux at all.  Call it by a name
> that gives credit to ALL of its contributors.  For us, that is just
> "Fedora".  On my MacBook Pro, it is Ubuntu.
>
> I'm really beat, so I'm not going to address your question about the
> package managers quite yet.  The package management is an important
> part of creating a usable distribution that end-users or system
> administrators can easily install, upgrade and maintain.
>
>   In particular the mind-numbingly idiotic way in which all UNIX-like
> operating systems spread vitally important programs, code libraries,
> configuration files and other data files such as national language
> localizations All Over Creation makes it damn near impossible for
> anyone but an expert to UNINSTALL a program without the use of a
> package manager.
>
> The package managers didn't used to work so well though.  It's not as
> bad these days, but it used to happen all the time to just about
> everyone that installation, upgrading or uninstallations would totally
> break a system.
>
> Debian did a better job with the packaging at first.  Red Hat with RPM
> - the Red Hat Package Manager - had a well-deserved reputation for
> being totally brain-damaged.
>
> But those days are largely behind us.  Not completely though; for no
> reason I can fathom, just last night, without doing anything at all,
> the Ubuntu Natty Narwhale installation on my MacBook Pro started
> reporting that it had broken dependencies that so far I have been at a
> total loss to repair.
>
> I'll Send You My Bill In The Mail.
>
> Sincerely,
>
> A Grey-Bearded Old-Time UNIX Hacker
  You just put more grey on my head, and in my beard that I care to 
admit to. Nice write-up.

Scott....another old grey-hair


More information about the users mailing list