Ask Unix Co-Creator Rob Pike 479
Today we return to our Slashdot interview roots with a "Call for questions" for Rob "Commander" Pike, who has been involved in the development of many modern programming concepts, GUI advances, character sets, and operating systems. We'll email 10 - 12 of the highest-moderated questions to Rob and post his answers as soon as he gets them back to us.
How do I (Score:2, Funny)
M
Re:How do I (Score:2, Offtopic)
Re:How do I (Score:2, Funny)
Captain Pike... (Score:3, Funny)
Plan9 (Score:5, Interesting)
Thoughts on Bell Labs. (Score:5, Interesting)
Re:Plan9 (Score:5, Interesting)
Right now, there are a large number of research kernels. Plan 9, Inferno, AtheOS, Syllable, K42, Mach, L4, etc. all have their own ideas about the future of the kernel. But they all end up implementing a POSIX interface because the UNIX userland is the default.
The kernel space needs to be invigorated using a new userland that demands new and innovative functionality from the underlying system. Suppose you were to design a user environment for the next 30 years. What would the central abstractions be? What sort of applications would it support?
Biggest problem with Unix (Score:5, Interesting)
What would you have put?
Re:Biggest problem with Unix (Score:5, Funny)
Re:Biggest problem with Unix (Score:4, Interesting)
I saw this google labs apt question, and while I've become numb to most of UNIX's issues and cannot think of a generic across the board (ie, cross vendor) "broken" thing except why the hell is UNIX so picky about 1) unmounting filesystems "that are in use" and 2) why the hell there is a 'D' run state that is completely uninterruptable?* The 2nd one really baffles me, and the first is just annoying, and fuser or some vendor specific tool can (sometimes) point you to the offending process that is using the filesystem. I found out today that fuser does not work on linux with the kernel NFS daemon sharing a filesystem and I try to unmount it. Annoying, but not as fundamentally broken as #2 in my opinion.
Another thing that I see as "broken" in UNIX is that there is no normal/standardized/sane way of installing software. Debian gets it the closest, but the LSB picked RPM for some insane reason for package mismanagement on Linux.
* For those that don't know, if there is something wrong with a disk subsystem, and a process tries to access that disk subsystem, the process is in an uninterruptable "disk wait state", that cannot be corrected without rebooting the computer. One can ususally safely ignore the processes stuck in this state, but its kinda irritating because it can often bring the system load up by one for each stuck process, yet it does not appear to hurt performance any.
Re:Biggest problem with Unix (Score:3, Informative)
The whole idea of utf8 is to have the least impact on existing software. There are encoding sets that do break text editors and grep. Like some of the asian multibyte encodings.
if you grep for a utf8 sequence in a binary file it will work exactly the same as if you grep for a latin1 sequence in
Re:Biggest problem with Unix (Score:3, Insightful)
I don't care. I'm unmounting a filesystem for a reason, and I'm going to kill the offending processes anyway. I'm root dammit! Heh.
Also, its just inconsistant that I cannot unmount a filesystem, but I can do rm -rf on the entire filesystem. Another thing that gets me is that a filesyste
Re:Biggest problem with Unix (Score:4, Informative)
Linux does not have a problem with it. That's why it has the -l option.
-l Lazy unmount. Detach the filesystem from the filesystem hierarchy now, and cleanup all references to the filesystem as soon as it is not busy anymore. (Requires kernel 2.4.11 or later.)
Re:Yes! (Score:3, Interesting)
Re:Biggest problem with Unix (Score:4, Informative)
http://plan9.bell-labs.com/sys/doc/9.html [bell-labs.com]
(See specially the first section: Motivation)
uriel
Re:Biggest problem with Unix (Score:3, Insightful)
Re:Biggest problem with Unix (Score:3, Insightful)
Recently on the Google Labs Aptitude Test there was a question: "What's broken with Unix? How would you fix it?"
The moment I saw that question I said it must be a trick. UNIX develops by evolution, not by dictation. Whenever an individual change is dictated it almost never survives on its merits.
UNIX is beyond the comprehension of any one. One can introduce a change, but it is up to NATURAL LAW to ultimately decide if the change lives or dies.
That said, pttys, fifos and ioctls do in fact blow.
OK, here's the obligatory (Score:3, Interesting)
More obligatory questions (Score:5, Interesting)
resolv.conf (Score:5, Interesting)
Re:resolv.conf (Score:3, Funny)
Re:resolv.conf (Score:5, Funny)
As such, common commands had to be shortened a little bit:
"Copy" becomes "cp"
"List" becomes "ls"
"Rename" becomes "mv" and so on.
Re:resolv.conf (Score:5, Interesting)
Early unix also had a 12-letter filename limit.
I don't know if that included the NUL or not; if it did, then resolv.conf makes sense, since you might want to make a backup copy named resolv.conf~ or such. Also, early fortran had a 6-letter symbol name limit; this might be the reason for creat (so _CREAT would fit within the maximum 6 letters?)
DISCLAIMED: Just some ideas, dunno if any of this is correct!
Re:resolv.conf (Score:3, Informative)
Re:resolv.conf (Score:3, Insightful)
Early C also had the 6 letter limit, not so much in the language itself as a limitation in early linkers/loaders, which only distinguished the first few characters of an identifier. (So for sanity's sake you limited the identifiers in your program to that so you would accidentally get a collision. This is one reason that old C code looks, well, old. (And why some old C coders still tend
Re:resolv.conf (Score:5, Funny)
Re:resolv.conf (Score:5, Funny)
That was bcaus the -ky on my kyboard was not working as it should in thos days.
Re:resolv.conf (Score:3, Funny)
If you're getting KY on your keyboard, maybe you should look for a girlfriend instead
Re:resolv.conf (Score:3, Insightful)
Can you justify why you named your objects/variables/files years ago?
Re:resolv.conf (Score:3, Funny)
Re:resolv.conf (Score:3, Insightful)
Re:resolv.conf (Score:4, Funny)
exactly 11 characters? As opposed to filenames 11.0001 characters long?
Apple and Unix (Score:4, Interesting)
The future? (Score:4, Interesting)
Is Linux "unix"? (Score:4, Interesting)
Re:Is Linux "unix"? (Score:3, Interesting)
Re:Is Linux "unix"? (Score:3, Interesting)
Tomatos are legally a vegetable[1], scientifically a fruit, and considered by many people to be either one. Champaign is technically only from a certain region in France, in American common usage it is just about any sparkling wine. Terms can often be approached legally or semantically. "Unix" in this case is short for "that OS that you created", not "an OS certifi
Are you suprised at the longevity of Unix? (Score:3, Interesting)
He's NOT a Unix co-creator (Score:5, Informative)
Re:He's NOT a Unix co-creator (Score:4, Insightful)
"Ask Unix Co-Creator Rob Pike"
Set Roblimo straight then...instead of just spouting off in the forums where no one but me will see it.
Unix co-creator? (Score:2, Insightful)
Am I incorrect in this belief? Someone, kindly, clarify the matter.
Languages (Score:5, Interesting)
Maybe this is an overly-asked question, but I still often ponder it. Does object-oriented design negate or diminish the future prospects of Unix's continuing popularity?
I've developed in C (which I still love), but lately, I've been doing a lot of purely object-oriented development in Java. Using things like delegation and reusable classes have made life so much easier in many respects. Since the *nixes are so dependent upon C, I was wondering what future you see in C combined with Unix. Like I said, I love C and still enjoy developing in Unix, but there has to be a point where you build on your progress and the object-oriented languages, in my opinion, seem to be doing that.
Thank you for all your contributions!!!
Obvious (and probably redundant) (Score:3, Interesting)
Emacs or Vi? (Score:2, Interesting)
View on linux (Score:5, Interesting)
Backtracking (Score:2, Interesting)
Language for new OS's (Score:5, Interesting)
Re:Language for new OS's (Score:3, Insightful)
Given the power computers have today, the omniprecense of networks, OO and so on, i'm pretty sure that if one conceived an OS that way today and tried to rethink everything from the beginning, he could end up with concepts we don't even dream of.After all we all still think inside concepts which were found 40 years ago, even in network terms.
Things lik
Innovation and patents (Score:5, Insightful)
CLI (Score:5, Interesting)
Re:CLI (Score:4, Insightful)
raw text is the only true inter-system communication protocol. my cats and my computer understand a lot of the same words. my cat can't type but i can, and my computer can't understand the noises my cat makes, but i do - command pipes! where would we be without those, and those ONLY work in the CLI! we would be in the stone ages of computing without the CLI.
Power (Score:5, Insightful)
Spoken/written communication is much more powerful (easier, faster, more effective) when both parties understand the language, and the idea is a complex one ("I would like a job at your pie shop.")
Rudimentary communication is easier with point-and-grunt (answering the question "which pie would you like to purchase?" - you point to the one you want)
If the parties don't understand the same language, complex concepts are *much* harder. Learning to communicate by pointing is easier, but the true power of communication comes from spoken/written languages.
Think I'm wrong? Write a detailed response *without* using your keyboard.
Systems research (Score:5, Interesting)
the old school (Score:4, Interesting)
One tool for one job? (Score:5, Interesting)
Given the nature of current operating systems and applications, do you think the idea of "one tool doing one job well" has been abandoned? If so, do you think a return to this model would help bring some innovation back to software development?
(It's easier to toss a small, single-purpose app and start over than it is to toss a large, feature-laden app and start over.)
Back in The Day (Score:5, Interesting)
ReiserFS and the future of file systems (Score:5, Insightful)
Since you now work for Google... (Score:4, Interesting)
Is systems research really dead? (Score:5, Interesting)
Why did it take Linux to popularise Open Source? (Score:5, Interesting)
Plan 9/OS insights from Google? (Score:5, Interesting)
Driving force of OS' (Score:5, Insightful)
Article theft (Score:5, Informative)
Re:Article theft (Score:3, Informative)
In short, thefreedictionary.com is using Wikipedia content more or less as intended, but is using Javascript to bypass the spirit, if not the word of the syndication license, and is in partial violation of the GFDL. As such, it is rated middling amongst violaters of the wikiepdia syndication license. Most wikipedians do not object to syndicated
The future of *NIX (Score:3, Interesting)
Xanadu, Google, & Plan9 (Score:4, Interesting)
Microkernel vs. Monolithic (Score:5, Interesting)
What are you doing... (Score:5, Interesting)
The Year 2038 Bug (Score:4, Interesting)
The Google Operating System (Score:3, Interesting)
Can you comment on the speculation about a new Operating System [kottke.org] being created by Google?
Many different design strategies (Score:3, Interesting)
In today's computing environment, this isn't always strictly the case. Multi-CPU boards are becoming more common, and clusters are inexpensive and powerful. Devices are also (returning) to a more "intelligent" state, with higher-end peripherals having comparable computing power to the main processor.
It would seem logical, then, to have a kernel which was more evenly distributed over the system, rather than hogging one specific resource. However, many attempts to do this are crude. Beowulf and MOSIX clusters, for example, run the whole kernel on all the nodes in the cluster, rather than just the bits of the kernel that are actually needed. This eats resources and limits the scalability of such solutions.
Do you have any plans for a distributed Plan 9? And, if so, what would you do differently to the other solutions people have adopted?
Lack of variety in operating systems (Score:5, Interesting)
Revolution Needed? (Score:5, Interesting)
When Unix came out, it was written in the highest level language of any operating system: C. Why do you feel that operating systems are still implemented using the oldest, lowest-level languages?
With recent advances in high-level application languages like Java (low-latency garbage collection, dynamic inlining, etc), it seems to me that an operating system based on such a language would offer far more opportinuty for a vastly different kind of operating system more akin to an operating environment. Haven't attempts to add object-oriented features, such as in Plan 9 or to a limited extend Mach, failed due to the choice of implementation language?
It's just painful to see all the disgusting machinations necessary to implement a filesystem, network stack, scheduler, etc in C/C++...
Re:Revolution Needed? (Score:3, Insightful)
Correction, when UNIX "came out," it was written in the lowest level language of any operating system. Everything else was either written in straight assembly or a sane language, like Lisp or PL/I. Furthermore, Lisp had all those lovely features in 1975.
It's also worth noting that many the problems we have today are based in the concept of the "operating environment" -- today's software and hardware design paradigms are rooted in C. Implementing any language other than Algol-derivatives on top of C ce
probably redundant by this point... (Score:5, Funny)
Silver medal in Archery at the 1980 olympics? (Score:5, Interesting)
First, the US and Canada boycotted those olympics.
Second, Boris Isachenko, URS(BLR) won the silver medal at those olympics.
Is this an example of a joke that now has become folklore? Is it a way to "prove" to people that they should check their sources? Or is it just puffing up one's resume?
It seems strange in an era of quick and dirty research that you would still post this on your bio at bell labs. It only took a quick "I'm feeling lucky" google search on "1980 Olympics archery" to pull that info up.
So my question is, why do you keep that on your bio?
Re:Silver medal in Archery at the 1980 olympics? (Score:3, Informative)
Bitterness about Linux from older developers (Score:5, Interesting)
An old grudge, an new liscense? (Score:3, Interesting)
Two questions:
Given two important facts:
This is a frustrating situation for all of us. Do you see any possibility that major portions of UNIX and Plan 9 source being released under licensing that major distributions would find acceptable?
Please also accept my personal thanks for your work in the field of computer science. The influence of the community of researchers at Bell Labs will be felt for many generations to come.
starting from scratch today? (Score:3, Interesting)
Freeness (Score:5, Insightful)
The original UNIX, BSD, and now Linux seem to have been 'freeer' than other OSes of the time, do you think they would have been successful without this?
Finally... vi or Emacs? ; )
Re:Freeness (Score:5, Interesting)
Hindsight (Score:3, Interesting)
Hardware (Score:5, Interesting)
HURD (Score:3, Interesting)
Plan9 advantages over Linux and *BSD (Score:5, Interesting)
Would you consider Mac OS X a version of Unix? (Score:5, Interesting)
Schemas for UNIX (Score:5, Interesting)
I realize the question needs work, but I hope you get the idea.
Intellectual Property (Score:3, Interesting)
What limits should be placed on Software Patents? Should they be eliminated entirely? Should all patents be moved to a trademark like system where if they are not enforced, the holder loses the trademark?
What is the fix and what is needed to make it happen? Will it ever be fixed?
If you could write a new OS from scratch (Score:5, Interesting)
What would you write it in? I mean if you had the time, money , and a mandate to create the best OS ever and you did not have to care about backward compatability what would you come up with.
Your Biggest Mistake we're still suffering from? (Score:3, Interesting)
X11 in the future (Score:4, Interesting)
Fess up (Score:3, Funny)
Language based operating systems (Score:5, Interesting)
Database filesystems (Score:5, Interesting)
The buzz around filesystems research nowadays is making the UNIX filesystem more database-ish. The buzz around database research nowadays is making the relational database more OOP-ish.
This research to me sounds like the original designers growing tired of the limitations of their "creations" now that they're commodities and going back to the drawing board to "do things right this time". I predict the reinvented versions will never catch on because they'll be too complex and inaccessible.
Of course, this second system syndrome isn't just limited to systems. It happens to bands, directors, probably in every creative art.
I think what we've got in the modern filesystem and RDBMS is about as good as it gets and we should move on. What do you think?
Redundant Array of Inexpensive CPUs? (Score:3, Interesting)
Mainstream operating systems were designed when electronics were expensive and programs had to treat the computer system as a shared resource. Hence timesharing, multitasking, shared filesystems, and the rest, with all the combinatorial problems of N programs interacting with N other programs.
Now that CPU-plus-memory is so much cheaper, do you see a phase change coming where it is better/more secure/simpler to have one CPU per application? What impact would this have on operating system design?
Re:What do you think of the SCO vs IBM? (Score:5, Interesting)
Re:Would use use OO? (Score:3, Interesting)
Re:Why does Roblimo think you're a Unix co-creator (Score:3, Informative)
He's certainly a co-creator of what we now know as Unix.
Re:Is UNIX worth it? (Score:3, Interesting)
I'm surprised this was modded troll. I'm a UNIX user since '92 or thereabouts, and have my FreeBSD 1.0 CD to show for it. Rob is textbook hard core old school, yet he decided to develop something decidedly *different* from UNIX. Therefore, he must have felt that something more radical was warranted than tacking on new substructures to the old warhors