Ask Unix Co-Creator Rob Pike
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 get to my C:\ drive on a Unix box?
M
Plan 9 was supposed to go even further than Unix went, does it really looks like to you that it's been conceived according to a similar approach ???
Trolling using another account since 2005.
Recently on the Google Labs Aptitude Test there was a question: "What's broken with Unix? How would you fix it?"
What would you have put?
Remembering that you are going to die is the best way I know to avoid the trap of thinking you have something to lose.
Looking back, what would you have done differently? Anything?
Curb CO2 emissions: Kill yourself today!
why was the 'e' ever removed from resolv.conf?!!?!?
What are your thoughts on Apple's use of Unix.
Add to the question about what he thinks of the government forcing Bell to sell of the Unix OS (because the parent company was considered a monopoly) inlight of today's litigation wrangling.
What do you see in the far future of operating systems, now that great advances in the way we think about computers, such as quantum computing, have been made.
Is Linux "unix"? What did Unix get wrong, but was too late to change by the time that you realized it, that Linux can still get right, while it's still young?
--
make install -not war
When you were creating it, did you in your wildest dreams ever think that 30 years people would still be using it on a daily basis? Was it designed from the beginning to grow and be added onto?
"Leo Fender was in a 'state of grace' when he designed the Stratocaster." -- Paul Reed Smith
Pardon my ignorance, but I was under the impression that Dennis Ritchie and Ken Thompson created Unix (Unics), on disused hardware at Bell Labs.
Am I incorrect in this belief? Someone, kindly, clarify the matter.
Hello!
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!!!
Zed's dead baby. Zed's dead.
What do you think of the Evil called SCO?
nt
What are your views on the free/OpenSource Unix like operating systems, such as Linux and the *BSDs ?
Is it possible to design a computer so you can backtrack in progress? A method where it records perhaps the last three minutes, and you could click on something, and rewind your computer just like a video? And the hard drive would be at that state? Perhaps with intervals of five seconds. This would go way beyond RAID. (Not sure if I explained this properly.)
The C programming language was written for and spread by the Unix operating system. While it's still a useful tool, and far better than the wholly untyped BCPL that preceded it, C is really starting to show its age. Is there an existing programming language that you would recommend for the implementation of operating systems? Would you recommend creating a new language for a new OS, as was done with Unix? Would you recommend the creation of new OS's at all?
With so many of your ideas being used with such ubiquity in modern operating systems, what is your stance on the issue of patenting of software and other "intellectual property" concepts? Assuming that business isn't going to let IP patents go away as they strive to build patent stockpiles reminiscent of the nuclear arms buildup during the cold war, how would you like to see the issue resolved?
UNIX? They're not even circumcised! Savages!
Has the Command Line Interface become outdated? What are your thoughts on the CLI and if you had to 'do it all again' would the CLI be as prevalent?
Rob, do you see in the near or even far future, the many different flavors of Unix (Sun Solaris, IBM AIX, etc) morphing back together?
Second part of the question, do you think that the different flaovrs "should" morph back together, or continue to grow apart?
"Work is the curse of the drinking class" Oscar Wilde
In your paper, systems software research is irrelevant, you claim that there is little room for innovation in systems programming, and that all energy is devoted to supporting existing standards. Do you still feel this way now that you're working at Google?
what modern OS reminds you the most of your old school OS hacking days? what OS do you think keeps closes to the *nix spirit?
vodka, straight up, thank you!
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.)
I want to drag this out as long as possible. Bring me my protractor.
Were programmers treated as hot-pluggable resources as they are today? There seems to be a mystique to the programmer prior to about 1995. From reading the various netnews posts and recollections of older programmers, it seems like the programmer back then was viewed as something of a wizard without whom all the computers he was responsible for would immediately collapse. Has anything really changed or was it the same back then as it is now? I'm wondering how much of what I've read is simply nostalgia.
I'm trying to teach myself to set people on fire with my mind... Is it hot in here?
Mr. Pike, a few questions if you will...
There have been several quotes back in the era of "Big Unix" before the dilution of a certain company's intellectual property. Specifically, one relating to "Never underestimate the bandwidth of a station wagon full of backup tapes." My first question relates to this quote. To the best of your knowledge, was Unix source or object code ever backed up and transported via this method, possibly through Finland?
What are your feelings on Lucy's younger brother from the Peanuts(TM) cartoon?
Do you feel that the Communist Hippies in Berkley were involved in a mass conspiracy to doctor previously released copies of source code to attempt to dilute the value of the Unix operating system?
And finally, someone were to want to subpoena an individual very much like yourself, where and when would the best place to do so be?
Karma: SELECT `karma` FROM `users` WHERE `userid`=138474;
Unless I'm very much mistaken, Mr. Pike, you aren't a Unix co-creator. Dennis Ritchie and Ken Thompson are the co-creators of Unix. If my very quick Google research serves, you joined Bell Labs in 1980 and worked a lot on Plan 9 and the first Bitmap window system for Unix.
So why is Roblimo wrong?
What do you think of the work Hans Reiser is doing with file systems? How does it differ from and/or improve upon Plan 9? What do you think of his theory that (nearly) all database functions should be done by the file system? What do you think about being able to treat files as directories in order to get to special (or not special) info? Is it useful to be able to treat a tarball as a file when you want to and as a directory when you want to? How about file metadata? Data forks? Do you think Linux, Windows, or Mac OS X will come up with the better database/search-enhanced file system?
Software sucks. Open Source sucks less.
What is your most recommended major programming change to the BSD's and Linux, especially for Theo de Raadt and Linus Travolds...anything from the Plan 9 OS?
How can search as a concept become better integrated into the desktop? Are projects like dashboard the next killer app?
http://neokosmos.blogsome.com
After reading your presentation on the death of systems research, I was rather disappointed at the dismal situation presented. Has anything changed since you presented that talk, or have your thoughts changed about the matter? As someone who is interested in systems research, what do you think is the most promising direction that is emerging today?
"Backups are for wimps. Real men upload their data to an FTP site and have everyone else mirror it." -- Linus Torvalds
The GNU movement started on old Unix computers, and was aimed in part at them; so why do you think it is that the first wave of unix users were so resistent to the concept of Open Source?
Do you find any role for Plan9 at Google? Does Linux (or Linux with whatever customizations, extensions, and metamorphoses Google imposes on it) do everything Google needs or wants out of an OS platform? Does your experience with operating systems research pay off directly in contributing to the shape of the Google platform, whether for individual machine OS's, or for co-operation and clustered operation on the network?
What will drive the next crop of OS'? Is it in hardware innovations, new programming languages?
it's not going to stop until you wise up, no it's not going to stop. so just give up.
Jeez, someone, click on the fuckin link in the post with his name. He's not a Unix co-creator. He worked a lot on Plan 9, and wrote a bitmap windowing system for Unix. But he's not a Unix co-creator. The creators of Unix are Dennis Ritchie and Ken Thompson.
The operating systems link goes to encyclopedia.thefreedictionary.com, which is a scam-site that steals articles from other sites, in this case from Wikipedia. The only thing they've added are ads. The original can be found at http://en.wikipedia.org/wiki/Plan_9
As *NIX and linux become increasingly popular in the business place people are looking to push Microsoft out of the field, replacing servers and workstations with free alternatives like Linux and some BSDs. This is causing kernels and OS designed for server performance to progress to desktop solutions. Do you feel that *NIX should stay in the server marketplace and focus solely on that market, or do you think moving the OS/kernel into a desktop role is "A Good Thing"??
Best FPS gaming site on the net... ok, well maybe not the best
I think you mean: Were you to start again today, would you use an object-oriented API instead of a procedural API?
Computing has advanced so much in the past ten years that it seems it's impossible to go back and correct any origional mistakes in the way we think about computers. With the amount of money behind the corporate machine, it really seems as if incredible ideas like Plan 9 and Xanadu are now things of the past--once good ideas that could have changed the way we approach computing, that simply missed their time. Do you see hope for these ideas and projects, or any other new or old computing paradigms that have potential for big change, but would require scrapping, say, the past several years of stagnant and unorigional work? -Ryan
He also worked on Version 8 Unix and (IIRC) came up with an early version of the /proc filesystem.
He's certainly a co-creator of what we now know as Unix.
-- Alastair
In the marketplace, monolithic OSes seem to be dominating, despite the advantages of microkernel OS design. I know this is straying into many other issues but from your point of view, why are monolithic OSes still viable in the marketplace - and why hasn't the public (ie, the 'programming public') demanded more?
"Powers. I have them."
How does it feel driving around in that little buggy only being able to respond to questions with a simple yes or no?
Disconnect your television. Do your own research. Draw your own conclusions. They're probably lying. Don't be a sheep.
Google employees are apparently allowed to work on their own projects 20% of the time. Given that you probably can't comment on what you're doing for Google, what are you doing to fill the other 20%?
Wikipedia article about Rob Pike...
End of the World, or not?
Mr. Pike,
I'm a fan of Plan 9 (along with the notion of what it could be), would you give us an idea of some creative uses for this OS.
Be as specific as possible.
Also, if you will, a link for (instructions) porting to Plan 9.
~hylas
Do you feel that with the current usage in "traditional" operating systems such as Linux and Windows that there is no place, or need, for a Distributed Operating System in the industry?
Can you comment on the speculation about a new Operating System being created by Google?
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?
It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
Most people graduating with computer science degrees are only familiar with Windows and a handful of UNIX-variants: Linux, BSD, OS X. Is it good that stable technology is becoming the standard, thus allowing developers to focus their attentions elsewhere, or was this tremendous reduction in variety premature?
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++...
Plan 9, Unix and so many other great things came out of Bell Labs. Since the crash of the internet bubble, telecom companies have suffered immensely. One of the results of this is that Lucent has systematically dismantled one of the worlds greatest industrial research facilities. You spent a great part of your career at Bell Labs. What are your thoughts about the history and future (if any) of Bell Labs, and how did the culture of the Labs influence the growth of Unix?
Download my free songs!
emacs or vi?
3D Printing Tips and Tricks at Zheng3.com
Your bio at bell labs and most other bios writen about you, mention that you won the silver medal in archery at the 1980 Olympics.
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?
Among a certain crowd, Linux is viewed at the savior of computing--a young, hip operating system for the new century. But at the same time, there have been definite twinges of bitterness from a more old-school crowd, including people like Brian Kernighan, Jaron Lanier, and possibly even you. This bitterness appears to stem from the horror of a 25 year old operating system returning to the forefront of computing (for anyone vehemently disagreeing, consider if clones of VMS or OS/360 were suddenly all the rage). Who is right? What's your take?
Two questions:
Given two important facts:
- Windows NT is mostly written in C and C++, both Bell Labs innovations, and
- IE/Mediaplayer integration has turned the Windows NT codebase into a security disaster
How would you respond to Cutler's assertions, and how would you rate the code quality of the NT kernel (assuming that you might have perused the recent leaked NT4 source)?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.
If you were just starting out with today's computers, what would you do differently or the same?
How much do you think UNIX's success has been shaped by the relatively light restrictions placed on its use, distribution and modification?
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? ; )
If you had to do it all over again, what would you do differently? Why?
"Can there be a Klein bottle that is an efficient and effective beer pitcher?"
Rob, When you were engineering UNIX, processors weren't as beefy, memory was grotesquely expensive, and storage was a premium. These days all of these resources have largely become commodities and can be frittered away wastefully by neglectful programmers. Do you think that in an alternate world where UNIX hadn't been conceived as early in the progression of hardware as 1970, rather had come along at this stage in the timeline where hardware vastly outpaces all but the most glaringly negligent software, it would have been as compact, fast and efficient? Thanks! -Alex R.
"Give away the stone, let the oceans take and transmutate this cold and faded anchor." - Maynard James Keenan
What operating system to you use the most for your personal and/or work-related needs?
Someone please put together a good question about The HURD and his views on the project, if I do it, it won't get modded up, I'm bad at expressing myself in english.
I have to agree that this question does not make sense. It indicates a total lack of understanding of what OO means. I would argue that much of Unix actually is object-oriented. Think, for example, about the concept in Unix of presenting many types of IO devices as files. This achieves encapsulation, polymorphism, and a very high degree of abstraction by hiding implementation details, and presenting a very clean, intuitive inteface to programmers. There are many different types (you might say "classes") of files - pipes, sockets, regular, etc. - all of which can be passed into read and write calls. I'm sure I and others could go on all day about the OO aspects of Unix.
In which areas would you say is Plan9 (still) ahead of Linux/GNU and *BSD, the two operating systems which represent the most contemporary iteration of the original Unix design?
gopher://cramer.plaintext.cc http://cramer.plaintext.cc:70
What do you think of Mac OS X? Have you used it? Would you consider Mac OS X a 'version' of Unix? Would you consider using it as your main operating system? What do you loave about it? What do you hate about it?
This is very similar to the another post about OO. Clearly you don't understand OO. There's nothing stopping a C programmer from using OOAD. Language is only incidental. Now I understand that OO languages make OOAD easier, but there's nothing stopping you from using those languages on any platform. If you like Java, well you can develop Java ON UNIX. What exactly is your point about C? C is closer to the metal than most OO languages, which is why OS developers write in C, and many libraries are presented directly to C. But you don't understand the way languages work if you're asking the question, "why C?". Ultimately everything comes down to machine-level instructions, so language is almost completely irrelevant to the OS. Perhaps you mean to ask, "Does the rise of virtual execution environments like Java's or .NET's diminish the importance of the OS?"
Unix suffers today from a proliferation of file and output formats that makes integration between the CLI/config files and the GUI awkward at best. For example, a common idiom for Unix GUI tools is to parse output from a CLI program and present it visually. This would be greatly simplified and much smoother if those programs produced structured output rather than raw text. The same holds for programs that read configuration files, like resolv.conf. Do you think UNIX would benefit from standardization of formats that coalesce around XML? What do you think of the idea of developing schemas for OS objects? What about schemas for common application-level objects - the idea behind WinFS?
I realize the question needs work, but I hope you get the idea.
True. CLI is the equivalent of spoken or written language, and the GUI is the equivalent of pointing at something and grunting.
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.
The US (and to some extent, the EU) are facing mounting issues from Software Patents (The idea of patenting an idea opposed to an implementation). What do you think about the current state of Intellectual Property laws?
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 are out to describe the truth, leave elegance to the tailor - Albert Einstein
Rob, The media and UNIX/Linux boosters have been developing/promoting UNIX variants as a competitor to MS desktop OS's. Are UNIX and it's variants destined to have a significant share of the commercial desktop, or is it a compromise and will always be a small share (but doing most of the work!) OS compared to the star-studded MS lineup? What further steps do OS developers have to take to bring it to every desktop?
The quick brown fox jumped over the lazy dogs back 123456789
What would it be like. Would it still be unix like?
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.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
You have been active in many areas of computer science from computational physics to user environments to operating systems. What are your current interests?
What's the biggest mistake (design, paradigm, API) you've made that we're still suffering from. And I don't mean leaving the e off creat()!
Do you see X-Windows (in whatever form) as a viable platform for GUI technologies in the future or is it approaching the point of diminishing returns?
Don't you feel you owe an appology to a decade of 80s UNIX novices for wasted hours before discovering you weren't talking about the shell *they* were using in "The UNIX programming environment"?
Not that I'm still bitter 20 years on...
You stole the source code for UNIX from SCO, didn't cha?
Intolerance for ambiguity is the mark of the authoritarian personality.
Do you see a future for language-based operating systems like the old Smalltalk and LISP machines or the Newton?
Well, Rob did something different -- took what they learned from UNIX and wrote something new. And in his eyes, Plan 9 probably has way-fewer warts than POSIX.
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 warhorse. Cleaner and more interesting solutions were only possible through starting fresh.
Anyway, I was interested in his opinion of if UNIX deserves incremental change and updates, or if it, in his opinion, is ultimately a dead-end -- that our time would be better spent working on something that takes what was good from UNIX yet leaves the bad behind, just as UNIX did to MULTICS.
For example, Plan 9's per-process mount tables are definitely interesting, making more general a concept found in UNIX, but a much bolder change than what one would expect on a UNIX. Similar things can be said of Hurd's abandonment of the 'process running as root has all priviledges' concept. Likewise for languages whose system runtimes perform array bounds checking automatically.
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?
Gobolinux has directories named after programs and keeps all the program's files in a subdirectory named after the version of the program. Various symbolic link tricks are used to allow programs to see other programs' libraries and such. You can just rm -rf a program directory to remove the program as long as no other program depends on it. They include a script to determine a programs dependencies so running that script over all the programs and grepping the output to see if anything depends on a particular program is pretty easy. You can not move programs around like you can on the Mac because linux programs are not really designed that way. They internally refer to the location of other programs and even themselves in all sorts of ways. The only program I am aware of that can be moved like that is OpenOffice.org. There is another one, but I can not think of it right now.
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?