The Origin Of The Shell
davecb writes: "Louis Pouzin, the inventor of datagrams, just contributed an
article
to Multicians.org on the creation of the first shell, "runcom,"
on CTSS and later Multics." Multicians is one of the coolest sites I've seen -- if you think the odd Atari 2600 is retro, look out. They also provided information on the Multics scheduler a little while ago.
From runcom to unix to DOS to Linux to the Quake console. What a long, strange trip it's been.
"Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
The pun is that its phoeniticly simmilar to eunich.
I used to develop for Cray systems that ran an operating system CTSS (see here ) , but I thought it stood for Cray Time Sharing System. Is this the same as the Compatible Time Sharing System?
It is a pretty good title, perhaps I'm just being a little too literal. It wouldn't be the first time. I still laugh when I remember his analogy of operating systems as car salesmen - the bit that was something like :
Linux Guy : Our free tank does 200 mph whilst never needing gas. When it breaks we will come to your house to fix it.
Joe consumer : Stay away from my house you freak.
What exactly were the mechanics of executing runcom? Were they batch files edited on-line or punched card decks, in which case the innovation was a parse-able command language? Or did they actually use on-line terminals or some sort (old teletype ASR33s?), in which case the innovation is more radical, as it would allow for a command-based human/computer interaction? Also, was the MIT CTSS system where the original BASIC programming language was developed?
If your children ever found out how lame you are, they'd murder you in your sleep
Out of curiosity, are how does something like the Apple ][ DOS 3.3 figure into the shell world? It's not really a shell in the same way that bash or csh are since there's no specific scripting associated with them, and only a small set of actual commands. The Applesoft interpreter fits the scripting language, but its seperate from DOS -- ie, you could run without the other.
Nah, it wasnt built by Dr. Charles Forbin.
I found a shell on the beach once..
-TimmyC, Tech Guru
Then there was microYalnix but that was a different story.
Currently I'm working on a system that is named Hannibal because Hannibal is a cannibal and he eats people. I'm more concerned about a cannibal computer turning bad than one called multi-something.
How do you spell abriviated? That doesn't look right.
This is my signature. There are many signatures like it but this one is mine..
That's a modern translation. We always used to say short for "run commands", where "run" was in the mainframe-batch senee of "a run of the program". --dave
davecb@spamcop.net
Same book available from fatbrain.
/. -- especially since their price of $29.95 bites, compared the BN price of $22.75. For $30 you can this book from any number of other online book retailers.
Same book for less money at Barnes and Noble.
I must say I'm a little surprised to see such an obvious shill for amazon.com on
I do not have a signature
Chiil out man, you will get the +1 bonus one day, then you will get so bored with karma whoring that trolling becomes more interesting. The moderator points will come so often as to get pointlessly boring.
One thing is true: get rid of that sig and you will get +1 twice as fast.
and if you really hate the mods go metamoderate for a while.
DTSS? CTSS? At least I was 3/4 correct!
If your children ever found out how lame you are, they'd murder you in your sleep
Though of course Microsoft would have you believe that in the beginning was the Word...
--- These are not words: wierd, genious, rediculous
Neat.
On MIT's famed ITS (Incompatible Timesharing System), the command processor -- the analogue of the shell -- was the debugger, just enhanced with a few extra commands for logging in and such. Perhaps some slumming exITSer can explain further.
Currently, Sun's Solaris debugger command language is a ksh superset. I suppose you could use it as your login shell.
Indeed.
-r---wxrw- 1 root sys 954 Jan 18 1973 v1/bin/sh /bin/bash
-rwxr-xr-x 1 root sys 5888 May 14 1975 v6/bin/sh
-rwxr-xr-x 1 root sys 17310 May 5 1979 v7/bin/sh
-rwxr-xr-x 1 root sys 563624 Aug 1 1999
Another comparison: bash alone, not counting the shared library routines it needs, is bigger than all of the Sixth Edition kernel, /bin, /usr/bin, and /usr/games put together.
utility=log(size) is a charitable description of bash.
Think of a computer connected to a tty machine. You have a program looking after the console. It reads input, it runs output.
- You can build in commands to it.
- You can endower a simple or complex macro language to it.
- You can allow it to store output to other devices, or files.
- You can allow it to gobble up bits of the output as input.
Sounds like a command shell to me, like 4os2, command.com or csh or bash. These differ in what they can do, how good is their macro language, or the built inservices, but they are much the same otherwise.The UI has been around a long time before computers, and guess what? - it works. It even works under a GUI. And, you will find that users would get terribly upset if the pipe or keystrokes from one tty session bled through to another ...
So yes, in the beginning there was a lonely command line. But the command line needed to talk to a something. At first it phoned up other command lines, and talked to them. So was born the telegram, the telex, and the teletype.
May years passed, and they needed to talk to computers. Computers could not talk, but they could type, and who better than a telex to talk to. So we started by telexing the computer.
Telexes were expensive, and most users had to use punched cards. But when the teletype terminals became cheaper, the punched cards disappeared, and so on.
Terminals became more capable, and one could deal with the terminal as a changing page, rather than a tty session. You could use the screen as a window on a page, and from this, via a long and winding road, we get character based terminal sessions, windows, and finally, the ultimate in perfection for the GUI, the workplace shell ...
OS/2 - because choice is a terrible thing to waste.
The timeline mentions a Multics system named "LINUS" which stood for Logical Inquiry and Update System. Around 1984. Hmmm,When was LT born again? Will 2029 see "Professor reports last Linux server finally turned off?"
There is a big difference between "hacking up a better Minix" and creating a Multics clone; in the latter case, there was considerable integration between:
- The kernel, providing file, computation, and security services.
- Programming Language.
- Unix and Linux represent "minimalist" systems in a number of senses, and it seems that many prominent Linux kernel hackers prefer "more minimal" text editors like Vi to the sorts of complex tools like TECO and Emacs.
There has periodically been talk on alt.os.multics of recreating Multics; the problem is that since it tightly integrated together custom hardware, complex kernel, and a pretty sophisticated user space, there's just plain a lot to replicate.Note that the memory model was substantially different from that of Unix. With Unix, you open files and filter data in and out, and allocate memory dynamically on demand, Multics unified this, so that rather than "opening a file," you would instead "initiate a segment," so that all files would essentially be memory mapped into the address spaces of all participating processes.
Furthermore, whilst the evils of segmentation as seen with the 64k pages on the original "IBM PC" give people the impression that segmentation is evil, Multics made pervasive use of it to keep chunks of memory distinct.
Note that some of the later Pentium CPUs included segmentation instructions likely based on Multics that could have been used to help do memory management "the Multics way;" the lack of such on RISC (Alpha, IA-64, PPC, MIPS, ...) architectures and the perpetual impending doom of IA-32 means that having memory management in Multics style on "modern" hardware may need to wait another 15 years...
Multics was coded in PL/1, and the fairly byzantine complexity of PL/1 provides both the merit that some operations may be much better optimized than C, and the demerit of being pretty complex.
I just don't think "C hackers" would build Multics.
The only way I'd see it being likely would be if some of the retired Multics creators that made some Silly-Valley and/or DotCom millions decided to sponsor a several-year-long project involving a staff of on the order of a dozen pretty elite developers to provide some sort of "legacy" to retrieve Multics from the dead.
If you're not part of the solution, you're part of the precipitate.
My mistake. Looks like that might be claims 6 through 11 of this patent which essentially covers a video terminal with extra bits for each character to identify fields (though not for display appearance attributes, which were invented later). But it's not clear to me through the patentese whether this covers a video terminal cursor as such, or just the implementation of a cursor using a cursor attribute bit. Unfortunately the earlier patents it references are not in the IBM database.
I was about to merely deflate the above joke by pointing out that when the command line was invented, video terminals didn't exist, and you knew where to type by the position of the carriage or print head on the Teletype, Flexowriter, Selectric, etc. And the cursor (it there was one) was a clear plastic thing with a mark to show where the next character would strike -- the name derived from the similar sliding pointer on a slide rule.
Then I used my big dic to look up "cursor", and wanted to share what I found: "A part of a mathematical instrument, which slides backwards and forwards. 1594." So the word "cursor", with something reasonably close to its current meaning, is over four centuries old! Make Multics look like a pretty young thing.
If you're not living on the edge, you're taking up too much space.
I thought for a moment, did a bunch of net searches, and said "yeah, why not??" I don't think it would be terribly difficult... didn't Linus say something like that?
shalmaneser!
Try A Quarter Century of Unix.
That's funny, according to O'Reilly's "Running Linux", it stands for "resource configuration".
--
www.scorbett.ca
Great site! I have this(it's not goatsex!) picture from that page taped to the back of my monitor. Folks who stop by to visit look at it rather oddly and with a blank look in their eye. When I tell them what it's about, they just nod and walk away :)
"shop smart:shop s-mart" ash
This is a good debunking of Neal Stephenson's "In the beginning was the command line". In the beginning there was no command line, and when someone invented it, it was as "revolutionary" as graphical user interfaces where when Douglas Englebart invented them. They are certainly not an intrinsic part of any computer as he seems to imply.
A better title would have been "In the beginning was the sheep". Sheep produce wool, so man invented the loom. Then Jacquard invented the programmable loom. Then Ada Lovelace wrote "punch cards" for it and thus was programming invented.
I like that sig too much. At least it's not as vulgar as UID#7608's signature, or for that matter, the body of your post.
"Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
rc definition at FOLDOC. :)
I know which I'd rather put money on...
Well, well, well; three holes in the ground...
Wrong. The rc in rc.x and foorc stands for resource (sometimes .rc files are referred to as Resource Configuration files, but usually just resource).
Not RunCom.
According to the site, Multics is short for Multiplexed Information and Computing Service. Does anyone know what, if anything, Unix stands for?
--
For every post, there is an equal and opposite re-post.
two points of criticism. first, the article itself is pretty minimal in the context it provides. it doesn't talk about what went on before or after, nor what was going on at the same time. still some good information, but nothing to get worked up over.
second, the actual work described wasn't as revolutionary as people here are saying. very good, to be sure, but the really revolutionary stuff came when the idea made its way into other people's hands, and other systems. try to imagine a shell without pipes or even IO redirection. the shell, as it first existed, was mostly an evolution of batch processing. a big improvement, to be sure, but just evolution. the really interesting stuff showed up with the Unix shell, at the hands of Thompson, Ritchie, and a few others.
see this paper by Dennis Ritchie, particularly the sections on process control, IO redirection, and (most especially) pipes for some really revolutionary developments in the history of the shell.
i speak for myself and those who like what i say.
I always thought that the name shell was derived from command language:
command language -> cl -> shell
Unix is a pun, but it is a pun to Multics.
The prefix Muli means mulitple or many while the prefix Uni means one. KT wrote the original Unix for himself thus, Unix verses Multics. Check out Dennis Richies website for some history of Unix and where he points this fact out.
Gdb was my shell for quite some time. I had a special little executable that linked in all of the libaries (yes every single one -- it took a little while to start up) on the machine. Appropriately configured .cshrc and .gdbinit files popped up emacs with the gdb prompt when I logged in.
It all started one day when I had the usual problem of some file with "--" and "!" in the name, which was impossible to remove because either the shell or the command tried to parse the file name when you ran "rm". I had a gdb window running, and in a flash of insight I simply typed "p unlink("--!!!what_the_fuck")" at the prompt. Whammo! like the little linux newbie nerd I was, I incredibly proud and thought I was a genius.
At the time I regularly had to travel over to another company we were contracting with to work on their broken and mis-configured machines. I was constantly fighting the fact that someone had installed some broken tcsh over the original one, killing my ability to use up-arrow to access my history. I really used gdb as my shell there, almost exclusively. People hated me because that little executable that linked everything would start up and briefly kill the machine while it loaded everything. The link command for that executable would take a while too, when I was re-compiling it.
Of course, what I really wanted was just the ability to do Alt-p in emacs and get all my history available to me. One day someone took me aside and showed me the M-x shell command, and how you could even use cntrl-r to actually search the history, and I was blown away.
That was many years ago and I was young and naive, and I needed the money. I still use the unlink thing from a gdb prompt occasionally, to dive past the shell expansion on files that have an asterisk in them, instead of taking two or three tries to get the escape thing right. But only if I happen to have a gdb already running.
Whether anyone thinks Amazon is the M$ of online bookstores is not my concern.
A co-worker was just telling me how much he disliked the plurality of languges, and shell syntaxes pretending to be languages, involved in modern Unix. He said he liked the elegance of Lisp machines, if perhaps not the day-to-day practicality, and the fact that all software was just part of one big Lisp program. So, he said, why isn't there a real C-shell, that used (at least a subset) of actual C syntax?
I thought for a moment, did a bunch of net searches, and said "yeah, why not??" I don't think it would be terribly difficult...
VOS/Interreality project: www.interreality.org
ULTRIX ran on various VAXen and on the MIPS-based DECstations. Most models of both are well supported by NetBSD: VAX, MIPS. Most ULTRIX binaries can be run under NetBSD.
There was also ULTRIX-11 for the PDP-11, but you're almost certainly not thinking of that.
Probably not from DG, since EMC reportedly trashed everything.
I suggest asking on comp.os.aos
...in .cshrc et al.
On the history of Unix? Some place all these types of things are gathered together?
Best Slashdot Co
Damn, this is a cool article. I don't think I've seen such a direct example of radical thinking in relation to computers. There's buisness radical, which is something along the lines of "hey, we could put a brocure on the web!", and there's sci-fi radical, which generally consists of "the singularity is coming", but never such a raw, pure, approach that was so totally unique.
We could all do well to remember, this is the kind of stuff that shows greatness.
--
Feminism is the wild notion that women are human beings.
But you know when you make a computer called Multics, or even better, Multinics, it's going to turn against mankind and take over the world.
The 'rc' designation (as in /etc/rc.d/) comes from an abbreviation of 'runcom'.
-- Ed Avis ed@membled.com