Skip to content

Comment on Opossum: Cross-platform web browser written in Golang, optimized for Plan 9

Comments

I fully acknowledge that Plan9 had a cool vision, maybe a superior one to the world we’ve got. But is it practical as an operating system for day to day use, particularly when working with other people using conventional Linux/Mac/Windows?

But is it practical as an operating system for day to day use [...]?

It was never meant to be. Just like UNIX initially, it was a research operating system. UNIX turned out to be an accidental runaway success, and many of Plan9's greatest ideas (like synthetic filesystems, bind/union mounts, its threading library, the 9p protocol, etc) found their way to more "practical" systems.

It also did have a commercial counterpart in Inferno (mostly finding use in products like telephone switches). But nowadays both remain mostly as toys for enthusiasts. You can get work done, if you're patient enough, and have the freedom to ignore things like Zoom calls or Excel files.

It also did have a commercial counterpart in Inferno

Plan 9 was also available commercially for some time.

With xls2txt(1) and the doc versions of the tool you can at least dump most of the text from the Office files

[1] https://man.9front.org/1/doc2txt

I have witnessed dozens of people making vague statements about how awestruck they are with plan9's vision, and I've always wondered what exactly they mean.

Maybe try https://9p.io/sys/doc/9.html

My take is that plan 9 is basically a "pure" rewrite of a unix/posix OS, that takes many underlying principles of unix to their logical conclusions, without the taint of the incremental evolution of the existing systems, yet nevertheless informed by the lessons learned operating real OS systems. The incompatibility is why it hasn't moved forward, though many of the good ideas that are compatible with systems like bsd/linux have since been ported over.

It is really useful exercise to consider, in hindsight, how could we have built a better unix? And a bunch of really smart people participated and came up with some great ideas.

It's difficult to encapsulate specifics because it's a large amount of small details in the design decisions that end up adding up to a lot. You don't need Docker, you don't need Nix, you don't need NFS or SSHFS or Samba. The world doesn't need web browsers to do as much as they already do. So much tooling is made totally redundant by the emergent properties of the system. A monumental amount of engineering cruft, tacked onto *nix by the necessity of outdated system design, is simply cut away. How? It's little things like namespaces not requiring a tasteless amount of systems bureaucracy boilerplate. The amount of power that can be leveraged by shell scripts rather than dozens of low level API calls in C is not to be scoffed at. It's more than this, so much more. But it's not something you're going to "get" by reading about it.

As with everything else, it depends on who you are and what you do. Email, typesetting, remote shells are all well within the bounds of what workflows work great out of the box.

Typesetting? the linux-centric FOSS world has failed to produce a serious type-setting application for going on 30 years now, what's the offering here?

Just troff and TeX

Johannes Gutenberg produced the primary, and, by far, the most serious, application for type setting 575 years ago, long before the era of the Linux desktop. It's called The Book. Read one some time, and maybe you'll learn what a comma is for.

Not when one cares about graphics programming.

It's trivial to get running in qemu if you're really curious.

Sure, but that doesn't seem to really be using Plan9, at least to me. Networked access seems so fundamental to Plan9 that running it in a sandbox seems like trying out a car with all the tires removed.

I'm interested in hearing what it's like to use it more seriously; my biggest doubts are around collaborating with people on conventional OSes.

I've used it as my "main driver" for around 6 months last year and I can assure you it's definitely practical, you can also easily interact with the other OSes with ssh and vnc, that way I could even do some remote video calls from plan9 with the help of another linux computer for instance.

Qemu allows full network access. It's a very porous "sandbox"

Maybe I misunderstood Plan9, but I figured that if remote services aren't speaking 9P then everything would be a bit kludgey. Like, using Acme on local files which you push up to Github seems to be somehow against the spirit of Plan9. I suppose you could just use it like any other Unix-like OS, but what's the point?

I think I'm convincing myself in this thread that it's not for me - but of course I think it's great that others are using it, I don't want to sound too negative.

I think it's more important that services can be exposed as filesystems like webfs or gitfs than that they are exposed as 9P.

There is an image for raspberry pi. I guess that can be a good way to force yourself into it. Just make sure to have vnc access to a linux, mac or windows computer if you need it for work too.

That question makes no sense really. It’s like asking whether camping can be as practical as living in a proper house - maybe for some people, but generally, that’s just not the point.

If that's the analogy, then I think the question is certainly answered for me! "Practical isn't the point" seems pretty similar to "no, it's not generally practical."

I think there’s an interesting clue in the fact that the entire 9front has less lines of code than Go, which this browser depends on. And that includes two web browsers already shipped with the system! Yes, there are ways to force Plan 9 into something it isn’t, but fundamentally starting from the assumption that you want it replace your daily driver is not going to work out.

If you’re interested in it, set it up on a Raspberry Pi, connect to it with drawterm from your daily driver. Experiment with adding a second machine, netbooting it as a CPU server etc. That way you’ll look at Plan 9 from the point of its strengths, not weaknesses.

Thanks, this is a good suggestion, and it sounds a lot more like what I'm looking for - "seeing Plan9 from its strengths" is exactly right.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.