Domain: bell-labs.com
Stories and comments across the archive that link to bell-labs.com.
Comments · 1,559
-
big deal
we've been doing this with Plan 9 since 2000.
from the ssh man page:
Sshnet establishes an SSH connection and, rather than execute a remote command, presents the remote server's TCP stack as a network stack (see the discussion of TCP in ip(3)) mounted at mtpt (default /net), optionally posting a 9P service descriptor for the new file system as /srv/service.
-
big deal
we've been doing this with Plan 9 since 2000.
from the ssh man page:
Sshnet establishes an SSH connection and, rather than execute a remote command, presents the remote server's TCP stack as a network stack (see the discussion of TCP in ip(3)) mounted at mtpt (default /net), optionally posting a 9P service descriptor for the new file system as /srv/service.
-
Let's take a moment...
-
Let's take a moment...
-
Let's take a moment...
-
Let's take a moment...
-
Breaking News
Breaking News:
SCO has announced that is has claim to all IP related to supernovae. SCO claims it bought the rights to view and reproduce all supernovae images from NASA back in 1996. Another suit, targetted against the Catholic Church is insurance in case there really is a God that created the supernovae. If so, then God will be part of a future lawsuit.
Being that NASA uses UNIX computers to do much of it's work, SCO is also including IBM, Novell, Dennis Ritchie and Ken Thompson as defendents in the filings.
Further updates as we get them. -
Re:Plan 9 blah blahto be more specific than Dr. Skwid, plan 9 has had multiple IP stacks from the word go (check out the man page).
but not only that, but the fact that resources can be distributed transparently over the network means that a specific network interface (perhaps an interface to the outside world) can be imported from another machine, and used, exactly as if it were a local IP stack.
none of this requires any particularly deep magic; it does however require a fresh approach from the ground up, something you're unlikely to find in any of the mainstream unix-like OSes...
-
Plan 9 blah blah
seems like plenty of ideas from plan 9 are backporting their way to the unix-likes.
People, if you want plan 9 you know where to find it :
http://plan9.bell-labs.com/plan9 -
This SCO FudDennis Ritchie has put up some of the court papers from the previous SCO (nee USL) vs University of California lawsuit that tried to destory BSD. One of the documents is an affidavit from Kirk McKusick stating that a source code audit found only 65 "infringing lines" out of around 250 000 in NET2.
It makes the Copyright statement from the terminfo file that ESR maintains seem oddly prescient. The statement is accessible on my RH8 system withhead -255
(2nd line, last paragraph). /etc/termcap | tail -19
What's next? I predict Microsoft will sue Sun for Copyright infringement of /bin/clear on Solaris. :) -
it's up to the people who created itUNIX was created by a group of people at Bell Labs. Ultimately, it should be up to them what constitutes UNIX.
Research versions of UNIX were based on bits and pieces from BSD, but they involved removing a lot of functionality, so by looking at the documentation as well as their follow-on, Plan 9, you can get a pretty good idea of what they considered good and bad.
Based on conversations I have had with the Bell Labs folks over Plan 9, I suspect that they probably wouldn't want to take responsibility for the OS X kernel.
-
it's up to the people who created itUNIX was created by a group of people at Bell Labs. Ultimately, it should be up to them what constitutes UNIX.
Research versions of UNIX were based on bits and pieces from BSD, but they involved removing a lot of functionality, so by looking at the documentation as well as their follow-on, Plan 9, you can get a pretty good idea of what they considered good and bad.
Based on conversations I have had with the Bell Labs folks over Plan 9, I suspect that they probably wouldn't want to take responsibility for the OS X kernel.
-
everything is a file is the best legacy
-
plan 9
whoo, congratulations. sounds like you're well on your way to inventing plan 9.
-
Already in UseThere are already memory-resident databases in use. For example, Lucent uses them for creating products which process cell-phone transactions. See http://www.bell-labs.com/project/dali/.
There are some cool ideas there. They use two copies on disk for backup in case of system failure. Because of this they don't have to do page-latching.
In some configurations, though, this is irrelevant, because write transactions lock the whole database! Because they know all transactions will be extremely short, this is faster than locking at page or row level.
-
Re:haha... outlook worm writers will have a field
Scott McNealy said that, but the vision was implemented by others. CMU's Mach (1985), Andrew Tanenbaum's Amoeba (1986), and Plan 9 (1987) were OSes that made a network into a computer.
To be fair, Sun does have ChorusOS , but that seems to have died the death (i.e. gone Sun Public Source) despite Scott's best intentions.
-
Dennis put up
-
Where are they now?Google to the rescue...
Simson Garfinkel eventually became a hermit and withdrew from public life after too many people mistook him for Art Garfunkel. He now lives in a cave in southern California.
Daniel Weise went on to work at Microsoft. He distinguished himself as the first non-Samoan to ever pick up Bob Barker after winning the Showcase Showdown on "The Price Is Right."
Steve Straussman (no website, sorry -- anyone?) left the Unix-Hater's list after it was revealed that he had fallen in love with a woman who loved Unix. He has come to terms with the past, and now teaches "How to Shell Script in Linux" classes at his local community college.
John Klossner went on to a successful career making cartoons for Lucas' Skywalker Sound company newsletter, until fired for printing one that suggested an unnatural intimacy between Luke Skywalker and Chewbacca.
Donald Norman won the coveted "Golden C< Prompt" award and retired from public life.
Dennis Ritchie became something of a celebrity on the web for his many and varied contributions of photos to Engrish.com.
Scott Burson became a monk and moved to Iceland.
Don Hopkins ran for office in Lousiana and lost. He is now a semi-successful insurance salesman, and plays harmonica regularly.
That was all I could find out about -- anyone got any more?
-
Re:Make "Cell" chip Open Source!
You are so amusing. I personally know two such individuals, Lorenz Huelsbergen at Bell Labs, and the other one is Dr. David Kranz at MIT.
-
Re:Real functionality for mouse buttonsI use plan 9, and spend most of my time inside acme, which in my view has one of the nicest developer interfaces around.
The mouse interface feels particularly natural once one is used to it and not only do all three buttons have distinct (and consistent) uses, combinations of buttons do too!
- button 1 selects text.
- button 2 selects text; it then executes the selected text as an editor command, or a shell command.
- button 3 selects text; it then looks for that text: if it's a filename, it opens it in a new window, or moves to it if already open; otherwise it looks for the next occurrence of that text inside the current window.
For operations like cut & paste, that's a little time consuming so there are mouse short cuts, using mouse chords. If you've selected some text with button-1, before you let go of the button, you can click button-2 to cut the text, or button-3 to paste some text. (button-2 followed by button-3 leaves the text unchanged, just copied into the copy&paste buffer).
This is immensely convenient - you can do without the keyboard for a great deal of editing work, shuffling pieces of code around, browsing looking for variable declarations, running compilations, etc, etc. Rather than having my hands always on the keyboard and occasionally moving to the mouse, I find my hand is always on the mouse, and only occasionally moves to the keyboard (to enter text! - exactly what the keyboard is for).
Here's an example of a system that uses 3 mouse buttons in a completely consistent way to really leverage the expressive power of a mouse.
-
Re:Real functionality for mouse buttonsI use plan 9, and spend most of my time inside acme, which in my view has one of the nicest developer interfaces around.
The mouse interface feels particularly natural once one is used to it and not only do all three buttons have distinct (and consistent) uses, combinations of buttons do too!
- button 1 selects text.
- button 2 selects text; it then executes the selected text as an editor command, or a shell command.
- button 3 selects text; it then looks for that text: if it's a filename, it opens it in a new window, or moves to it if already open; otherwise it looks for the next occurrence of that text inside the current window.
For operations like cut & paste, that's a little time consuming so there are mouse short cuts, using mouse chords. If you've selected some text with button-1, before you let go of the button, you can click button-2 to cut the text, or button-3 to paste some text. (button-2 followed by button-3 leaves the text unchanged, just copied into the copy&paste buffer).
This is immensely convenient - you can do without the keyboard for a great deal of editing work, shuffling pieces of code around, browsing looking for variable declarations, running compilations, etc, etc. Rather than having my hands always on the keyboard and occasionally moving to the mouse, I find my hand is always on the mouse, and only occasionally moves to the keyboard (to enter text! - exactly what the keyboard is for).
Here's an example of a system that uses 3 mouse buttons in a completely consistent way to really leverage the expressive power of a mouse.
-
Re:Publishers should hire college geeks to proof c
Publishers should hire college geeks to proof code
I was once a student of Rob Pike ,author of "The Unix Programming Environment with Brian Kernighan (the K in K & R). They were at the time writing The Practice of Programming again with Kernighan.
The course notes for this subject were basically the chapters of the book. He asked all his students to read through the code examples and let him know if there were any problems. I don't know if we can claim all the credit (I found some errors in the early chapters) but this book has a very short errata page.
Mind you I can't remember a code example where they got sizeof(char) wrong!! -
Re:Publishers should hire college geeks to proof c
Publishers should hire college geeks to proof code
I was once a student of Rob Pike ,author of "The Unix Programming Environment with Brian Kernighan (the K in K & R). They were at the time writing The Practice of Programming again with Kernighan.
The course notes for this subject were basically the chapters of the book. He asked all his students to read through the code examples and let him know if there were any problems. I don't know if we can claim all the credit (I found some errors in the early chapters) but this book has a very short errata page.
Mind you I can't remember a code example where they got sizeof(char) wrong!! -
Re:Publishers should hire college geeks to proof c
Publishers should hire college geeks to proof code
I was once a student of Rob Pike ,author of "The Unix Programming Environment with Brian Kernighan (the K in K & R). They were at the time writing The Practice of Programming again with Kernighan.
The course notes for this subject were basically the chapters of the book. He asked all his students to read through the code examples and let him know if there were any problems. I don't know if we can claim all the credit (I found some errors in the early chapters) but this book has a very short errata page.
Mind you I can't remember a code example where they got sizeof(char) wrong!! -
malloc/free broken under NT...Memory Management???malloc() and free(), the first two dynamic memory management functions that most C programmers learn, were broken back in Windows NT.
If you ever had an application ported from UNIX to NT that wasn't a memory hog under UNIX but slowly ate its way through virtual memory on NT, this is most likely why.
Microsoft sneakily added the _heapmin() function to combine contiugous small free'd blocks into big chunks of memory.
Unfortunately, free(), malloc()'s happy buddy, had been combining free blocks on each call to free() since the dawn of the C programming language.
My guess is Microsoft got better performance on benchmarks by essentially not freeing memory!
If you look at K&R "The C Programming Language", Kernighan & Ritchie implement malloc and freefree() itself is the last thing. It scans the free list, starting at freep, looking for the place to insert the free block. This is either between two existing blocks or at the end of the list. In any case, if the block being freed is adjacent to either neighbor, the adjacent blocks are combined. The only troubles are keeping the pointers pointing to the right things and the sizes correct.
Hey but don't take my word for it. Intel has warned you about this for a while, [p.61 of 101].NOTE for MSVC users: As in any C application, the standard C calls malloc() and free() may be used to manage memory. If you are using the Microsoft Visual C++ compiler, it is VERY IMPORTANT to note a scarcely documented fact of the Win32 API, in that free() does not actually free the memory that is being accessed (as it does in most standard C compilers). MSVC will free the pointer to the memory but will not actually release the physical memory. To release the physical memory a call to the Windows extension function _heapmin() must be made. This function should be documented in Win32 API documentation but it may be noted that it is difficult to find a reference to it otherwise. If the application uses free() and malloc() but not _heapmin() then virtual memory issues will arise during extended use of the application.
But Mircosoft "fixed" it in MSVC 4.0 and up.Note [New feature hides ugly bug]In Visual C++ Version 4.0, the underlying heap structure was moved to the C run-time libraries to support the new debugging features. As a result, the only Win32 platform that is supported by _heapmin is Windows NT. The function returns -1 and sets errno to ENOSYS, when it is called by any other Win32 platform. [But what happens if you run an old VC < 4.0 compiled binary? Probably the old function gets called]
In a related move, Microsoft has quietly added to the Windows SDK that the color red, formerly 622 - 760nm, shall be redefined with the values 455 - 492nm (formerly known as blue). Programs from other platforms should add a call to the _PutOnRoseColoredGlasses() function to avoid compatibility problems. :-) -
Re:Missed the Point.
The poster has missed the point and has confused two seperate issues into one. (DMR and machine security)
The parent poster however has confused DMR with DRM. I don't think DMR would be amused :) -
Maybe the're switching...
to Plan 9
-
Re:I was expecting better...
lets not forget http://www.bell-labs.com/project/tts/voices.html
-
And don't forget Bell Labs
IBM is not alone to work on text-to-speech technology and to have demos where you can type a phrase and listen to it. The Bell Labs Text-to-Speech system (TTS) has its own page featuring fun demos. "You can play with our basic interface for some of our Text-to-Speech systems: American English, German, Mandarin Chinese, Spanish, French, Italian and Canadian French." This page is pretty old (it makes references to Netscape 3!!), but the demos still run fine.
-
Re:Meta-Programming books suck
It was a good start, but is too widely regarded as the be-all and end-all of software patterns. Jim Coplien has some pretty damning criticism of the cargo cult that this book has become. Hint: get some Gerald Weinberg in your bookshelf, start with "An Introduction to General Systems Thinking" if you can find it anywhere.
-
Dennis Ritchie Comments and Documents from
Here are Dennis Ritchie's Comments from usenet and some supporting documentation from the USL vs. BSDI case.
-
"Wired" magazine on drugshttp://www.wired.com/news/infostructure/0,1377,57
9 55,00.html
AT&T's Unix Systems Laboratories developed Unix in the 1960s.
UNIX was developed by Ken Thomson in the 1960's. There was no AT&T USL in the 1960's.
More -
duh
Convergence of P2P and Grid?? Well, DUH. They're basically two names for the same thing. Almost.
I hope to see some of plan 9 in "the grid". Need another CPU? Mount it into the filesystem... -
we already have that
-
METAPOST
You don't state exactly what you're going to do with the graphs, but I assume at some stage they're for inclusion in reports.
If so, use METAPOST.
On that page is a specific section on formatting graphs with METAPOST. It is a bit more complicated than throwing them out of MATLAB (which is what I'd choose for looking at the results day to day), but I guarantee that it will look more "professional", and well just plain better than any other method. And it is free. It also has the advantage of being based on Donald Knuth's work with METAFONT (itself work for TeX, which is essential for all maths/scientific publications) and it is what he uses for TAOCP. That should be enough. -
Old News: Main Memory Databases
Main Memory Databases have been researched for nearly 10 years now and there are a number of commercial products. For details you can check out:
TimesTen
Polyhedra
DataBlitz
etc..
The idea it to have enough RAM to be able to store all the database in memory. This gives higher performance than a fully cached Oracle for two primary reasons:
- there is no buffer manager so data can be directly accessed.
- the index structures use smart pointers to access the data in memory.
Typically the data is mapped using mmap or shared memory. Each application can have the databae directly mapped into its memory space.
For providing persistence, typically main memory databases provide transaction logging and checkingpoint to be able to recover the data. Various techniques have been developed to be able to do this without affecting performance. -
the other cleanupI agree with that view, but perhaps a name change (UNIX to Linux) was bound to go along with that rewrite.
But perhaps Plan 9 from Bell Labs has a more direct claim on being the direct successor to UNIX. And, for better or for worse, I think Plan 9 embodies more directly a traditional clean, minimalist UNIX philosophy. That may not be as practical or comfortable to live in as Linux, but, then, neither were the traditional Bell Labs versions of UNIX.
It's a shame that the Plan 9 license is too restrictive for it to catch on much in the open source world, because it would be interesting to see how competitive it could be in the real world.
-
Re:you gotta wonder...
Porting UNIX programs to OS X can be a lot of work, much more than to just about any other platform that claims to be UNIX-compatible.
Have you actually ported something yourself? Are you talking about porting a project that previously only ran on Linux/x86, or projects which already ran on several different UNIX'es? I have personally compiled a couple of small things which I found and they didn't require that much tinkering. The fact that they did require tinkering doesn't prove your point, because those projects were already full of conditional defines for the other supported UNIX'es, Darwin just wasn't present (and didn't require a lot of extra defines or changes, definitely not more than the others).In case you care, the programs I'm talking about are base64 (a simple base64 decoder, required no changes), HUGS (a Haskell interpreter, didn't require any changes either to compile, only to install; note that this was before it was includeded in the fink ports tree) and umoria (rogue clone, required 3 changes).
A UNIX kernel hacker coming to Darwin has to start learning from scratch because its architecture is so different.
Then why are people who ask about poorly documented area's of the Darwin kernel (e.g. the Virtual File System layer) referred to the relevant documentation for 4.4BSD by Apple employees? (login/pass = archives/archives).Apart from that, do you really think the kernels of Solaris, AIX, Linux, 4.4BSD,
... have that much in common? (even ignoring the fact that some of those follow System V with POSIX interfaces bolted on later, while others are the other way round). There simply is no "standard UNIX kernel implementation", except maybe the original one by AT&T. When one OS is better at low-level things (e.g. multithreading or virtual memory handling), this pretty much invariably means that that particular OS has completely different (or at least heavily hacked) implementation of this facility than other OS'es (otherwise it would be the same). That doesn't make it less UNIX or anything else though.X11 on OS X is rather inefficient.
No, it's not. Older implementations were, because they didn't use hardware acceleration. X11 is also inefficient under Linux when used together with a graphics chipset for which no proper XFree86 drivers are available. Current implementations (XFree86 4.2.99 and later, including the newly released 4.3.0) are quite snappy under OS X, using full hardware accelleration (although I still fail to see how this makes Mac OS X more or less of a UNIX).Multimedia works differently.
You mean you don't need 4 or 5 sound daemons under Mac OS X because one program requires this one and another that one? Or that there's no /dev/dsp? (there isn't one under Solaris either, does that mean Solaris isn't a real UNIX according to you? Look here for more info).Etc. Etc. OS X just doesn't function like a "true, complete Unix". It's a good approximation, but no more.
Unless you meant Linux instead of Unix in the above sentence, I think you are dead wrong.On OS X, X11 runs on top of, and in parallel with, the existing Mac window system. Normally, X11 has sole and complete control of the frame buffer, graphics hardware, and accelerator.
You can run X11 on Mac OS X both rootless (i.e. next to the standard Mac OS X GUI) and rooted (completely on its own, Mac OS X's windowserver killed or on a pure Darwin System). On Linux, X11 uses drivers to access the hardware acceleration features of the available graphics card. On Mac OS X, it uses drivers as well. The only difference is that in the former case, the drivers are part of the XFree package (since there are such drivers by default on a Linux system), on Mac OS X it uses the drivers that come with Mac OS X.According to you, would Mac OS X be more of a Unix if the XFree people had to write their own driver, i.e. if Mac OS X didn't supply it's own accelerated drivers? Or does supplying a default window server that is different from X11 make an operating system suddenly less Unix?
The fact simply is that all UNIX flavors differ on several points, but that doesn't make any of them less of a UNIX. Some more general UNIX reading can be found at Bell Labs.
-
Re:Flip side
There are things in Java that will NEVER allow Java to be useful as a general purpose language. The lack of an unsigned datatype is probably the most egregious flaw.
Be careful of making predictions in the computer world. It was once said that only Assembler could ever be used to make an operating system. Compilers would never be able to make code efficient enough. Then along comes these guys, Dennis Ritchie and Ken Thompson who proved them all wrong. -
Re:Flip side
There are things in Java that will NEVER allow Java to be useful as a general purpose language. The lack of an unsigned datatype is probably the most egregious flaw.
Be careful of making predictions in the computer world. It was once said that only Assembler could ever be used to make an operating system. Compilers would never be able to make code efficient enough. Then along comes these guys, Dennis Ritchie and Ken Thompson who proved them all wrong. -
Re:Use PC as a server?
-
Re:My question is this...
... or Bell Labs for the S language for that matter.
-
better than a new VM
the better I was refering to in my post was speciifally that a new VM is required. Plan9 talks via a published protocol [9p] implementable on any platform. I guess
.NET is potentially available everywhere but we know it won't be.
You are right that some knowledge is required up front to know what commands to issue.
One of the main advatages is the standardisation.
I presume you already know how to use cat, ls, grep, echo, > | & friends.
The use of familiair tools and a textual interface is to go with the "everything is a file" paradigm.
what to know where the mouse pointer is
%cat /dev/mouse
play some audio
cat audio.pcm > /dev/audio
want to play it on another machine's soundcard ?
import -a machine /dev/audio /n/machine_audio
cat audio.pcm > /n/machine_audio
(permissions permitting of course)
Plan 9 has more to offer than just a few file semantics.
If you really are interested than a set of papers & all the manual pages are available. Installation is fairly straight-forward [hardware permitting] and there is a VMWare image also available.
Plan 9 isn't trying to be on everyone's desktop, it's more a market of ideas.
http://plan9.bell-labs.com/plan9
I can particularly recommend the plumber. File associations are pretty limiting. Imagine a system where regular expressions and a few shell scripts do the work. I wrote a class browser for my PHP code so that right clicking $foo->bar(); would bring up the definition of ->bar from my PHP source code [which sits on a FreeBSD machine] and it took me about 15 minutes.
-
better than a new VM
the better I was refering to in my post was speciifally that a new VM is required. Plan9 talks via a published protocol [9p] implementable on any platform. I guess
.NET is potentially available everywhere but we know it won't be.
You are right that some knowledge is required up front to know what commands to issue.
One of the main advatages is the standardisation.
I presume you already know how to use cat, ls, grep, echo, > | & friends.
The use of familiair tools and a textual interface is to go with the "everything is a file" paradigm.
what to know where the mouse pointer is
%cat /dev/mouse
play some audio
cat audio.pcm > /dev/audio
want to play it on another machine's soundcard ?
import -a machine /dev/audio /n/machine_audio
cat audio.pcm > /n/machine_audio
(permissions permitting of course)
Plan 9 has more to offer than just a few file semantics.
If you really are interested than a set of papers & all the manual pages are available. Installation is fairly straight-forward [hardware permitting] and there is a VMWare image also available.
Plan 9 isn't trying to be on everyone's desktop, it's more a market of ideas.
http://plan9.bell-labs.com/plan9
I can particularly recommend the plumber. File associations are pretty limiting. Imagine a system where regular expressions and a few shell scripts do the work. I wrote a class browser for my PHP code so that right clicking $foo->bar(); would bring up the definition of ->bar from my PHP source code [which sits on a FreeBSD machine] and it took me about 15 minutes.
-
Russian aerospace tourismKen Thompson, of UNIX fame, has an account of a visit he made to Russia, a few years ago, as an aerospace tourist. I imagined that Tito and Bass were just getting the deluxe version.
I have read elsewhere about space tourism trips where you do everything Thompson does here, plus things like training in the Russian equivalent to NASA's "vomit comet", riding in a centrifuge, plus some of the basic cosmonaut training that Tito got, but no actual flight.
-
Re:Why do the fathers of UNIX dislike Linux so mucIt's brilliant! It's occasionally scary and convoluted, but it's GOOD CODE!
Code is GOOD if it provides users with the features they need. The old Unix code may be robust and elegant, but it lacks features. Essential things like networking, graphics, and user IO over anything but a vt100.
When users start to demand features that are far beyond the scope of the original design, the developer can take two courses:
- Stuff the new capabilities into the original software anyplace they'll fit. This created Unix variants like Linux (and Solaris, and the others that are still maintained). The code may be a mishmash, but new features are provided, and direct backwards compatibility wasn't sacrificed.
- Toss out the old design and create something new which includes all the desired features from the beginning. This is what the elgance-minded inventors of Unix did, but the change was so drastic that it would've required legions of existing users to re-engineer their systems. Today, nobody uses the result.
It's pragmatism versus ideals. In a vacum, the most beautiful approach may seem best. But is it "GOOD" if you can't really deploy it? Today's WWW is an ugly, hackish rat's nest compared to the design of the Xanadu proposal from decades earlier. But it exists, and it works.
(Even aside from unforseen new capabilities, the old Unix utils for things like text processing filters often turning out to be inadequate. They'd have firm upper limits on input sizes, or would deccelerate unacceptably when asked to do a big job. Simplistic design mean shortcomings in some uses. GNU versions of fileutils, for instance, corrected a lot of these limitations, at the cost of uglified source code)
Sendmail is good code.
If it's so great (and also free), why have so many people been inspired to reinvent the mail server? Qmail, Exim, Postfix... - Stuff the new capabilities into the original software anyplace they'll fit. This created Unix variants like Linux (and Solaris, and the others that are still maintained). The code may be a mishmash, but new features are provided, and direct backwards compatibility wasn't sacrificed.
-
Have we reallly come a long way?From Denis Ritchie's 1972 talk notes about unix:
For example, it takes about 50 seconds to assemble and install a new UNIX system.
I think we can finally do that again now, but what kind of hardware would it take??
-
Re:Ritchie's Plan 9Why is Plan 9 cool? I don't know much about it am really curious. What does it do that UNIX does not?
There are various bits of UNIX (and I include Linux here, as it's essentially a UNIX clone) that have been bolted on without regard for the elegance of the whole system. In particular, graphics, pseudo terminals and networking were all added late in UNIX's lifetime and considerably clutter the system and limit its capabilities.
Take the ubiquitous psueudo terminals as an example. Almost nobody actually uses a genuine VT220 (or whatever) as their input device. However, the output from every command-line program in UNIX goes through something that pretends to be such a device. The kernel has much elaborate stuff (the tty driver) built in to convince command line programs that they're talking to a real terminal. The kernel knows about command line editing, it knows how to print control characters nicely, and it knows what key means "word erase".
This is all crap! It adds unnecessary complexity to the kernel, and not only that, but every command line program that wants a a slightly more sophisticated interface (e.g. cursor-based editing) has to do it itself (c.f. GNU readline). This not only bloats the kernel and many of its applications, it also means that the commands are less versatile than they could be (requiring people to use tools like expect to demangle their output).
Under Plan 9, there are no special system calls devoted to terminals or networking: instead, the interface to device drivers is made more versatile (all you need is open, read and write to access a device driver, no fancy ioctls or fcntls required. This gets back to the original purity of the 7th Edition programming interface: programs are a joy to write, and once written can be put to many more uses, as the currency of command line programs (text written to stdin/stdout) is also the currency of device drivers.
Because everything is unified under one hood (the name space), I don't have to write a special program to get fancy functionality. Want to find out what programs have a particular file open?
grep filename /proc/*/fd
Plan 9 is all about the joys of writing less code, more cleanly, and finding it more useful when written; of having a box of tools that can be plugged together in a multitude of different ways, transparently and securely across networks; of having a clean user interface that is concerned principally with power and simplicity rather than appearance.Of course in this day and age, when a word processor takes >2,000,000 lines of code and "features" are rated more highly than overall usability, it's not surprising that Plan 9 isn't that well known, or that Dennis Ritchie reverts to Windows NT in order to browse the web.
As for myself, I'll stick to Plan 9's (and Inferno's) deep joy for as long as I possibly can!
-
Re:Ritchie's Plan 9Why is Plan 9 cool? I don't know much about it am really curious. What does it do that UNIX does not?
There are various bits of UNIX (and I include Linux here, as it's essentially a UNIX clone) that have been bolted on without regard for the elegance of the whole system. In particular, graphics, pseudo terminals and networking were all added late in UNIX's lifetime and considerably clutter the system and limit its capabilities.
Take the ubiquitous psueudo terminals as an example. Almost nobody actually uses a genuine VT220 (or whatever) as their input device. However, the output from every command-line program in UNIX goes through something that pretends to be such a device. The kernel has much elaborate stuff (the tty driver) built in to convince command line programs that they're talking to a real terminal. The kernel knows about command line editing, it knows how to print control characters nicely, and it knows what key means "word erase".
This is all crap! It adds unnecessary complexity to the kernel, and not only that, but every command line program that wants a a slightly more sophisticated interface (e.g. cursor-based editing) has to do it itself (c.f. GNU readline). This not only bloats the kernel and many of its applications, it also means that the commands are less versatile than they could be (requiring people to use tools like expect to demangle their output).
Under Plan 9, there are no special system calls devoted to terminals or networking: instead, the interface to device drivers is made more versatile (all you need is open, read and write to access a device driver, no fancy ioctls or fcntls required. This gets back to the original purity of the 7th Edition programming interface: programs are a joy to write, and once written can be put to many more uses, as the currency of command line programs (text written to stdin/stdout) is also the currency of device drivers.
Because everything is unified under one hood (the name space), I don't have to write a special program to get fancy functionality. Want to find out what programs have a particular file open?
grep filename /proc/*/fd
Plan 9 is all about the joys of writing less code, more cleanly, and finding it more useful when written; of having a box of tools that can be plugged together in a multitude of different ways, transparently and securely across networks; of having a clean user interface that is concerned principally with power and simplicity rather than appearance.Of course in this day and age, when a word processor takes >2,000,000 lines of code and "features" are rated more highly than overall usability, it's not surprising that Plan 9 isn't that well known, or that Dennis Ritchie reverts to Windows NT in order to browse the web.
As for myself, I'll stick to Plan 9's (and Inferno's) deep joy for as long as I possibly can!
-
Re:Ritchie's Plan 9Why is Plan 9 cool? I don't know much about it am really curious. What does it do that UNIX does not?
There are various bits of UNIX (and I include Linux here, as it's essentially a UNIX clone) that have been bolted on without regard for the elegance of the whole system. In particular, graphics, pseudo terminals and networking were all added late in UNIX's lifetime and considerably clutter the system and limit its capabilities.
Take the ubiquitous psueudo terminals as an example. Almost nobody actually uses a genuine VT220 (or whatever) as their input device. However, the output from every command-line program in UNIX goes through something that pretends to be such a device. The kernel has much elaborate stuff (the tty driver) built in to convince command line programs that they're talking to a real terminal. The kernel knows about command line editing, it knows how to print control characters nicely, and it knows what key means "word erase".
This is all crap! It adds unnecessary complexity to the kernel, and not only that, but every command line program that wants a a slightly more sophisticated interface (e.g. cursor-based editing) has to do it itself (c.f. GNU readline). This not only bloats the kernel and many of its applications, it also means that the commands are less versatile than they could be (requiring people to use tools like expect to demangle their output).
Under Plan 9, there are no special system calls devoted to terminals or networking: instead, the interface to device drivers is made more versatile (all you need is open, read and write to access a device driver, no fancy ioctls or fcntls required. This gets back to the original purity of the 7th Edition programming interface: programs are a joy to write, and once written can be put to many more uses, as the currency of command line programs (text written to stdin/stdout) is also the currency of device drivers.
Because everything is unified under one hood (the name space), I don't have to write a special program to get fancy functionality. Want to find out what programs have a particular file open?
grep filename /proc/*/fd
Plan 9 is all about the joys of writing less code, more cleanly, and finding it more useful when written; of having a box of tools that can be plugged together in a multitude of different ways, transparently and securely across networks; of having a clean user interface that is concerned principally with power and simplicity rather than appearance.Of course in this day and age, when a word processor takes >2,000,000 lines of code and "features" are rated more highly than overall usability, it's not surprising that Plan 9 isn't that well known, or that Dennis Ritchie reverts to Windows NT in order to browse the web.
As for myself, I'll stick to Plan 9's (and Inferno's) deep joy for as long as I possibly can!