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."

43 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 black+mariah · · Score: 3, Interesting

      Nothing. Absolutely nothing. Not a damn thing would have been different. It wasn't Free Software, ever. It was all duly licensed and inspected and all that good crap. It was proprietary software, patents wouldn't have done a thing to it.

      --
      'Standards' in computing only impress those who are impressed by things like 'standards'.
    3. 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.
    4. 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.

    5. Re:Stangely by alangmead · · Score: 3, Informative

      But it was, to the limit of patentability that was available at the time. This was before Diamond v. Diehrand the US patent office deemed software as "pure mathamatics" and unpatentable. The patent that was developed from Unix, the setuid patent was written in terms of the gates in memory that got flipped and read to check access control.

      If Bell Labs hadn't assigned the patent to the public domain (supposedly over the cost of collecting license fees) Then development on Unix clones would have started much later.

    6. 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.

    7. Re:Stangely by spektr · · Score: 4, Insightful

      It was proprietary software, patents wouldn't have done a thing to it.

      There's a difference between proprietary software and patented software. BSD could easily reimplement all proprietary parts of UNIX and won the lawsuit that followed. But if these parts had been patented ("e.g. a method to write an OS using a programming language"), that wouldn't be possible. I think you're either uninformed or trolling, or both.

      There was an implementation of UNIX and it was proprietary. But there were other implementations of UNIX that were free. What matters isn't some implementation, but ideas. And the idea of UNIX hasn't been developed only by AT&T, but also by the UNIX community - in a open way, since the beginning. Patent that and UNIX is dead.

    8. 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*
    9. Re:Stangely by zoeblade · · Score: 3, Interesting

      Computing would not be what it is today. Thank god they did not patent any of it.

      I like to think that the GNU project (and FreeDOS for that matter) would still have found a way to make free operating systems, even if they had to not base them at all whatsoever on any existing ones.

  2. On the fifth day... by chris_eineke · · Score: 4, Funny

    And God spake: "Let there be hell!" and thus the C programming language was born. ;)

    --
    "All you have to do is be fragile and grateful. So stay the underdog." Chuck Palahniuk, Choke
    1. Re:On the fifth day... by javajawa · · Score: 3, Funny

      I hear some people even prefer csh... sadists!

      --

      Meh

    2. Re:On the fifth day... by ultrabot · · Score: 3, Funny

      And God spake: "Let there be hell!" and thus the C programming language was born.

      In fact, if you study the history more carefully, you'll find that God only licensed some thought patterns and algorithms from SCO Group. God still has to abide by the licensing conditions stated therein.

      "In the beginning there was the Word, and the Word was copyright (R) of SCO Group"

      --
      Save your wrists today - switch to Dvorak
    3. Re:On the fifth day... by Anonymous Coward · · Score: 3, Funny

      I think you misspelled 'mispelled'

    4. Re:On the fifth day... by Tony-A · · Score: 3, Interesting

      "And because Dr Ritchie had been careful to keep the core of C very compact, this [write a compiler] was relatively easy to do."

      Personally I think C is a lousy language, but:
      It is small.
      It is compilable.
      It is useable.

      It is possible to make forward progress with minimal resources.
      Something much better that requires resources you do not have is just pie in the sky.

    5. Re:On the fifth day... by rf0 · · Score: 4, Funny

      You've never programmed in COBOL have you?

      Rus

    6. Re:On the fifth day... by fuzzix · · Score: 4, Informative
      You've never programmed in COBOL have you?

      I have. It's my job. For those of you who have not encountered COBOL, its reputation is warranted. It is actually designed for clueless suits and it will damage you, both mentally and physically. This is true.

      I do not wear a suit. I am not totally clueless. I am just doing this job to get some cash together to go to university next year.

      The thing is, this place (like most COBOL houses) has a set of standards which may or may not match best practice (when they don't it makes things harder - you may be required to use GO TO!) Any opportunity for hackishness or clever code, small as this opportunity is anyway, is precluded by the necessity to adhere to standards so that the next drone that takes your place will understand your code. No amount of commenting inline on how your nice, elegant piece of code works will sway your manager on this topic. This leads to verbose, inelegant code and an acute difficulty in getting things done in a simple and timely manner.

      This is why I love C, C++, Perl, bash, JavaScript, BASIC, HTML, Brainf*ck - hell, I even prefer VB - anything but fscking COBOL!
    7. Re:On the fifth day... by Curtis+Clifton · · Score: 4, Interesting
      And God spake: "Let there be hell!" and thus the C programming language was born. ;)

      Blasphemy! (Feel free to choose which half of the quote I'm talking about. :-)

      At the time of its creation, C was a real work of brilliance. Without the shoulders of C on which to stand, computing wouldn't be nearly as mature as it is today.

      Kernighan and Ritchie's little white book on C is a masterpiece. All language reference manuals should strive to its level of clear writing and careful presentation. Despite not having coded a line of C in over 10 years, I still keep K&R at arms length. (If nothing else, it's helpful for quickly verifying my spelling of Kernighan when writing Slashdot posts.) It was enjoyable to read a column about the old masters.

      Peace,

      --
      -- Curt
  3. Modules by rf0 · · Score: 4, Interesting

    Nice article and it explains nicely why *NIX is modular in that you can pass output from one command to another via pipes. Quite simply it was just an idea and a dman good one at that.

    R

    1. 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.
    2. 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.

    3. Re:Modules by Curtis+Clifton · · Score: 4, Informative
      What the Unix guys did is to invent object orientation before the concept was actually invented.

      Object-oriented programming in Simula predates Unix by nearly a decade.

      --
      -- Curt
  4. quick history leason by karmagardless · · Score: 3, Interesting

    Thompson and Ritchie wrote Unix to play a game on. To make it portable they wrote C and a compiler. This was done at Bell Labs on their dime. They let Berkley, and some others, have copies to evaluate and improve, thus causing BSD, and other variants. AT&T allows this and causes the forking of Unix. Then through mirad stupidity and laywer speak we end up with todays chinese fire drill. All because AT&T did not think to guard their original IP by copyrighting it. Then allowed several groups to modify it without central control.

    At least all Linux kernal mods have to be approved by Linus. It's more control than AT&T ever exerted when it mattered.

    1. Re:quick history leason by Anonymous Coward · · Score: 3, Insightful

      No no no nope. First of all, it was stated in the article. Secondly, it is common knowledge to people who lived and watched the nightly news with Walter Cronkite in those times that the gubbmint used to actively prevent tech monopolies in the public interest. This is not to say there were no monopolies, but new ones were monitored closely and shot to hell if they looked active and this was the case of AT&T.
      It wasn't about whether it was copyrighted or even patented. They were under order, just like Xerox, to share their technology. This wasn't a mistake or an oversight. They were FORCED by the government.

  5. How things have changed.... by Savet+Hegar · · Score: 4, Interesting

    I miss the old-time mentality of things. People like this developed things because it made sense. They didn't file for 20+ patents a day. They didn't litigate against companies working on a project with similar goals. It's too bad companies (like SCO) can't spend their time developing something useful instead of sueing the companies that are truly doing something good for the IT community.

    --
    Mod points are pointless when you browse at -1.
  6. 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.

    1. Re:The funny thing is by cheesybagel · · Score: 4, Insightful

      It was a word processor. I am certain they could find other uses for a word processor than a patent office.

    2. Re:The funny thing is by Rysc · · Score: 3, Informative

      The article is incorrrect, it was not a word processor. It was text formatting/processing (think troff, etc.) in preperation for printing. Processing did happen, and it did process words, but to say that what they developed was a "Word Processor" is misleading at best. It wasn't even a text editor, what they developed was in a different category.

      --
      I want my Cowboyneal
  7. UNIX was meant as a hoax by tijsvd · · Score: 5, Funny
    Read this article:

    Creators admit UNIX, C hoax

  8. Dear Dennis by bigberk · · Score: 4, Funny

    i have never hurd of this C language, is it like C# or ASP ? I think it is very complicated and doesnt work with modern OOP models. my comp sci teacher says it has acadehmic value but the 1970s are over the language porbably doesnt have use in modern computers?

  9. UNIX forever? by Proc6 · · Score: 4, Interesting
    This article seems as fitting as any to ask a question that always rolls around in my mind. While the beginning of my own computing career was in IRIX and Solaris, and now with most of my time spent on Windows machines I, of course, still understand UNIXs power and miss working with it daily.

    But I guess I'm curious as to why nearly all OS focus is on UNIX or a derivative? From Linus's knock off, to Mac moving to a UNIX core to even the pretty original BeOS. Why are we reinventing the wheel and not coming up with something completely new?

    This is not a troll, I am just looking for the various opinions. Is UNIX the basis for everything non-Microsoft because it's the pinnacle of perfection? Or, like movie plots, did 1 person invent a good thing and everyone else just replicates it with their own flare? It seems to me by now we might have 20/20 hindsight, a whole lot of real world usage and a completely new operating system based on "nothing" might be even better? I've heard of course the "because as soon as you have UNIX, you have access to a zillion packages that port easily", which is great, but frankly, does it matter that I can get X's little "Eyes" app running under my new BobIX OS in under 15 minutes? Maybe writing a completely new "Eyes" under a new OS could be as fast or faster than a UNIX port to a UNIX OS if the new OS was built right? The UNIX filesystem is a mess, that's always bothered me. I dont know, again, not a troll, UNIX rocks - just wondering why there isn't (or if there is?) any group out there writing completely new from the ground up without using UNIX as their model?

    --

    I'm Rick James with mod points biatch!

    1. Re:UNIX forever? by joeykiller · · Score: 4, Interesting
      I dont know, again, not a troll, UNIX rocks - just wondering why there isn't (or if there is?) any group out there writing completely new from the ground up without using UNIX as their model?
      I don't know if this is satifying enough for you, but check out ReactOS. These guys are writing a Windows NT 4 clone from the ground up. Granted, they're not starting from scratch with entirely new ideas, but at least they're satisfying your demand of writing an OS "without using UNIX as their model".
    2. Re:UNIX forever? by skyman8081 · · Score: 3, Interesting

      Yes, I agree, that the UNIX'y way of things is showing it's age.

      I mean, there have been some really good efforts to de-unixify unix, such as the STEP's (NeXTSTEP, OPENSTEP, Rhapsody, OS X)
      how many normal users are going to figure out what /bin /usr /var /etc /sbin mean?
      I know a at least two Linux distros that are going to attempt to fix this, GenSTEP and Komodo

      from what I have seen and heard from the developers, the release looks to be very promising in terms of leaving behind the old timey UNIX guts, and looking like a modern, well designed OS.

      SHAMELESS PLUG TERMINATED

      --
      Two Roommates and a Boyfriend, updates Monday, Wednesday, and Friday
  10. 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
  11. The sad loss of the terminal room by Paul+Crowley · · Score: 3, Insightful

    Dr Pike says that the thing he misses most from the 1970s at Bell Labs was the terminal room. Because computers were rare at the time, people did not have them on their desks, but rather went to the room, one side of which was covered with whiteboards, and sat down at a random computer to work. The technical hub of the system became the social hub.

    Even /. readers occasionally want to see people face-to-face. Even if we're arranging meetings over IM and bringing WiFi laptops, let's occasionally try to set eyes on other geeks :-)

  12. Pass that bong, dude by melted · · Score: 3, Insightful

    Unices were SO proprietary back in the day Microsoft is a child's play in comparison. Ever heard of FreeBSD and a lawsuit against them? UNIX systems used to cost a heck of a lot, and the entire UNIX world was thoroughly licensed and lawyer-infested. On top of that UNIX companies used to fight each other and pull "embrace and extend" thing when on the surface the system would remain POSIX compatible, but to use its advanced features you'd have to sell your soul to the devil and go entirely incompatible with everything else.

    MS entered server market precisely because of this situation. It was a low cost, no hassle alternative to UNIX that was good enough for small and medium businesses.

  13. Bare facts by Decaff · · Score: 4, Funny

    Amazingly, it ran without an embedded browser and media player.

  14. Bragging... by Tore+S+B · · Score: 4, Interesting

    Allright, allright, I'm bragging, but... I have a PDP-7!
    Don't believe me? My pics.
    Please don't link to the main site, though, it's very much under construction.

    --
    toresbe
  15. 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."

  16. Re:Does anyone know.. by MnO-BF · · Score: 3, Informative

    Looks like it has something to do with filePro. The code is from the library on this page: http://www.aljex.com/bkw/filepro/

  17. 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
  18. The moral of the story is... by peterpi · · Score: 4, Insightful

    Managers: If you have a couple of coders with nothing to do for a month or two, don't panic. Tell them to do what the hell they want and they'll come up with something useful.

  19. Better links for Dennis Ritchie by ishmalius · · Score: 3, Interesting
    I often give Prof. Ritchie's home page to newbs and students, and especially his excellent self-history of the development of the C language.

    It should be noted by detractors of C, that Mr. Ritchie himself does not think that his brainchild is perfect. This discussion contains a "Critique" section where he analyzes the strengths and failures of the language. At the end, he summarizes the language thusly: "C is quirky, flawed, and an enormous success."

    ...to which I certainly agree. It is fraught with numerous failings, yet C gets the job done, and carpets the computer world.