The History of UNIX

Forum Forums General Other Distros The History of UNIX

  • This topic has 4 replies, 3 voices, and was last updated Apr 13-7:24 pm by PDP-8.
Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
  • #128989
    Brian Masinick

      The history of Unix dates back to the mid-1960s, when the Massachusetts Institute of Technology, AT&T Bell Labs, and General Electric were jointly developing an experimental time-sharing operating system called Multics for the GE-645 mainframe.[1] Multics introduced many innovations, but also had many problems. Bell Labs, frustrated by the size and complexity of Multics but not its aims, slowly pulled out of the project. Their last researchers to leave Multics – among them Ken Thompson, Dennis Ritchie, Doug McIlroy, and Joe Ossanna[2] – decided to redo the work, but on a much smaller scale.[3]

      In 1979, Ritchie described the group’s vision for Unix:[3]

      What we wanted to preserve was not just a good environment in which to do programming, but a system around which a fellowship could form. We knew from experience that the essence of communal computing, as supplied by remote-access, time-shared machines, is not just to type programs into a terminal instead of a keypunch, but to encourage close communication.

      Space Travel, move to PDP-7

      In 1969, Thompson had also written a video game, Space Travel, under the GECOS operating system on the smaller GE 635 machine. This had the undesirable problem that a typical game cost $75 worth of billable CPU runtime.[6] When he learned that Visual and Acoustics Research[7] department had a small PDP-7 that was largely unused, he began to rewrite the game for this machine.[6] This was initially performed by building a binary for the PDP-7 using a cross compiler on the 635, and then moving the resulting code to the PDP-7 using paper tape.[6]

      This became tedious, and Thompson began considering writing his new operating system on the new machine. This was aided by a timely vacation by his wife, leaving him with a month to work on it full time.[8] Aided by Ritchie and Rudd Canaday, they implemented a version of the hierarchical file system Thompson had studied on the 645. The ability to start programs stored in that file system soon followed,[6] and then small programs to copy, delete, print and edit those files, along with a command-line interpreter to allow the user to perform all of these operations interactively. With these in place, a new assembler was written for the machine, and Space Travel moved entirely to the new platform.[9]

      A key concept that was added during this period was made by Ritchie,[6] the concept of a device file. This was a file in the file system with the special ability to perform input/output operations. This allowed different devices to be supported simply by placing a file in an appropriate location in the file system. Read and write operations accessing these pseudo-files would perform operations on the device itself. This meant that devices were abstracted away through the file system, and programs could manipulate files no matter what sort of device they were on.[10]

      Douglas McIlroy then ported TMG compiler-compiler to PDP-7 assembly, creating the first high-level language running on Unix. Thompson used this tool to develop the first version of his B programming language.[3]

      Ken Thompson (sitting) and Dennis Ritchie working together at a PDP-11
      Ken Thompson and Dennis Ritchie
      Version 7 Unix for the PDP-11, running in SIMH
      Unix time-sharing at the University of Wisconsin, 1978

      The new operating system was initially without organizational backing, and also without a name. At this stage, the new operating system was a singletasking operating system,[3] not a multitasking one such as Multics. The name Unics (Uniplexed Information and Computing Service, pronounced as “eunuchs”), a pun on Multics (Multiplexed Information and Computer Services), was initially suggested for the project in 1970. Brian Kernighan claims the coining for himself, and adds that “no one can remember” who came up with the final spelling Unix.[11] Dennis Ritchie and Doug McIlroy also credit Kernighan.[3][12]

      When the Computing Sciences Research Center wanted to use Unix on a machine larger than the PDP-7, while Bell Labs Patent Department[13] needed a word processor, Thompson and Ritchie added text processing capabilities to Unix and received funding for a PDP-11/45.[14] For the first time in 1970, the Unix operating system was officially named and ran on the PDP-11. A text-formatting program called roff and a text editor were added. All three were written in PDP-11 assembly language. Bell Labs used this initial text-processing system, consisting of Unix, roff, and the editor, for text processing of patent applications. Roff soon evolved into troff, the first electronic publishing program with full typesetting capability.

      As the system grew in complexity and the research team wanted more users, the need for a manual grew apparent. The UNIX Programmer’s Manual was published on 3 November 1971; commands were documented in the “man page” format that is still used, offering terse reference information about usage as well as bugs in the software, and listing the authors of programs to channel questions to them.[12]

      After other Bell Labs departments purchased DEC PDP-11s, they also chose[15] to run Unix instead of DEC’s own operating system. By Version 4 it was widely used within the laboratory and a Unix Support Group was formed, helping the operating system survive by formalizing its distribution.[14][12]

      In 1973, Version 4 Unix was rewritten in the higher-level language C, contrary to the general notion at the time that an operating system’s complexity and sophistication required it to be written in assembly language.[16][14] The C language appeared as part of Version 2. Thompson and Ritchie were so influential on early Unix that McIlroy estimated that they wrote and debugged about 100,000 lines of code that year, stating that “[their names] may safely be assumed to be attached to almost everything not otherwise attributed”.[12] Although assembly did not disappear from the man pages until Version 8,[12] the migration to C suggested portability of the software, requiring only a relatively small amount of machine-dependent code to be replaced when porting Unix to other computing platforms. Version 4 Unix, however, still had considerable PDP-11-dependent code and was not suitable for porting. The first port to another platform was made five years later (1978) for Interdata 8/32.[17]

      The Unix operating system was first presented formally to the outside world at the 1973 Symposium on Operating Systems Principles, where Ritchie and Thompson delivered a paper.[18] This led to requests for the system, but under a 1956 consent decree in settlement of an antitrust case, the Bell System (the parent organization of Bell Labs) was forbidden from entering any business other than “common carrier communications services”, and was required to license any patents it had upon request.[8] Unix could not, therefore, be turned into a product. Bell Labs instead shipped the system for the cost of media and shipping.[8] Ken Thompson quietly began answering requests by shipping out tapes and disks, each accompanied by – according to legend – a note signed, “Love, Ken”.[19]

      In 1973, AT&T released Version 5 Unix and licensed it to educational institutions, and licensed 1975’s Version 6 to companies for the first time.[20] While commercial users were rare because of the US$20,000 (equivalent to $108,769 in 2022) cost, the latter was the most widely used version into the early 1980s. Anyone could purchase a license, but the terms were very restrictive; licensees only received the source code, on an as-is basis.[20] The licenses also included the machine-dependent parts of the kernel, written in PDP-11 assembly language. Copies of the Lions’ Commentary on UNIX 6th Edition, with Source Code circulated widely, which led to considerable use of Unix as an educational example. The first meeting of Unix users took place in New York in 1974, attracting a few dozen people; this would later grow into the USENIX organization. The importance of the user group stemmed from the fact that Unix was entirely unsupported by AT&T.[8]


      Brian Masinick

      Brian Masinick

          Oh thanks, that’s interesting reading. Thanks)


          Brian Masinick

            Yeah, I used UNIX dating back to the early eighties; I actually saw a UNIX system on a PDP/11/45 at my university clear back in the seventies but to my knowledge it was not connected to any networks, so it wasn’t very interesting at the time. However, only a few years later when I was working at a very large company, we had these mainframes for handling payroll and personnel systems. They ran very important corporate activities, needless to say, and we had what I BELIEVE was a different, but similar system, both mainframe systems, that were used by day to develop and maintain all of that software.

            The software was getting cumbersome. For one thing, the company actually started to consider getting off the shelf programs, but the problem was the systems had too many complex details that very few of those off the shelf systems could handle, and it was not a trivial matter to simply get rid of those capabilities; many of them were created in order to satisfy either pay, benefits, or work conditions.

            We looked at alternatives. One alternative was personal computers on the desk. The problem with that is that we didn’t have much software to communicate between those systems and mainframes – oh how things have changed over the years! Several minicomputer systems DID have networking capabilities, and many, to be honest, had much easier to access networks for that matter, though SECURITY was another matter entirely. By being fairly closed off and only custom created company network programs communicated to and from those critical business systems, the mainframes were far more secure than these very interesting, but inherently insecure systems. Sound familiar? That’s what Microsoft has fought for decades to change and today all systems have some levels of security; of course the best true security is disconnecting from the network until you absolutely need the access. We wouldn’t think of doing that on most of our systems today since networks are the :life-blood: of practically everything we touch.

            Anyway, Tower box UNIX systems were an appealing middle layer between mainframes and desktop systems and that’s often true even today, because not ALL applications in large companies should be accessible to the wide open network. Layers of firewall protection, network protection masks preventing access except to certain systems, and plenty more in the name of safe, secure information have also been a bottleneck between access and protection; it’s difficult to do both well at the same time.

            UNIX servers in business are quite often business critical entities, though Red Hat Enterprise Servers and SUSE Enterprise Servers have in many cases replaced the much more expensive UNIX servers and they can now run on comparatively inexpensive servers. Instead of millions or tens of millions of dollars, smaller servers run for a few thousands or tens of thousands on more extensive servers, but in any case, orders of magnitudes less expensive, yet far more powerful than the dinosaurs they replace!

            I’ve worked in several of these environments from time to time. Ten to twenty years ago companies started to move from UNIX servers to Linux servers. Forty to fifty years ago, even UNIX servers were rarely in the picture, with the possible exception of at AT&T and a few universities, so as I said, things have greatly changed. The articles I shared previously were from the early days of UNIX. What I’ve written here is the direct experience I’ve had in large companies in several different industries over the years. Now I’m retired, so I’m not sure who uses what these days. My guess is that being careful about which mobile devices are allowed to be connected to important systems is of VITAL importance since so many devices are in the hands of every employee.

            Brian Masinick


              This history always fascinates me, but I dug a bit deeper than many books since they leave out or don’t tie in how lucky we are today from an average-joe standpoint.

              ATT V7 – everyone loved it. New “apps” like awk! Thing was, prior to divestiture we all know that ATT couldn’t be in the computer business. But they saw what they had on their hands. Unlike the earlier V6 where it could be licensed to corporations and many universities, V7 got shut down from that avenue. Licensing fees went through the roof. And only ONE university could have it – Berkeley. And as a trade-secret, nobody could discuss the source code with others, so teaching it at uni’s was dropped.

              Hence Andrew Tanenbaum came up with Minix, which being devoid of any ATT code, could be taught! Of course this is where Linus started hacking around just for fun, and we all know the story. Thing was, BSD was still cooking, and had Linus known about BSD, he might have gone that way. But in those days of non-connectivity, you had to hang out with a crew to keep up on stuff – hard to do a continent away – to know a guy who knows a guy who knows a guy….

              Just prior to this, many guys who pooled their corporate or lunch-money together working in a garage, put out various versions of *nix that the average Joe could afford on his hardware. Still major $$$ compared to DOS! Before Eric Raymond (Cathedral and the Bazarre) went totally Linux, he put out a really helpful report every month or so on usenet going into great detail on these various different startups so you could purchase wisely. Some had limited hardware support, some never answered their phone for support since it was just two guys in a garage getting overwhelmed when X crashes on their distro …

              Based on V7, a corporate mentality prevailed, and many of them also had “bundling” in effect – ie, charging extra for source (if available), binary-only release, per-seat / per-cpu ramp ups. You want fries with that?

              I mean antiX comes as a “two seater” out of the box – root and demo. OH, you want to support say 8 people on remote terminals or even have man-pages? Pay up sucker! My first install of Microsoft Xenix was a two-seater, no source, no compiler no zip! SO, unless I wanted to fork out the cost of a car for a compiler, I looked around for GCC ! Lot’s of people did that. And it wasn’t just a money thing, but also a reaction to the corporate overlords trying to black-box *nix.

              On the BSD front, we also have Bill Jolitz from Berkeley coming out with a huge luggable for the NE32000 CPU. Pretty cool, but that later led to him describing in great detail how to get *nix booted on garden variety PC hardware in Dr. Dobbs magazine! Which ultimately beget 386/BSD and the whole story leading to the Open/Free/NetBSD, BSDI et al we know today..

              Keith Bostic and crew rewriting not just ATT code, but also all the utilites. I still put a copy of NVI on my box as tribute and use it since I don’t want to forget.

              There’s a whole lot I’m missing and glossing over of course. But just think of it – in an alternate universe, if I wanted more than root and demo on my antiX box, I’d have to send a BIG check to anticapitalista for more than two seats on antiX. No man pages, no compiler, no source code, binary only. AND, if he detected me or my crew accessing the forum at the same time with only my two-seat or per-cpu license, I’d be in big trouble! πŸ™‚

              I’m still amazed at how close we could have come to this all becoming dust. What if all the Berkeley guys just finished their PHd’s and went into a “proper” profession? Or if Tanenbaum just said oh-well to teaching. It’s the amazing confluence of many activities, that still excites me, because *nix for the average Joe could have easily slipped into the unknown black-box..

              • This reply was modified 17 minutes ago by PDP-8.
            Viewing 5 posts - 1 through 5 (of 5 total)
            • You must be logged in to reply to this topic.