Domain: swtch.com
Stories and comments across the archive that link to swtch.com.
Comments · 92
-
Plan 9 has some answers, even for Linux boxes
-
Plan 9 has some answers, even for Linux boxes
-
Re:Why I succombed to using these things...
take a look at http://www.rangboom.com/
Rangboom is a free service for securely sharing or accessing your files over the Internet.
It uses 9p
and appears as a shared drive in Windows -
Acme
I have SUSE 10 and Plan 9 on my laptop. Use GRUB.
The Acme editor will be up and running on first boot, with an intro.
The install disk is also a live disk, so you can test your hardware first.
There is also this:
http://swtch.com/plan9port/
Which is a port of plan 9... but dual boot if you can. -
Re:I'm a "Plan 9 from Bell Labs" user
Hmm, I count 47 syscalls
http://swtch.com/usr/local/plan9/acid/syscall
No mmap huh? No shared libraries? Er, nice!
BTW I found these notes on Plan 9 interesting:
http://www.scs.stanford.edu/nyu/04fa/notes/l5d.txt -
Plan 9's web browsers
First of all there is Charon from Inferno. It supports html, EMCAScript (1.1 IIRC), CSS, DOM (level 1 IIRC) and https. (See screenshot however this one is a bit outdated)
Abaco is the most actively developed Plan 9 web browser. It supports most of html. DOM level 3 development has been started. Mozilla's Javascript engine has been ported to Plan 9 and can be used today for a Javascript shell. This will provide abaco with Javascript in the future. Work on CSS has started but I do not know what has been done or where it is heading. Abaco has been ported to Linux and friends via Plan 9 from Userspace. Package managers are encouraged to make packages of abaco for their systems. (See screenshot)
Then there are webpage, links, mothra, and htmlfmt.
Finally there are text web browsers for acme (htmlfmt for Plan 9 and see this for Inferno)
In other news, SDL now works on Plan 9. -
Re:Hmmm....
Ok, explain how making a few minor tweaks, such as spacing menu items a little further apart and placing them in another font, as well as updating the scroll bars a little makes it less usable? In my opinion, it makes it less ugly. Compare: this Acme screenshot to a mockup I just made that I find significantly less ugly.
How have I ruined usability?
You remind me of the guy in Crazy People who came up with a slogan for Volvo: "Boxy, but good." What you're telling me goes a step further: "It can't be good unless it's boxy." The two are separable to some extent.
--Joe -
Re:Hmmm....
Believe what you will, but I'm not asking for "bling bling," and I think most modern UIs are too flashy. I can't stand OS X for extended periods of time (except over an ssh connection), and when I have to use WinXP, I set it to "classic." *sigh*
Is it too much to ask for the menus to be spaced a little further apart in a less jagged font, or even just confirmation that it can be done? Compare the original to a mockup I just made. Notice that the menus are in a more approachable font and spaced further apart. The scroll bars are also the more common type you find these days on the right, not the Athena/X11 style on the left.
Just because an interface is spartan doesn't mean it must eschew all the useful minor improvements UIs have made over the years. I know when my eyes are tired and bleary from a long day of hacking, I'll have a better chance of hitting the menu I want in the proposed version.
--Joe -
Re:Hmmm....
The rio (1) window manager gives me flashbacks to TWM, and gawdy color schemes inspired by 256-color displays.... More screen shots here. I'm not saying GNOME or KDE have the best look either. I actually was happy with OpenLook / OLVWM. If I have to go to a window manager look that's 10-15 years old, can I go to that one instead?
--Joe :-) (Of course, anyone can make any window manager look bad.) -
Re:Hmmm....
The rio (1) window manager gives me flashbacks to TWM, and gawdy color schemes inspired by 256-color displays.... More screen shots here. I'm not saying GNOME or KDE have the best look either. I actually was happy with OpenLook / OLVWM. If I have to go to a window manager look that's 10-15 years old, can I go to that one instead?
--Joe :-) (Of course, anyone can make any window manager look bad.) -
Re:Hmmm....
The rio (1) window manager gives me flashbacks to TWM, and gawdy color schemes inspired by 256-color displays.... More screen shots here. I'm not saying GNOME or KDE have the best look either. I actually was happy with OpenLook / OLVWM. If I have to go to a window manager look that's 10-15 years old, can I go to that one instead?
--Joe :-) (Of course, anyone can make any window manager look bad.) -
Re:Hmmm....
Well, I suppose if you use a nicer font and space the menu labels further apart than is shown in screen shots like this one, it could be reasonable to work with. That, and ditch the ancient X11/Athena style scroll bars for something a little more contemporary, and we'll talk.
:-)Since you've been using Plan9 for 10 years, do you have any counterargument-making screen shots of your own?
--Joe -
Re:Yet another unusable pre-alpha release
Caerwyn said he was going to make a new release in a few days with the bug fixes. Most importantly this one. Check it out again in a few days. The Plan 9 from User Space acme has been well tested and is mostly bug free.
-
Venti
Either through plan9 port or the real thing
Venti is block level and, as such, coalesces identical blocks, a bit like LZW, so backing up 100 Windows machines doesn't take up 100x the disk space of backing up 1 windows machine.
http://cm.bell-labs.com/sys/doc/venti.html
http://cm.bell-labs.com/magic/man2html/8/venti
http://swtch.com/plan9port/man/man8/venti.html
http://swtch.com/plan9port/man/man8/vbackup.html
Sean Quinlan (one of the 2 Venti inventors) moved from Bell Labs by Google.
08:56-10:13
News for nerds, stuff that matters
Post Comment
Database maintenance is currently taking place. Some items such as comment posting and moderation are currently unavailable.
MySQL r0x0rs -
Venti
Either through plan9 port or the real thing
Venti is block level and, as such, coalesces identical blocks, a bit like LZW, so backing up 100 Windows machines doesn't take up 100x the disk space of backing up 1 windows machine.
http://cm.bell-labs.com/sys/doc/venti.html
http://cm.bell-labs.com/magic/man2html/8/venti
http://swtch.com/plan9port/man/man8/venti.html
http://swtch.com/plan9port/man/man8/vbackup.html
Sean Quinlan (one of the 2 Venti inventors) moved from Bell Labs by Google.
08:56-10:13
News for nerds, stuff that matters
Post Comment
Database maintenance is currently taking place. Some items such as comment posting and moderation are currently unavailable.
MySQL r0x0rs -
Re:Backup
plan9 does this
and you get a day by day (or however much you fancy) snapshot so you can roll back your files to any snapshot in time you have recorded, on a process by process basis. I.E. you can have two different days open at the same time in different processes.
And, to add compliment to health, it doesn't use up extra space but uses Venti
Venti is also available for Unix-likes via plan9port
while I'm here, plan9 is secure BY DESIGN. No super user, networked authentication, networked file storage, diskless terminals etc. et bloody cetera. -
Re:D programming
The "D" name is misleading: it has absolutely nothing to do with the creators of B or C at Bell Labs. The successor of C was Alef(the first latter of a different alphabet) which was used for the original edition of Plan 9[1], and a later descendant by the same team was Limbo(Introduction paper by no other than Dennis M. Ritchie) for the Inferno.
Both Alef and Limbo are much more interesting languages than "D", they keep the clarity and simplicity of C while providing a high level framework for concurrent systems. The only other language with a good concurrency model I know of is Erlang which is quite different but also very interesting and sadly rather under valuated.
uriel
[1] To avoid having to maintain Alef compilers for many architectures Plan 9 is ported to, it was replaced with a C library, libthread, that provides the same concurrency model, for high level programming Limbo replaced it. Libthread, despite it's name is completely different from other threading models and uses CSP to handle concurrency while avoiding locks and many other problems with traditional "threading" systems. Libthread is part of Plan 9 from User Space so you can use it in "legacy" Unix/Linux/BSD systems too(of course Inferno runs on all those systems too...) -
Re:obligatory
The good news is, you don't need to install plan 9 to use venti. You can do it with plan9port on a Linux/FreeBSD/Mac OS X/etc box today.
-
Re:Maybe true, but not necessarily desirable
-
Re:Maybe true, but not necessarily desirable
-
Re:I think we have a new kind of troll...
I try and keep them relevant.
This story is a case in point. Symlinks are a hack that hides the fact that disk drive based namespaces are a crock. And a crock that's easily solved.
Unix is 30 years old, Linux copies it. Windows is not in the picture.
Linux / BSD et. al. offers very little innovation any more. Instead anything new is coming in through the user space and we end up with stuff like GnomeVFS and smb:// handlers.
The only real place where any real Unix like innovation has occured in recent times was in Bell Labs and the expresssions of that are Plan 9 and Inferno.
You can try some of the concepts out in user space through http://swtch.com/plan9port/
"Plan 9 from User Space (aka plan9port) is a port of many Plan 9 programs from their native Plan 9 environment to Unix-like operating systems.
supported systems : Linux (x86 and PowerPC), FreeBSD (x86), Mac OS X (Power PC), NetBSD (x86), OpenBSD (x86 and PowerPC), SunOS (Sparc)." -
Re:I guess the idea is it's extremely portable.The challenge is making the design maintainable. There isn't a program that can't be written as a state machine; but most programs expressed this way are difficult to understand and maintain.
The argument that Rob Pike makes in A Concurrent Window System and with Luca Cardelli in Squeak: a Language for Communicating with Mice is that many of the event systems and associated state machines that we write can be much simplified by treating input multiplexing, and thus coroutine-like structures, as language primitives.
This work follows directly from Hoare's Communicating Sequential Processes - a good summary can be found here. Working with CSP only a little has convinced me of how much easier so many systems tasks are in this framework than in the world of the massive state-system/event loop world.
-
Re:I guess the idea is it's extremely portable.The challenge is making the design maintainable. There isn't a program that can't be written as a state machine; but most programs expressed this way are difficult to understand and maintain.
The argument that Rob Pike makes in A Concurrent Window System and with Luca Cardelli in Squeak: a Language for Communicating with Mice is that many of the event systems and associated state machines that we write can be much simplified by treating input multiplexing, and thus coroutine-like structures, as language primitives.
This work follows directly from Hoare's Communicating Sequential Processes - a good summary can be found here. Working with CSP only a little has convinced me of how much easier so many systems tasks are in this framework than in the world of the massive state-system/event loop world.
-
Re:we've still got Google, for nowFirst of all, Linux is just an Unix clone, and it never had many fans at Bell Labs.
And Bell Labs gave up Unix _long_ ago:
Not only is UNIX dead, it's starting to smell really bad. -- Rob Pike circa 1991
Bell Labs moved from Unix to Plan 9 in the late 80' and then went on to work on Inferno.
Both Plan 9 and Inferno are Open Source now and live on outside Bell Labs, but their developers like to be very quiet, they rather code than talk or maintain websites.
But here are a couple of links:- Why Plan 9 is not dead yet And What we can learn from it by Ron Minnich from the Advanced Computing Lab, Los Alamos National Lab.
- The Ubiquitous File Server in Plan 9 by Dr. C. H. Forsyth of Vitanuova
And also many of the ideas of Plan 9 and Inferno live on as part of other projects like v9fs(9P distributed file system protocol support for Linux), Plan 9 from User Space(a port of many Plan 9 components to Unix), and wmii(a window manager partially inspired by Acme.) - Why Plan 9 is not dead yet And What we can learn from it by Ron Minnich from the Advanced Computing Lab, Los Alamos National Lab.
-
ok, I'll advocate mine
-
ok, I'll advocate mine
-
Re:Outlook 2003
I know exactly squat about Plan 9, so correct me if I'm quoting out of context or something, but according to the second site you linked:
In Plan 9, the kernel mount device mnt(3) acts as a client to the 9P servers mounted in the current name space, translating system calls such as open(2) into 9P transactions such as open(9p). The kernel also multiplexes the potentially many processes onto a single 9P conversation with each server. Finally, the kernel provides each process with its own private name space which it can customize at will. Modern Unix systems do not provide these niceties, so the Unix port of these Plan 9 file servers provides them via other means.
On Unix, 9P clients do not access servers via the traditional file system call interface. Only the Unix name space can be accessed that way. Instead, 9P clients use the 9pclient(3) library to connect and interact directly with particular 9P servers. The 9p(1) command-line client is useful for interactive use and in shell scripts.
In other words, it's only in user-space if you're not running Plan 9, in which case it does more or less the same thing that KDE does.
-
Re:Outlook 2003
> how do you think "everything is a file" works, exactly?
it works by having user level file systems, I use them all day, every day
blame who ? why, it doesn't necessarily need kernel modification
you can even try this LiveCD
or read the pdf -
Re:Leading technology for tomorrows computing
What do you use it for?
My day to day programming work in php & python & shell
If it wasn't for the lack of modern web browser (a herculean programming task) it would be the only terminal I needed. As you may gather from my other posts I run OpenBSD and vnc into that.
It is worth using for the text edit alone : Acme
You can try it yourself on Unix likes with the plan9port or even just run the acme clone Wily. But with Wily you won't see the power of user space file systems.
% srvssh freddy
%
and now freddy's file system is mounted in my file tree at /n/freddy and all transfers ssh encrypted.
(and freddy is an OpenBSD box with u9fs in my ~/bin - no kernel frigging required)
% ftpfs -a drskwid@slashdot.org ftp.openbsd.org
%
and now ftp.openbsd.org is mounted at /n/ftp
once mounted I can use my normal shell commands such as grep awk sed etc. on the files in those directories
I have some scripts on freddy that I only need when connected to freddy. Simple : bind -b /n/freddy/home/matt/bin/plan9 /bin
and now the files on freddy appear in my /bin
this is the mechanism that enables one to boot a terminal on any of the supported architectures and have the same set of binaries available
at boot one has the following bit in one's profile :
bind -a $home/bin/$cputype /bin
thus whether I'm running on my AMD64 PC or my Arm IPAQ I have the same binaries in my path
I could go on about the plumber, secstore, factotum, venti,
want to look in a tar / zip file
fs/tarfs -m /n/somefile somefile.tar
fs/zipfs -m /n/somefile somefile.zip
ls /n/somefile
I'll leave the rest for you to read through
-
Re:GNU
I think that project is obsoleted by plan9port.
Why have a userspace based in a 30 years old dead[1] operating system, when you can have the userspace from it's successor that is actively maintained, and was developed by the same team following the same principles and philosophy.
[1] "Not only is UNIX dead, it's starting to smell really bad." -- Rob Pike circa 1991 -
CSP and libthread
This is what it means for me: http://www.cs.bell-labs.com/who/rsc/thread/
Also see Brian W. Kernighan's "A Descent into Limbo" and Dennis M. Ritchie's "The Limbo Programming Language".
And of course Hoare's classic: Communicating Sequential Processes.
Now you can enjoy the power and beauty of the CSP model in Linux and other Unixes thanks to plan9port including libthread and Inferno; yes, it's all Open Source. -
Re:I use Dreamweaver 2004 which is...
I use plan9, the feature is provided by the plumber
some of plan9 features, the plumber being one of them, are now available in Russ Cox's excellent plan9port project -
secstore
I use secstore, I don't have to remember my passwords and they can be as long and as random as I like.
All I need is the password to secstore, which, in my case, is on the LAN.
secstore client - man page - for non-plan9 systems is now available as part of the Plan 9 from User Space project.
-
secstore
I use secstore, I don't have to remember my passwords and they can be as long and as random as I like.
All I need is the password to secstore, which, in my case, is on the LAN.
secstore client - man page - for non-plan9 systems is now available as part of the Plan 9 from User Space project.
-
Question #9: Plan 9 Editors
For those of you looking to try out some of the editors Rob mentioned (namely Sam and ACME) - the most recent port of those applications to Linux/BSD/OSX is maintained at the plan 9 port page by Russ Cox - although it would be wise to read the papers before trying the executables.
There's also a recently reactivated project to bring Plan 9 filesystems and namespace concepts to Linux which is maintained over on Sourceforge. -
Re:Emacs or vi
If you want to give Acme a try (I love it), you can do one of two things:
A: Download Inferno. It's a Virtual Machine-based operating system that runs on top of Linux, Mac OS X, Windows, and Plan 9 (to name a few). Acme is included. Free to download.
Or B: plan9port. It's a port of the Plan 9 libraries to UNIX, including Linux and BSD. Acme is included (screen shot under KDE). Again, free to download.
You should read the Plan 9 wiki entry on acme before trying to use it.
Enjoy! -
Re:Emacs or vi
If you want to give Acme a try (I love it), you can do one of two things:
A: Download Inferno. It's a Virtual Machine-based operating system that runs on top of Linux, Mac OS X, Windows, and Plan 9 (to name a few). Acme is included. Free to download.
Or B: plan9port. It's a port of the Plan 9 libraries to UNIX, including Linux and BSD. Acme is included (screen shot under KDE). Again, free to download.
You should read the Plan 9 wiki entry on acme before trying to use it.
Enjoy! -
Re:CLI
You obviously have never used Acme, the greatest UI ever created:
"Acme: A User Interface for Programmers" By Rob Pike
And now you can even run it on (l)Unix thanks to rsc's plan9port: http://swtch.com/plan9port/
I was just re-reading the Acme paper this afternoon, and this made me wonder, acme was supposed to eventually support non-textual graphics but this was never implemented, why? and what ideas did you have for such an implementation?
If done right that could allow acme to replace rio completely ;)
P.S.: For the parent, if you want to know more about Rob's view on user interfaces I recommend that you at least read his papers: 8½, the Plan 9 Window System and The Text Editor sam -
Re:GLAT - sample questions
Q. What's broken with Unix? How would you fix it?
That is an easy one, one word and a single digit number: Plan 9
Having in mind that Rob Pike and a few other Plan 9 developers now work at Google, I wonder if they had anything to do with this question...
There has been some speculation among Plan 9 fans about what the hell is Rob doing at Google, aside from some small contributions to the Plan 9 on Unix project no one knows what he is working on... I hope that some day we will all get to find out ;) -
Re:As far as I understand...
What do you find interesting in a VMS and Java clones is beyond me, two of the worst technologies ever created in the history of software. Not to mention the most directly at odds with the Unix philosophy.
If you are going to "reshape this industry", you could at least try to do so into a less hideous new shape. (l)Unix has been dead for more than fifteen years[1], but better things have been around for almost as long.
If you like C but are tired of doing memory allocation, why don't you use the language that the creators of C spent twenty years designing[2] to overcome C limitations: Limbo
Rob Pike admitted that the main problems with C (as a high level language) are the lack of proper strings and the lack of garbage collection, with limbo you get that and a bunch of other really wonderful goodies, like the best parallel programming framework using CSP and the most beautiful and simple distributed environment thanks to 9p/Styx.
Not only that, but now Inferno/Limbo and Plan 9 are open source.
Note: Now you can even run most of Plan 9 user space under Linux: Plan 9 on Unix
[1] "Not only is UNIX dead, it's starting to smell really bad." -- Rob Pike circa 1991
[2] Directly or indirectly most languages developed at Bell Labs for the last 30 years have been predecessors of Limbo
Best wishes and I hope that some day you will correct your misguided ways
uriel -
Re:Link to project
Plan 9 provides mk, as a replacement for make. There are unix ports available. Since this isn't really a `better make' story, I'll not post more, but the papers and manual pages (yes, actually used in Plan 9) are often interesting reading regardless.
-
Simplicity is more important25 years later I still agree with Kernighan:
The most effective debugging tool is still careful thought, coupled with
judiciously placed print statements.
-- Brian W. Kernighan, in the paper Unix for Beginners (1979)
But I think the key to debugging is not the technique used for debugging, but how one wrote the code in the first place, here again God Kernighan hits the nail in the head:
Debugging is twice as hard as writing the code in the first place. Therefore,
if you write the code as cleverly as possible, you are, by definition, not
smart enough to debug it.
-- Brian W. Kernighan
Once again, at the time of debugging, simplicity shows it's superiority to the complexity that seems to be so much in fashion this days. That is why I still prefer C to C++; rc to bash; AWK/sed to Perl; Plan 9 to Linux; Limbo to Java; 9p to NFS,...
This is the forgotten key to software design: ...there are two ways of constructing a software design: One way is to make it
so simple that there are obviously no deficiencies and the other way is to make
it so complicated that there are no obvious deficiencies.
-- C.A.R. Hoare, The 1980 ACM Turing Award Lecture
Or put in another way:
The cheapest, fastest, and most reliable components are those that aren't there.
-- Gordon Bell
Back in the topic of debugging, aside from the sacred printf, the Plan 9 debugger acid is often helpful, and now you can even use it on Linux/BSD!
Plan 9 on Unix
Also the chapter on debugging in The Practice of Programming by Brian W. Kernighan and Rob Pike is very good.
Always remember:
- Simplicity
- Clarity
- Generality
- Simplicity