Domain: bell-labs.com
Stories and comments across the archive that link to bell-labs.com.
Comments · 1,559
-
acme - was Re:what's so great about this?
I'm wit that. I could never figure out the point of a GUI file manager. The text is the important part! The stupid little icons are useless noise. If you want to see an intelligently designed UI where you you can actually do powerful things with mouse and text, see Rob Pike's Acme UI from Plan 9. Other Plan 9 papers here.
-
acme - was Re:what's so great about this?
I'm wit that. I could never figure out the point of a GUI file manager. The text is the important part! The stupid little icons are useless noise. If you want to see an intelligently designed UI where you you can actually do powerful things with mouse and text, see Rob Pike's Acme UI from Plan 9. Other Plan 9 papers here.
-
Re:The oldies are the bestYou can get info on this comment at Dennis Ritchie's Website under "Insider Secrets" (its a little ways down the page).
If you don't have the URL memorized, just click this.
-
See this, too, why Inferno is better than Java
The current release of Plan 9 will must soon have Inferno available as an optional subsystem, because that is such and obvious application. The existing Inferno version for old Plan 9 was not mentioned, because it seems to be in need of a little tuning to reduce some now redundant functionality in the new Plan 9 environment.
See also:
The design of the Inferno virtual machine
Phil Winterbottom and Rob Pikehttp://www.cs.bell-labs.com
/cm/cs/who/rob/hotchips.htmlAnd I note, that Plan 9/ Inferno has a security model, which is a millennium more advanced than that of Java.
Ceterum censeo: XML is a hoax. Luckily, Plan 9 has no use of it whatsover.
-
Re:Maybe Inferno is next?
Some comments on the article:
Limbo avoids the complex object-oriented features of C++ but has more basic types - lists, strings, tuples, etc. - and programming concepts - threads, communication channels - built into the language.
- basic types: lists seem to be the ArrayList in Java, strings exist as instances of the class String. I don't know what a tuple is though.
- programming concepts: Java threads seem to be build in the language, just take a look at the class Thread/.
Also, the collector reclaims memory as soon as the last reference is released, to minimize the memory needed for execution.
Isn't that called reference counting? Something that compromizes execution speed.
Coupled with Limbo's `instant free' property, this eliminates the need even to write special free routines, let alone call them.
Yes, garbage collecting (or reference counting as I said before).
and a few comments to the poster:
Face it, Java was "designed" for appliances, then, made to work for applets and now, we're to understand it's just perfect for server side programming and practically made for XML. Give me a break.
Unix/Linux was designed for servers, then, made to work for the desktop and now, we're to understand it's just perfect for embedded devices.
We'll see... Too little, too late? I don't think so. Despite all the feverish development going on with Java, what real impact has it had? How many people really use Java in production systems today?
At the bottom of the article it says "Since we plan to provide Java support, Inferno is more a complement to Java than a competitor with it. ". The author doesn't seem to think Java's a lost cause.
On a side note: if you want to know how many people use Java, ask on JavaLobby and ask.---
Besides this, Inferno seems to be really cool! These were just some comments I had to make.
Donate Food for Free - http://www.thehungersite.com -
Central Servers?
Am I correct in understanding that Plan 9 is designed to use central servers (esp. file)? This seems rather antiquated when it can be assumed that all the workstations have hard disks.
I know Beowulf clusters are usually used for dedicated supercomputing, but don't they and Plan 9 come from similar philosophies?
Finally, the Introduction says "a remote 8½ application sees the mouse, bitblt, and consfiles for the window as usual in
/dev; it does not know whether the files are local." To me this implies that if OpenGL were to be ported I could run Quake using my local workstation's video card but all the available computing power of the entire network. -
Maybe Inferno is next?Well, there is th is interesting comment from none other than Dennis Ritchie.
Maybe Inferno and Limbo are the next to go Open Source? We'll see!
I have to say that I've always thought that Limbo sounded like a much better thought out Java. Read this for some interesting points.
Face it, Java was "designed" for appliances, then, made to work for applets and now, we're to understand it's just perfect for server side programming and practically made for XML. Give me a break.
Inferno/Limbo actually looks like there really was thought and design put into them to make a good networked programming environment. I've always thought that the licensing was a hindrance to the adoption of Inferno in contrast to Java, but maybe that'll be fixed now?
We'll see... Too little, too late? I don't think so. Despite all the feverish development going on with Java, what real impact has it had? How many people really use Java in production systems today?
-Jordan Henderson -
We want Inferno!Inferno is the successor of Plan 9 and very similar in some ways.
Since the project has not taken off as much as it could have, many people have suggested that it be made "open" to further its development. Hopefully, the positive responses from the decision to release Plan 9 as Open Source will convince the guys at Bell Labs that releasing Inferno as well would be a good idea.
-
Original UNIX man pagesA bit off-topic, but if you go to the root page, they have pointers to the 'original' V7 manuals. This is a bit of a bonus for me because they include the original reference docs for [nt]roff, tbl, etc.
Section 2b (page 147) also includes an 'setup' section which indicates that V7 binaries fit on a 2.5MB partition and the sources fit onto a 9MB partition. (!). Ah, for the good old days. (cough, cough)The 'bc' manual also indicates that it could multiply two 500 digit numbers in about 10 seconds. As a quick benchmark, this places a PDP/11 at about 1/2000 the speed of a P3-450 (~0.25 BogoMIPS). Ah, for the good old days. (cough, cough)
-- -
Security musings..Hm. From the overview on Bell Labs' site..
Each window is created in a separate name space. Adjustments made to the name space in a window do not affect other windows or programs, making it safe to experiment with local modifications to the name space, for example to substitute files from the dump file system when debugging.
I'm assuming that they really mean "process" when they say "window" here (and I could be wrong), but the things one could conceivably do with a complete and separate namespace per process make chroot look like kid toys.
If everything including the TCP stack is accessed as a file, and every process can have it's own namespace, then you could have a webserver that only sees the part of the filesystem (as in actual documents) that it needs to serve, and only sees the part of the network stack it needs to talk to..
The support for clustering also appears to be quite impressive. Check out the "import" and "cpu" commands..
Looks like something I'm going to have to check out. My main questions mostly have to do with what the security and access control mechanisms look like for exported resources. I don't want Joe X. Random importing my ethernet interface and then hopping out through that to wreak havoc on the world..
Another issue is that all tty/user input tasks seem to be under the control of the windowing system. I kind of like booting in textmode.. Plus, if all that stuff is handled by the windowing system, is the OS even capable of handling, say, a telnet daemon? Hate to sound stupid, but ya gotta wonder..
Oh well. I guess I'll cease my uninformed musing..
-
This Rocks!!!
The license appears to be a modified BSD-type license. The system design is fantstic. If we all used Plan 9, we could stop fooling around with PVM, Mosix, etc. and have Real Distributed Computing. It's windowing system, ½, is only a 90k binary on the 68020 processor. Much less bloat than X! And there's NO MOTIF on Plan 9! An added bonus! (rimshot)
From http://plan9.bell-labs.com/sys/do c/8½/8½.html
Here is a complete program that runs under 8½. It prints the string "hello world" wherever the left mouse button is depressed, and exits when the right mouse button is depressed. It also prints the string in the center of its window, and maintains that string when the window is resized.
#include
#include
#include
void
ereshaped(Rectangle r)
{
Point p;
screen.r = r;
bitblt(&screen, screen.r.min, &screen, r, Zero); /* clear */
p.x = screen.r.min.x + Dx(screen.r)/2;
p.y = screen.r.min.y + Dy(screen.r)/2;
p = sub(p, div(strsize(font, "hello world"), 2));
string(&screen, p, font, "hello world", S);
}
main(void)
{
Mouse m;
binit(0, 0, 0); /* initialize graphics library */
einit(Emouse); /* initialize event library */
ereshaped(screen.r);
for(;;){
m = emouse();
if(m.buttons & RIGHTB)
break;
if(m.buttons & LEFTB){
string(&screen, m.xy, font, "hello world", S); /* wait for release of button */
do; while(emouse().buttons & LEFTB);
}
}
}
The complete loaded binary is a little over 26K bytes on a 68020.
The only thing X can do in 26 bytes is dump core.
A web application server built using Plan 9 should be uber-scalable! Too much load? Add more CPU servers. Need more file storage? Add more file servers. I'm ordering a CD! -
It's the MPL not the GPLMike Shaver pointed out to me that the license is MPL, not GPL. Read the MPL license and compare that with the Plan9 license.
Jeff
-
Commercial use okay, but not a perpetual license??There is quite a bit on fine print in the licensing, basically stating that use in any other than a "racreational" (read home) workstation is prohibited under the agreement.
While I haven't read the license in great detail yet, I see nothing in it about "recreational" (or "racreational") use. On the contrary, under the "Grant of Rights" section, part of section 2.1 reads:Subject to the terms of this Agreement and to third party intellectual property claims, Lucent grants to Licensee, a royalty-free, nonexclusive, non-transferable, worldwide license to use, reproduce, modify, execute, display, perform, distribute and sublicense, the Original Software (with or without Modifications) in Source Code form and/or Object Code form for commercial and/or non-commercial purposes.
Now, I'm no lawyer, but "for commercial and/or non-commercial purposes" sounds a whole lot different from "recreational use only"...
However... I do notice that the word "perpetual" only exists in the "Modifications" section, and not under "Grant of Rights". Is this an oversight, or should we be alarmed? Is Lucent contemplating revoking the license if they don't like what you do with the code? -
License is GPL (sort of)
Take a look at http://plan9.bell-labs.com/plan9dist/l icense.html. It looks like this software is being distributed under the GPL (look down at the bottom) but with a sort of wrapper that allows Lucent to change the license in the future.
Contrary to some of the previous assertions, this software is available for commercial as well as non-commercial use. In fact, the license states that users can modify and sell the software so long as the source is included.
Sweet! -
RE: whereis license; DUH
The License is here: http://plan9.bell-labs.com/plan9d ist/license.html for anyone who wants to check it out
-
Re:Wow... Does no one care?
Plan 9's GUI is 8½. 8½ is so great because of it's compact size and simplicity in programming. A complete Hello World program is only 26K:
#include u.h
#include libc.h
#include libg.h
void ereshaped(Rectangle r)
{
Point p;
screen.r = r;
bitblt(&screen, screen.r.min, &screen, r, Zero); /* clear */
p.x = screen.r.min.x + Dx(screen.r)/2;
p.y = screen.r.min.y + Dy(screen.r)/2;
p = sub(p, div(strsize(font, "hello world"), 2));
string(&screen, p, font, "hello world", S);
}
main(void)
{
Mouse m;
binit(0, 0, 0); /* initialize graphics library */
einit(Emouse); /* initialize event library */
ereshaped(screen.r);
for(;;){
m = emouse();
if(m.buttons & RIGHTB)
break;
if(m.buttons & LEFTB){
string(&screen, m.xy, font, "hello world", S); /* wait for release of button */
do; while(emouse().buttons & LEFTB);
}
}
}
-
Plan9 - Differences from UnixPlan9 is oldish. Pike and others have moved on to brazil and inferno, but for it's time (early 90's) it was good research.
in the words of Gary
- specialist hardware - A typical Plan 9 installation will have a dedicated cpu server, a dedicated file server and many dedicated terminals The file server and cpu server will be connected by the fastest link available.
- "everything is a file" - Device drivers, network connections, environment variables and many other services are represented by files in the individuals file name space. This name space can be manipulated to customise the user's environment. User-level file servers are trivial to write and use, and all of this is easily distributed as the file server communication is all in a simple protocol.
- minimalist philosophy - Plan 9 is an operating system for programmers. It emphasises simplicity over configurability, good design over compatibility and pragmatism over "buzzword compliance".
- sensible security - There is no super-user or root. Communication with the file server is only through a simple protocol which allows no special access. Passwords are never transmitted across the network, instead the terminal manages a challenge/response session with the authentication server.
- 1990s user interface - A three-button mouse and bitmapped display are assumed. Support for Unicode has been included from the ground up. Character-based user-interfaces (vi, xterm, rn) have been superseded.
-
Re:AT&T is benign
For more info, read Dennis Richie's paper on it.
Yes UNIX could have been squashed by AT&T very easily. -
Re:Haiku typo
Not just fish or sticks.
There are brilliant people
from which this name comes.
it would help if i actually knew how to talk...
-
Re:Haiku
Not just fish or sticks.
There are brilliant people too,
from which this name comes. -
A Monopolist's Freedom to Innovate."You keep using that word. I don'ta think it means what you think it means." --- The Princess Bride
I throw things at the television whenever I hear Bill Gates or Steve Ballmer say "freedom to innovate". I shake my monitor when I see it on a web page. I crumple up the paper when I see it in print. I'm sure you do, too.
There is a monopolist that could have argued that case. But it is not Microsoft. AT&T had a monopoly on phone service, and with it, they could charge everyone in the United States a nickel, and fund Bell Labs. Take a look at http://www.bell-labs.com/history/.
Are you a control geek? I am. It blows my mind to think that Black, Nyquist, and Bode all worked together at Bell Labs. Ask the nearest Electrical Engineer if they've ever used Black's Formula, the Nyquist Stability Criterion, the Nyquist Sampling Rate, or a Bode plot.
Ever heard of the transistor? Shockley, Bardeen, and Brattain all worked for Bell Labs. Want a humbling experience? Read Shockley's book. By 1950, he had it all figured out: electrons, holes, bolch waves, brillouin zones, etc. *cough* Nobel Physics Prize *cough*.
Ever heard of the Laser? UNIX? C? Personally, I would be willing to put up with a monopoly that is capable of this kind of research.
Are we supposed to believe that Microsoft is?
-- -
If you want to rewrite, pick better...C++ and Java are the "obvious" choices, even to illiterate Pointy-Haired Bosses, but unfortunately have a need for considerable runtime systems, particularly Java. A JVM requires a memory manager, which leaves you having to lift yourself by your own bootstraps if you write the JVM in Java, and thereby require a JVM and a memory manager, which leaves you recursing infinitely...
More reasonable alternatives would include:
- Modula-3 , in which is written Spin.
- Or perhaps Oberon, which has been used to construct several OS-like environments.
- Or perhaps even Eiffel, whose Design By Contract approach makes claims that C++ can provide anything describable as rock solid look very silly.
- Based on the number of language compilers being built using ML, I'd think it to perhaps be a candidate. The ability to do heavy-duty static type inference would, not unlike with Eiffel, make claims of C++ being "rock solid" look pretty sad.
Yes, these languages don't have syntax that slavishly resembles C. But it's not as if the actual semantics of C++ or Java are actually that much like C...
-
Re:Vague on increased precision
That is not necessarily true. Read the article and the links on quantum computing on Grover's page. This article states that IBM researchers claim that Quantum computers will be so much faster than conventional PCs that searching eight trillion bytes of data searching for one word may take a month but a Quantum computer could do this in 27 minutes. This means that quantum computing algorithms can therefore be much more complex than regular algorithms with imperceptible speed difference on a quantum PC while the same algorithm would be horribly inefficient on a conventional PC. For example a sequential search is considered horribly inefficient on conventinal PCs but with the speed of Quantum computers, it would get the job done in a speedy enough manner. (I haven't studied quantum computing besides reading a few articles so please forgive me if my example isn't technically accurate, maybe a grad student somewhere can shed light on this?)
-
Re:The delight of M16
COM has been around in one form or another since the 1990s, COM was designed as a binary standard for calling methods.
The first CORBA draft was published in 1991, so COM and CORBA seem to have been devloped at about the same time (I donno which came first, may have been COM, may have been CORBA).
BTW, I'm not sure how relevant your windows is younger than unix statement is, well obviously...VMS is older than Unix, and NT is based on VMS
:P.VMS is sure as hell not older then Unix. VMS came out on the VAX, and not any prior CPU. The VAX was a late-70's CPU (October 1978 I think). If you look at DMR's Historical Perceptions about the VAX architecture you will see some dates (and other intreresting VAX info). If you poke around the rest of his pages you'll see some dates for Unix that are much older. Like by almost ten years.
Unix is generally accepted to have been invented in 1969 (even with a 1970 begining of time value). I find this number easy to remember because I also was "invented" in 1969. That does make it a bit hard for me to remember the VAX rollout, but I figure DMR'll tell it stright.
CORBA is generally an out of process technology. It was developed to allow objects to be called remotely, and sortta, transparently.
You are right when you say CORBA is generally used for cross-process RPCs. Wrong when you tar it with the "sortta transparent" brush. If you either ignore the string issue (CORBA strings are not plain char*'s in C, and not C++ string objects in C++), or in C++ make a conversion operator from string (or char*) the calls are transparent. At least if you are willing to make sync RPC calls.
You can use it as a all-in-one-process calling convention, but it's generally not needed.
-
Re:Roots of BSD
Perhaps most important was the development of NFS, which was introduced formally by Sun but based directly on work by the CSRG.
To which CSRG work are you referring here?
Another important building block was Berkeley sockets/STREAMS. These are the things that distinguished Berkeley from AT&T UNIX in the mid-1980s
STREAMS is a System Vism (influenced by the "streams" done by Dennis Ritchie at Bell Labs Research.
-
let AI run my life!
I would really like some sort of intelligent agent that would run my life, or at least the boring tedious bits, filter news would be good, but also i think that an agent that interacts with a home network could be good, say doing the shopping for me when i run out of caffeine, regulating temperature, playing random music from a jukebox every morning, i know this can be accomplished individually, but how about doing them together, maybe even with a XML interface that can be accessed through various internet connected devices, like if i want to record X-program, i just ring in and tell the device and it does it, damn it, i would even put speech synthesizer "You have no clean pants left", or "Yet another microcrap post at slashdot".
-
Re:Someone should ask Rob PikeWell, it was more than just a bunch of bitmapped TTY's but I'm not sure whether it qualifyied as a GUI. Probably about as much so as raw X. The idea was to download code to the Blit for execution locally, sort of like Java without the bytecode. The whole thing worked over serial lines so it got left behind pretty quickly as real networks became available.
Here's a page with some info about the 5620 and related terminals: http://www.bell-labs.com/user/dwd/56 20faq.html
-
Re:Plan 9 home page
Notice the mention of "overhead" on the Plan 9 home page at http://www.cs.bell-labs.com/plan9/. It's below the list of developers.
-
Other commentaries to consider... Plan 9
The Plan 9 Window System: 8½ has good network support and might be a good start for other ideas.
-
Reply from Software Carpentry Project Coordinator
My thanks to everyone who commentd on the first-round results in the Software Carpentry design competition. I've replied to a few points directly below. Please note that many of these issues are addressed in the project's FAQ as well.
forcing everyone who wants to participate in this project to use Python seems unfair.
Allowing multiple languages moves the burden of learning new syntax and execution models from developers to users. (Essentially, it allows a minority to be lazy, while creating work for the majority.) Feedback from the 140 students who took the software engineering courses I co-taught at Los Alamos National Laboratory in 1998-2000 was unequivocal: as long as we keep making the tradeoff in favor of developers, people will continue to be frustrated and confused by the tools we build.
As an aside, one entrant from Europe said that he'd be a lot more impressed with programmers' sincerity if they put as much effort into creating documentation in multiple (human) languages as they do into arguing over what (machine) language should be used for coding...
...since winners are chosen on functionality/interface and not on implementation details why does the language matter?We did ask people to keep their designs as language-neutral as possible, and I for one would be very excited to see implementations of (for example) the winning bug-tracking entry in Perl, Java, and other languages as well as Python. (If nothing else, it would permit a real "compare and contrast" study of the languages.) However, since we had chosen an implementation language, we felt it would be dishonest not to say so.
One posting to this thread said that the discussion list had "wandered off" onto the topic of representing programming languages in XML. This actually isn't off-topic: XML means that we finally have a standard language-neutral way of representing hierarchical data, such as the static dependencies in a makefile. However, we still don't have an equivalent way to represent procedural information (loops, conditionals, etc.). As a result, any non-trivial makefile (or configuration file for any other tool) must be bound to a particular language: most makefiles, for example, are tied to the syntax of the Bourne shell. If anyone's looking for a way to change the world, they could start by fixing this...
The whole idea of free software is just that -- that it's free and is being made to produce good software and not because someone is pursuing a cash prize. A certain project being developed with the Software Carpentry Project competition in mind might be rushed through development just so it can meet the contest deadline. End result: A buggier product with fewer features.
...coding solely to earn money was exactly the concept that free software was supposed to eliminate.No: it's "free software" as in "free speech", not as in "free beer". As Richard Stallman said:
Having a design competition does not go against the principles of free software. The idealism of the Free Software Movement is not that "there should be no competition". It is that we should work for our freedom as computer users, by writing free software to do all the jobs that matter, and thus eliminating non-free software from our lives.
We are awarding prizes because we think people should be rewarded for hard work. The only regret is that we can't award more...
I'd rather they had specified a means by which scripting tools could plug into the system, so that any language (possibly with a small modification) could be used. Of course, the question then becomes how to plug in...
Amen. As the FAQ says:
Component software is clearly the next big thing in software development... However, while COM, CORBA, and (Enterprise) JavaBeans are becoming more popular, they are still new to most programmers, and still do not have robust cross-platform Open Source implementations.
Less formally, COM is proprietary, CORBA is bloated, and EJB is immature and lacks stable bindings for other languages. Creating a lightweight, usable, cross-platform, multi-lingual component system would be a good way to address the issues that Rob Pike raises in: http://cm.bell-labs.com/who/rob/utah200 0.ps
Another thing that my scan of the site didn't turn up was interfacing to source code management...
Amen again. Everyone who has suggested categories for next year's competition has mentioned version control, and no-one seems happy with the tools we have today. However, we had to start somewhere...
Greg Wilson
Software Carpentry Project Coordinator -
Re:Some Perfect... (correction)
-
Re:Some Perfect... (correction)
-
Re:Criminals shouldn't be laudedHis Daddy also works for the NSA (how do you think he knew enough about the flaws in sendmail etc... that made the WORM work?)
This is pretty low. I know rtm and (slightly) his father, rhm. rtm is smart enough to find holes in sendmail on his own, and his father (who is now retired, BTW) is not the sort that would leak NSA information, even to his son. Have you ever read his report on breaking into 4.2BSD TCP/IP, written BEFORE his father went to work at NSA? (The funniest part of that research was the machine at Bell Labs named ucbvax, used to exploit a backdoor.)
-
Problems and Alternatives.
- Pricing.
It is notoriously difficult to get pricing information for QNX.
I have heard differing reports on comp.os.qnx, including that it is "very expensive, hundreds of dollars per system," or, on the other hand, the vague answer of "you can license it reasonably economically." (With no definition of what "reasonably economical" means, of course.)
- If people should start thinking of QNX, then they should also start thinking of:
- VSTa
A copylefted system that "lifts" ideas from QNX and Plan 9
It looks like development has not been terribly active lately.
- MIT Exokernel
Again, not terribly active, but an interesting OS kernel.
- EROS
Eric Raymond thinks it's mindblowing, so the Eric Raymond Personality Cult should all be preparing to drop Linux in favor of EROS. (Of course, it isn't yet capable of self-hosting, which indicates that it's not all that useful at this point. But, to cultists, usefulness is irrelevant...)
- Possibly even Hurd
It's different from the other options; certainly not a tiny OS option...
- eCos
- RTEMS
Which, like QNX, appears to be used in some reasonably critical system environments...
- Fiasco
Which is a "lighter microkernel than Mach"...
- On Linux, people interested in QNX should almost certainly look at SRR -- QNX API compatible message passing for Linux
This is the critical programming abstraction that QNX uses heavily which isn't all that widely used on traditional UNIXes, namely asynchronous messaging.
- VSTa
- Pricing.
-
Bell Labs' press release
Bell Labs has a press release from April 20 about this...
-
Re:who uses?
Relational databases exist because complex data relationships cannot be represented well in flat files or hierarchical databases.
Bull. It's simple to manage relational data in flat files. It's generally faster to do this if you use fixed-width records, but it's still easy to do with variable-length delimited text files.
Refer to The AWK Programming Language by Aho, Weinstein, & Kernighan for sample implementations of relational data management using flat files. Look at join.awk for elucidation.
The same techniques are applicable to Perl or any other modern computer language.
"The axiom 'An honest man has nothing to fear from the police' -
Re:who uses?
Relational databases exist because complex data relationships cannot be represented well in flat files or hierarchical databases.
Bull. It's simple to manage relational data in flat files. It's generally faster to do this if you use fixed-width records, but it's still easy to do with variable-length delimited text files.
Refer to The AWK Programming Language by Aho, Weinstein, & Kernighan for sample implementations of relational data management using flat files. Look at join.awk for elucidation.
The same techniques are applicable to Perl or any other modern computer language.
"The axiom 'An honest man has nothing to fear from the police' -
Re:WTF??That's what I get for not digging deeper...
http://plan9.bell-labs.com/plan9/faq.html
And it runs on the 68020, too. Hmmm, I've got a Macintosh LC that isn't doing anything....
-
History of the UNIX pipe
Here's another bit of UNIX history from Ritchie's site: a brief history of the UNIX pipe.
-
Reflections on Trusting Trust
(As usual, because I have the bad luck of reading Slashdot in my time zone, my comment is hardly going to get read, let alone moderated. Oh well.)
I'm surprised nobody seems to remember Ken Thompson's ACM A. M. Turing Award reception speech, “Reflections on Trusting Trust”. If you haven't read that classic essay, you definitely should.
As mentioned in the Jargon File (which ESR surely knows about because he's the current editor of the Jargon File), Ken Thompson planted a Back Door in the login program of the first versions of Unix by planting another back door in the compiler itself. The back door was visible nowhere, neither in the sources of the compiler nor in those of the login program, and yet it was there all the same.
The moral of this is not that it might happen, but that it is possible. You've got to start trusting someone, somewhere. How do you know, after all, that Intel has not planted back doors in your microchip's microcode? Even if you could see the chip's complete source code (and you certainly cannot), the back door may be in the software that compiles the source code to the actual plans. (And even if you can see the complete plans and have a mammoth brain that can understand them, you can never be sure that there is no back door in the laws of physics.:-)
It would be quite possible, in Ken Thompson style, for a Linux distribution, say, RedHat, to put a back door in the version of gcc they use so that, even though they redistribute all the source, and pristine source at that, and even though the compiler bootstraps correctly, yet various binary programs are compiled with back doors in them. (Note that I'm not suggesting they could tamper with the binaries: that would be noticed sooner or later. Ken Thompson's trick is far more devious.)
You cannot bootstrap everything down to the hardware level, not even to the assembler level. And even if you do bootstrap everything, detecting the presence of a back door in the source is equivalent to the halting problem. Consequently, there is plenty of room for back doors even in an Open Source world.
The last thing I want to do is defend Microsoft. I don't use their products, so I frankly don't care how many back doors they might have planted. Nor do I want to advocate security through obfuscation, because that is the one thing that has never wored and never will. But I just want to say that security will never work if you don't start trusting at some point. Microsoft may have failed this trust, now or in other numerous occasions. But for ESR to say that there is no such need in the case of Open Source software is simply wrong.
-
Lucent
Here is a research that is done at Lucent Technologies:
Instead of switching from optical wave to an electrical charge they use optical repeaters with mirrors and optical amplifiers.
"The DWDM-ready GigaChannel has been demonstrated over 40 kilometers of standard single-mode fiber using WaveStar MetroPoint and also over Lucent's flagship long-reach product, the Wavestar OLS 400G, using multiple 80-kilometer fiber spans with online erbium-doped optical amplifiers and dispersion compensation."
However it's only 10GB/s. Maybe they'll learn to do better than that.
"The experimental GigaChannel Ethernet multiplexer combines up to eight independent gigabit Ethernet signals into a single 10 Gb/s signal stream, enabling switches, routers and servers to connect at 10 Gb/s in native Ethernet format without the need for protocol conversion. The prototype complies with today's IEEE Gigabit Ethernet standard." -
Definition of unix
Unix is any operating system derived from the source code of the original unix developed by Bell Labs. Linux is not a UNIX, but a UNIX-like operating system. A Unix-like operating system is any operating system which reimplements the spirit and designs of the operating system drempt up by Dennis Ritchie et al. *BSD on the other hand has a pedigree which goes all the way back, so is a "true unix", although the definition varys a little depending on who you are talking to. Some people think UNIX is any OS that Bell Labs says. Go look at these web pages:
Unix History
and be sure to visit the history of unix written by Dennis Ritchie himself:
Dennis Ritchie's History of Unix.
-
(equal XML S-expressions) - Why does M$ like XML?XML is little more than a syntax for writing down tree structures. It is equivalent in expressive power to S-expressions (the core data type in the Lisp family of languages - 42 years old in 2000). I'm far from the only person that has noticed this - go see this PDF by Phillip Wadler at Bell Labs, especially pages 5-8. He also has some other good XML links.
The only reason XML excites people is it looks like something they're familiar with (SGML/HTML). All the old representational issues that the AI community has been grappling with for decades will now be recast into XML terms, and "solved" in half-ass fashion by people who won't know where to look in the literature for existing techniques.
Microsoft loves XML - have you thought about why they like it? It's because they can claim to be "open" and "conforming to standards" by using its syntax, and still have enough control over the underlying semantics to keep developers and users on the upgrade tradmill.
XML - more than enough rope, with a godawful syntax to boot. Long live () and ""!
-
(equal XML S-expressions) - Why does M$ like XML?XML is little more than a syntax for writing down tree structures. It is equivalent in expressive power to S-expressions (the core data type in the Lisp family of languages - 42 years old in 2000). I'm far from the only person that has noticed this - go see this PDF by Phillip Wadler at Bell Labs, especially pages 5-8. He also has some other good XML links.
The only reason XML excites people is it looks like something they're familiar with (SGML/HTML). All the old representational issues that the AI community has been grappling with for decades will now be recast into XML terms, and "solved" in half-ass fashion by people who won't know where to look in the literature for existing techniques.
Microsoft loves XML - have you thought about why they like it? It's because they can claim to be "open" and "conforming to standards" by using its syntax, and still have enough control over the underlying semantics to keep developers and users on the upgrade tradmill.
XML - more than enough rope, with a godawful syntax to boot. Long live () and ""!
-
Re:going out on a limb here
If you go look at the Bell Labs site you can see that the papers on the subject reference erbium doping for the fibers, which IIRC is fairly common for extremely high speed applications.
Sam TH -
inferno.bell-labs.com
well,
I read the subject line, and expected an Inferno disussion.
But, no mention so far.
Is there anything better suited than Inferno? I'm not a com. sci. person, more "a sophisticated user" as a friend described me, but at first glance it looks pretty yummy.
Ddraig -
Re:and one more...
you forgot:
Not so much forgot as willfully excluded =). I do completely agree though. Some others have mentioned a new one on me, Plan 9... which sounds really cool. Some links I dug up... Official home page and Lucent Plan 9 page with lotsa links... And I'm not sure how I forgot QNX which is a supremely cool os =). I'm sure there are lots more.
and one for playing games
Read: http://www.microsoft.com/windows95/But yes, IMHO, Win9x and NT both have their places in our multi-os world =). That place is, of course, in the dumpster (tounge-in-cheek).
Serriously, Win9x is the platform for which a distressing number of games are targeted. I don't know that this is because it's particularly well tailored for this purpose, or if it's the result of driver availablity and that ubiquitous DirectX standard.
-rt
======
Now, I think it would be GOOD to buy FIVE or SIX STUDEBAKERS
and CRUISE for ARTIFICIAL FLAVORING!! -
What about Plan 9?
The creators of Unix decided to try developing the successor to Unix, and they called it Plan 9.
-
Enter Plan 9If you are interested in a distributed Unix-like operating environment, this already been developed (not surprisingly, but the same folks that helped spawn Unix the first time around). It's called "Plan 9" and is available from Bell Labs.
The homepage with all the details is here
-
Plan 9 (Somewhat tangential)On the subject of distributed OSes,
/.ers might find it interesting to take a look at the Plan 9 OS that was (still is?) in development at Bell Labs several years ago. The FAQ is here.Plan 9 is UNIX-like, but it treats all system objects like files. This includes objects that exist across the network. Because of this, it is very easy to distribute the OS across several machines with it being completely transparent to the user. We set Plan 9 up like this in the OS lab at my college a couple years back, it's very odd.
It probably isn't an OS that will pick up by itself, but it's an example of a way in which an OS can be distributed with a reasonable degree of transparency.