Slashdot Mirror


Unix's Founding Fathers

Dave B writes "There's a nice article on Economist.com about Dennis Ritchie, the genesis of Unix, and the C programming language."

13 of 308 comments (clear)

  1. Stangely by Anonymous Coward · · Score: 5, Insightful

    it doesn't ask what would have happened had it all been patented, back in the day. Nice bit of history, but it was a remarkably different way of operating back then.

    1. Re:Stangely by ultrabot · · Score: 5, Insightful

      it doesn't ask what would have happened had it all been patented, back in the day.

      Simple - it would be dead. Just like the WWW if it were patented. Or Linux (well, not patented but placed under proprietary license).

      --
      Save your wrists today - switch to Dvorak
    2. Re:Stangely by ModernGeek · · Score: 5, Insightful

      If it would have been patented, there would be no linux, no open standards, all would be closed, compaq's would run compaq os, ibm's would run OS/2, dell would run DellOS. Noone could make software in one language and have it interoperate between operating systems like we seemlessly do today thanks to C. We would have to pay money to develop software, we would spend more time worrying about liscensing then actually programming. Computing would not be what it is today. Thank god they did not patent any of it.

      --
      Sig: I stole this sig.
    3. Re:Stangely by Anonymous Coward · · Score: 5, Informative

      Patents are not the same as copyright. With copyright, you only have to avoid using the same code (iow copying). With patents you have to avoid using any of the patented concepts. In some cases this means having to use a vastly inferior algorithm, even if you came up with the better one yourself and would have written your own code. If Hoare had patented Quicksort, people would have had to use Bubblesort for decades or pay licensing fees, which is impossible for Open Source projects.

    4. Re:Stangely by Anonymous Coward · · Score: 5, Informative

      But do you really think that algorithmes and "concepts" should be patentable? Where do you draw the line? At what point does a "new" technology become a barrier to devellopment then? I think that the current state of thinking (in the US mostly) about software and logic patents is absolutely ludicrous. I mean the basic innovation in Unix is to keep the kernel small and efficient. Is that patentable? What about the tools approach? Is that patentable? Ludicrous as patenting the concept of a street or sidewalk. Or 2+2 for that matter. The fact that Ritchie's work at the Labs was property of his employer had only as an effect that other instances of the system where stimulated to review the programs and make rewrites for their implementation, as such we have a better software now than then. This is done through collaboration and competition all rolled into one. Nothing a patent could make better here.

    5. Re:Stangely by Sique · · Score: 5, Informative

      It was stated in the article that between 1958 and 1984 AT&T had to license all its non-telephonic stuff to whoever asked at fairly reasonable conditions. While it was not true free software, many companies and universities at the time were able to get hold of the license, the documentation and the source code and started to modify it and develop their own versions.

      University of California in Berkeley contributed many tools to UNIX and even started to recode UNIX from scratch, following the original UNIX just within the specification limits in 1977, but based everything on its own code.

      When in 1984 AT&T was freed from the anti trust provisions given in 1958, AT&T tried to get the control back over UNIX, which lead to the founding of the GNU organisation and to a legal battle with UCB. The legal battle finally ended with a draw, so the BSD line of UNIX was cleared from copyright infringment accusions, and the BSD tools are still with the AT&T-based UNIX versions.

      So UNIX was in the beginning something quite indifferent between proprietary and free software, basicly a proprietary system which was handled like a free and open source one. This was the fallacy of the system: After 12 years of free work on UNIX suddenly AT&T changed the licensing and the way the licenses were enforced. The GNU Project tied to make sure that no one contributing to GNU could pull an AT&T again by requiring all code contributed to GNU should be licensed via GPL.

      --
      .sig: Sique *sigh*
  2. The funny thing is by Anonymous Coward · · Score: 5, Interesting

    UNIX wouldn't be where it were today if it weren't for patents. Not because patents were useful in the development, or because the initial C/UNIX technology was patented-- it wasn't-- but because about the first commercial sale of UNIX, the first big test case where things were ironed out, was in processing applications for the united states patent department.

  3. UNIX was meant as a hoax by tijsvd · · Score: 5, Funny
    Read this article:

    Creators admit UNIX, C hoax

  4. Re:Modules by bigberk · · Score: 5, Insightful
    *NIX is modular in that you can pass output from one command to another via pipes
    Definitely, and I think what escapes modern comp sci people is the incredible flexibility of being able to use several simple, distinct programs together to achieve a broader processing goal. Data flow between processes achieves the best separation possible, allows for the ultimate 'compatibility' (inter-process communication) and leaves performance monitoring/control to the OS. In the long term, the UNIX model sounds like a winner to me.
  5. I didn't RTFA because... by john_smith_45678 · · Score: 5, Funny
    The Genesis of Unix is already included in the Unix Bible!

    The Bible According to Unix

    Genesis

    Chapter 0

    0. In the Beginning Ritchie created the PDP-11 and the UNIX.
    1. And the UNIX was without form and void; and darkness was upon the face of the system programmers.
    2. And Ritchie said, "Let there be portability!" And nothing happened, so Ritchie realized that he had his work cut out for him.
    .
    25. And Ritchie said to Kernighan, "Let us make C in the image of B, after our own whims: and let it have dominion over the I and the O and all that runneth upon the UNIX," and it was almost, but not quite so... so he realized that he had his work cut out for him again.
    .

    Chapter 1

    0. Thus the PDP-11 and the UNIX were finished, and all the programs in them.
    1. And on the seventh shift Ritchie ended his work which he had made; and he would have rested on the seventh shift from all the work which he had made, if it weren't for the system crash.
    .

    Chapter 2

    0. 0 Now the COBOL was more verbose than any language of the PDP-11, and he said unto the programmer, "Yea, hath the Manual said, 'Ye shalt not read of every device of the network?'"
    1 And the programmer said unto the COBOL, "We may read of every device of the network:
    2 But of the registers of the printer in the midst of the network, the Manual hath said, 'Ye shall not read of it, neither shall ye write to it without proper protocol, lest ye cause a system crash.'"
    3 And the COBOL said unto the programmer, "Ye shalt not surely crash the system:
    4 For Ritchie doth know that in the time slice ye read thereof, then your I/O shall be opened, and ye shalt be as system operators, accessing locked accounts with unlimited privileges."
    5 And then when the programmer saw that the printer was good for interfacing, and that it was pleasant to the I (and to the O),...
    6 And they realized they were unstructured, so they patched RATFOR subroutines...
    .

    The Gospel

    0. And the Messiah shalt come, born a mere B but to grow up into the Saviour C,
    1. Wherein true structured programming may be achieved, yea, verily, yet while being able to do bit shifting.
    2. For although the Law (Pascal) hath been given, the Law cannot

    for (i=0; str1[i]!='\0'; i++)
    str2[i] += (str1[i]>='A' && str1[i]<='Z') ? 32 : 0;

    but must

    i := 0;
    while (i <= length(str1)) do
    begin
    if str1[i] in ['A'..'Z'] then
    str2[i] := chr( ord(str1[i]) + 32))
    else
    str1[i] := str2[i];
    i := i + 1;
    end;

    The Revelation

    0. Yea, in those last days, the Saviour shalt come again, but enhanced, in the rainment of C++
    1. And then shalt the Beast, FORTRAN, and the AntiC, COBOL, be thrown into the trash HEAP where there is weeping and byting of pins.
    2. And all the faithful programmers shalt be led into CRAY where billions of MIPS are at each one's fingertips
  6. Unix WAS patented, which is WHY it spread by js7a · · Score: 5, Informative
    ... It was proprietary software, patents wouldn't have done a thing to it.
    Actually, a crucial part of Unix was patented, before software patents were technically allowed. But the fact that it had been was the main reason that Unix spread so rapidly in the 70s and 80s.

    Back in the 70s, Bell Labs was required by an antitrust consent decree of January 1956 to reveal what patents it had applied for, supply information about them to competitors, and license them in anticipation of issuance to anyone for nominal fees. Any source code covered by such a Bell Labs patent also had to be licensed for a nominal fee. So about every computer science department on the planet was able to obtain the Unix source.

    The patent in question was for the setuid bit, U.S. No. 4,135,240. If you look at it, you will see that it is apparently a hardware patent! This is the kicker paragraph:

    ... So far this Detailed Description has described the file access control information associated with each stored file, and the function of each piece of information in regulating access to the associated file. It remains now to complete this Detailed Description by illustrating an implementation giving concrete form to this functional description. To those skilled in the computer art it is obvious that such an implementation can be expressed either in terms of a computer program (software) implementation or a computer circuitry (hardware) implementation, the two being functional equivalents of one another. It will be understood that a functionally equivalent software embodiment is within the scope of the inventive contribution herein described. For some purposes a software embodiment may likely be preferrable in practice.
    Technically, even though that said it "will be understood," and was understood by everyone as a software patent, it wasn't until the 1981 Supreme case of Diamond v. Diehr that it became enforcable as such. Perhaps that is why the patent took six years to issue back in the 70s.

    So, through the 1970s, Unix spread because it was covered by an unenforcable software patent! Doug McIlroy said, "AT&T distributed Unix with the understanding that a license fee would be collected if and when the setuid patent issued. When the event finally occurred, the logistical problems of retroactively collecting small fees from hundreds of licensees did not seem worth the effort, so the patent was placed in the public domain."

  7. Historical errors in article by Tore+S+B · · Score: 5, Informative

    The article makes a few mistakes. First of all, Unix was far from the first OS to be written in a high-level language. Multics was the first big OS (PL/1!! Shudder!), and there were many research OS'en at the time.

    Also, the PDP-7 did NOT have a hard drive. Believe me, I have one. The PDP-7 did, however, have an optional model 24 Serial Drum (something like a low-capacity fixed-head hard drive, around 100KB IIRC), whose capacity I cannot recall, a 555 Dual DECTape unit, a directly addressable very-low-density even by its time magnetic tape system, and, of course, the 10 cps paper tape punch/ 300cps High-Speed Optical paper tape reader. But there was never a moving head hard drive. The PDP-8 had one, but I can't for the life of me remember the name.

    The PDP-7 was an 18-bit, 15-bit adressed system.

    --
    toresbe
  8. Re:Modules by master_p · · Score: 5, Interesting

    What the Unix guys did is to invent object orientation before the concept was actually invented. The Unix system *is* object oriented: each program is like an object that implements one interface with two methods: the input and the output. By wiring objects together, all sorts of processing was possible.

    Another innovation was that each program did one thing only, and the wiring between programs was not hardcoded. One could write a million programs, each one doing a different task, but it was the capability of wiring them at will that gave Unix such flexibility.

    The analogous of today would be if we did not program applications, we only programmed classes and then a 3rd party came and wired these classes together. Unfortunately, modern application development has chosen not to follow this way: applications consist of classes that are hardwired into a fixed set that makes change and rapid development difficult.

    Finally, another good property of the Unix way is that there was no datatypes. Everything was text processing. We have come a full circle now that XML dominates the industry...it took us 30 years only to realize that text is the ultimate carrier of information.