bradfitz a day ago

Happy to answer any questions!

A bunch of us are currently in https://meet.google.com/qre-gydb-mkv chatting about this. (Edit: the hour is over; we all left)

The earlier Apr 1st blog post was https://tailscale.com/blog/tailscale-enterprise-plan-9-suppo...

  • undersuit a day ago

    I've never set up a Plan 9 system... does this allow the distributed systems communications to run through my Tailnet?

    • MisterTea 21 hours ago

      Yes, you could do something like keep a small root fs or pack everything into the kernels paqfs to boot into a Tailscale VPN and pull root from another 9 machine on the VPN. Then pull resources in from other machines including non 9 systems.

      Either way it makes VPN easy between 9 and non 9 machines. Otherwise Plan 9 can do it's own VPN-like over tls or ssh tunnels and bind remote network stacks to a local namespace. But that makes seamless Unix and Windows comms difficult.

      • bradfitz 20 hours ago

        > Otherwise Plan 9 can do it's own VPN-like over tls or ssh tunnels and bind remote network stacks to a local namespace

        Note that one of Tailscale's main party tricks is NAT traversal, when both machines are behind different NATs and can't otherwise get a connection open to each other. (And then Tailscale ultimately falls back to a relay server on the internet if it can't get a direct connection for IP packets)

    • bradfitz a day ago

      I think so! Caveat is I've never really used Plan 9 outside of single-user VMs.

  • INTPenis a day ago

    [flagged]

    • bradfitz a day ago

      We actually have that nowadays... the config file support to tailscaled, as Irbe mentioned on the bug Jan 2024: https://github.com/tailscale/tailscale/issues/1412#issuecomm...

      • INTPenis 7 hours ago

        Yeah I did find that in my quest but nowhere is this config file defined. I have no idea what to put into it so it's useless to me.

        Also while I have you here, the tailscale container image lacks iptables support, making it useless.

mfro a day ago

Russ Cox is an absolute legend for committing to this joke.

  • pbohun 21 hours ago

    Someone needs to convince Russ that it would be hilarious to have a full featured web browser in Plan 9.

    • MisterTea 20 hours ago

      On 9 front there's vmx which is hardware virtualization. You can boot a Linux kernel with an nfs root from the local machine and use headless vnc to run a browser in a vnc client window.

      I'd also like to point out that most users of Plan 9 dislike web technology because it's a giant nightmare of code. No one human can even begin to comprehend the code base of Chrome, let alone Firefox - programs that are as big, if not bigger than the kernels they run on. That is an absurd state to be in - your runtime requires a billion dollar company to maintain. Even open source Firefox needs millions in funding.

      Whereas a single human can grasp plan 9 code from the kernel to user space. That's the runtime I want, something I can understand. The process is the container on plan 9 so you have everything you need to build distributed apps without a web browser. It's human scale distributed computing. I'd like a future without the "modern" corporate scale web.

      • pbohun 20 hours ago

        Oh yes I absolutely agree. I would definitely like to completely replace the web. It's just that in order to (currently) do my banking, pay my bills, book airline tickets, order from Amazon, etc. I must use a browser. If I could escape all that I would run Plan 9 exclusively without another OS or hacks to access a browser from another OS/virtual machine.

      • naikrovek 11 hours ago

        > a single human can grasp plan 9 code from the kernel to user space.

        Is that true? I cloned the 2015 release of plan 9 a week or so ago and it had around a million lines of C. Can a single person hold all of that? I sure as hell can’t.

        • MisterTea 23 minutes ago

          You can, just not all at once.

          And which plan 9 release and when? Ghostscript and Python were originally distributed with 9front which are both HUGE compared to the rest of the system. Remove those and its much, much smaller. Unsure if ghostscript was included in vanilla 9 from the labs. Python was included in 9front because it was necessary for mercurial. Once git9 arrived python was nuked from base and removed many lines of code. Ghostscript is next to go from base once pdffs is running (patches welcome.)

      • facile3232 19 hours ago

        > You can boot a Linux kernel with an nfs root from the local machine and use headless vnc to run a browser in a vnc client window.

        Not only is the VNC redirection unnecessary, so it is the entire filesystem. You could just render the vm directly to the window and boot a read only image. Plus then you don't have to deal with VNC.

    • fiddlerwoaroof 21 hours ago

      Doesn’t plan9 support frame buffers over 9p or something like that? You could probably write a wrapper that just forwards a Linux browser to a plan9 window

      • adriangrigore 21 hours ago

        There are solutions, like VNC to some UNIX-ish machine, but, yeah, a native browser would be cool! 9front has a hypervisor, you could run something in there. https://man.9front.org/1/vmx

        • fiddlerwoaroof 19 hours ago

          So, something I’m thinking about here is that the 9p vision has always seemed really cool to me: expose all the resources in the network in a unified way that enables the whole network to be used as if it was a single computer. But, since this is a protocol-oriented vision of computing, it enables arbitrary implementers of the protocol to participate “natively”, even if they aren’t actually plan9 systems.

      • numbsafari 20 hours ago

        Many years ago a roommate and I had an HPUX machine running IE on HPUX just so we could forward X session to our FreeBSD and Linux desktops and not have to use our Windows machine for anything other than PC games.

      • [removed] 21 hours ago
        [deleted]
      • facile3232 19 hours ago

        It's probably easier to just run a VM directly into a window.

    • adriangrigore 21 hours ago

      Yeah, convince Russ and some investors! :D I would laugh my ass off for years at this joke! Yeah, please do this next year's April Fools'!

      • lunarlull 15 hours ago

        > I would laugh my ass off for years at this joke!

        I don't really get the 'joke'? Porting a full web browser to Plan 9 would seem like a cool project - where's the humor?

    • facile3232 19 hours ago

      Atp it's probably easier to just smash firefox/linux into a vm

packetlost a day ago

I unironically wish there was an enterprise version of Plan 9. I've been writing most of my scripts in `rc` (something my coworkers put up with because we use nix and I can pull it in automatically with dirnev) and it has been great.

  • yjftsjthsd-h a day ago

    I would worry less about other people being able to run rc scripts and more about them being able to read/edit them.

    • packetlost a day ago

      they're routinely very short, and the only non-obvious syntax for someone familiar with a C-like language is the ~ command and redirecting to stderr. They're pretty much always easier to read (and write) than bash scripts in general because of how little weird/surprising syntax there is. Not being a derivative of ALGOL has its perks.

      Most scripts are write-once:read-never, especially if you actually implement -h/--help

      • eddythompson80 21 hours ago

        > Most scripts are write-once:read-never, especially if you actually implement -h/--help

        I guess the answer is always “it depends”, but that generally has never been my experience with most things. Are you over-engineering the shit out of every script to the degree the script itself is a Turing complete machine and with enough —-help flags anything is possible? Most 40+ year old Unix tools with a thousand flags have their limits and you have to script around them to achieve things you want.

        In my experience, eventually a business need will arise that require you to change a script. Are your coworkers comfortable changing these scripts or are you in the mind set of “that’s a simple enough change, I’ll do it”

  • kristianp 13 hours ago

    One benefit of rc is this[1]:

    > The most important principle in rc’s design is that it’s not a macro processor. Input is never scanned more than once by the lexical and syntactic analysis code

    I worked at a unix shop that deleted most of a working drive because a shell script was modified while it was running. Luckily they kept daily backups on tape. This was about 17 years ago.

    [1] https://www.scs.stanford.edu/nyu/04fa/sched/readings/rc.pdf

    • LukeShu 6 hours ago

      Scanning input just is unrelated to the "modified while running" problem. The "modified while running" problem is a read-buffering problem.

      For example, consider the following change:

          -echo $x; rm -rf /n/foobar/
          +rm -rf /n/foobar/
           ^^^^^^^^^^^^^^^^
      
      If the shell's first read() reads 16 bytes (indicated above with "^"), then the file is changed, then the shell reads the rest; then the shell will see "echo $x; rm -rf /" regardless of whether or not it scans the input multiple times.

      I am unfamiliar with the read-buffering done by either of the 2 main implementations of rc, and so am unable to comment on whether it does things to avoid this problem. But if it does do things to avoid it, those things are orthogonal to the "not a macro processor / input is never scanned more than once" thing.

  • moody__ 21 hours ago

    Could you expand more on what you would like out of an "enterprise Plan 9"?

    • packetlost 20 hours ago

      the distributed computing model is pretty nice in theory (maybe not in practice) and the uniform system APIs are also nice. The userspace tools in particular are just plain better (structured regex commands are quite a bit better than ed-style and I find myself using them far more frequently in vis than I do in vim, they're far more composable and intuitive).

      The biggest thing is the heavy reliance on union file systems (and file systems in general) and an extremely simple syscall API. It's a heterogeneous-networked-node OS so it handles realistic workloads natively with primitives designed for it instead of piling complexity on top of Unix-like APIs (ie. Linux). I dunno, I just think a lot of the modern "cloud native" stack is unnecessary if you had an OS actually built for the workloads we have.

      • moody__ 19 hours ago

        There aren't really union filesystems per se, the plan 9 kernel provides unions through its namespace model. In my opinion part of the reason why the userspace tools can be as nice as they are, are due to the use of file system interfaces and the simplistic syscall API. Could you elaborate more on the issues you see with the use of these?

        In regards to using it for a "cloud native" stack, the issue is that people want to run code that isn't designed for Plan 9. You could build whatever backplane type thing you want out of plan 9 but the end goal is still likely to be to run some web app or REST api server. Unless someone does a great deal of effort to port all of those environments that people want (nodejs, modern python, etc) you're going to be stuck using a VM and losing a lot of the benefit.

        This feels similar to what Joyent did with lxzones in SmartOS, where the backplane was solaris based but the apps they were running for clients were using Linux. It's hard to make the plan 9 backplane better enough to warrant dealing with integrating the guest and host environment.

    • zozbot234 20 hours ago

      It could be used to replace k8s-based deployments (also Docker Swarms, etc.) since system interfaces on Plan 9 are namespaced and containerized "out-of-the-box" as part of its basic design (and this is one of the most prominent additions compared to *NIX). It's not a hacked-on feature as with Linux.

raggi 20 hours ago

In case y'all missed it in the first post, and you just want to try this out, it's working in this v86 image:

https://copy.sh/v86/?profile=custom&m=768&vram=16&hda.url=ht...

You can start tailscaled and tailscale inside the VM. It may take a while to come online sometimes due to limited proxy availability.

Edit: alt gives you the third button. To start a terminal, hold alt and right click, select new, release alt, and right click drag to size the terminal window.

0xbadcafebee a day ago

I like the premise of the joke, but then as the explanation ran on... I suddenly became depressed. So much broken stuff, so much complexity.... to, what, make a network tunnel? If all this extra work was the joke, that would be funny.

  • rsc a day ago

    We had to do some Plan 9 work, which makes sense when doing something new, but the actual Tailscale implementation is far _less_ work than for other Unixes.

  • badc0ffee a day ago

    It sounds like the Go compiler is better after this effort - fewer Plan 9 special cases in the code.

kanwisher a day ago

wholly cow was not expecting them to patch the plan9 kernel to make this work

  • nasretdinov 19 hours ago

    Why not though? Seems like relatively little amount of work was missing since clearly no one seriously done something like this before :)

renhanxue a day ago

> In 1999, Intel introduced the Pentium III processor with SSE instructions.

I kinda expected this paragraph to continue with

> This has made a lot of people very angry and been widely regarded as a bad move.

breckinloggins 20 hours ago

God I love plan9. Making my own os using many of its principles is a retirement project life goal.

EDIt: I reserve the name “chaos10” for this project, since - like SerenityOS - there will be no plan.

fultonb 21 hours ago

This is so cool to see. Plan9 was a wonderful part of my COVID isolation, and I miss playing with it. This might have inspired me to spin up a 9front VM this weekend.

  • bradfitz 21 hours ago

    Note that the 9front patches to run Tailscale are still in progress. I was just told they'll be ready in a couple weeks.

    For now only 9legacy (with all the latest changes) works.

  • MisterTea 21 hours ago

    > This might have inspired me to spin up a 9front VM this weekend.

    Please do! Just be careful with your sysupdate.

mcdow a day ago

Rob Pike is in shambles after this devastating betrayal

  • rsc a day ago

    Not sure what the betrayal is? He contributed a quote for yesterday's post. https://tailscale.com/blog/tailscale-enterprise-plan-9-suppo...

    • bakul 16 hours ago

      from the above post:

        > April 1, 1999
        >
        > FOR IMMEDIATE RELEASE
      
      Forward to the past?
      • pests 15 hours ago

        This was explained in the post. 1999 was when Intel released the Pentium 3 with SSE instructions, which caused the first major issue that had to overcome.

  • pvg a day ago

    I'm sure it takes more than that to shamble an Olympic Silver Medal winner in archery.

calvinmorrison a day ago

The 9fans list had this one for April Fools:

Given the huge maintenance cost of immature computer architectures such as mips, 386, arm, arm64 and amd64, we decided to put our focus on the more mature and stable achitectures:

power64 and itanuim.

Therefore, all architectures other than power64 and itanium are thereby frozen, conserved and promoted to end of life.

chaz6 a day ago

Please consider RISC OS next!

  • fidotron a day ago

    Three button mouse dependent UI solidarity!

    Golang on RISC OS would be a truly ludicrous porting effort.

chrsw 21 hours ago

My employer-controlled browser won't let me access that URL. At first it was cert errors and now it's just blocked.

  • neckro23 21 hours ago

    IME some web security gateways block the Tailscale domains entirely, presumably because it's a VPN that can bypass said gateway.

  • bradfitz 21 hours ago

    Weird. It's just Vercel on AWS. We have no alerts firing about any probers having cert errors or anything.

    I wonder what your employer/policy doesn't like.

    • jen20 20 hours ago

      I've found that tailscale.com sometimes gets blocked by overzealous content filters as "VPN software".

pjmlp 18 hours ago

Great, maybe Inferno as follow up?

[removed] a day ago
[deleted]
Gualdrapo a day ago

Yet I still wonder how cool things would be if Plan9 was the most popular and used OS

gbraad 21 hours ago

I do expect tailscale drive shares to use 9P in that case ;-P

[removed] 20 hours ago
[deleted]
naikrovek 11 hours ago

rsc, rob pike, and bradfitz are three people I could talk to for hours, completely wasting their time, especially about Plan9.

That OS fascinates me.

I remember early in my career when an expert I worked with could sit with me and patiently show me how to do something and let me ask questions for however long it took me to understand well enough what to do and how to swim if I fell in the deep end of whatever they wanted me to do. It was some of the fastest upskilling that I have ever done in my career, like getting a bachelors degree worth of very specific knowledge in three hours.

I don’t know C and I don’t know enough about Plan 9 to use it productively for anything, but it has some extremely cool and useful features that I want to know more about and learn how to use, even if it is only so that I can lament the non-existence of those features in the big three operating systems today.

If I had the money I would probably pay to get face time with all three of those folks for expanding my Go knowledge and rsc and rob pike for the plan 9 understanding that I have always wanted, but have never been able to give myself.

stonogo 19 hours ago

Seems like the real story here is that the Plan 9 port of Go is not particularly healthy, and that it's easier to modify an OS kernel than it is to fix Go?

  • bradfitz 18 hours ago

    The Plan 9 port of Go _was_ not particularly healthy. It is now.

    Fixing Go to not special case Plan 9 benefits all platforms--- all operating systems use the same code paths now, making the code simpler.

facile3232 a day ago

Plan 9 gets tailscale before a browser! Somehow this makes sense

[removed] a day ago
[deleted]
[removed] a day ago
[deleted]
candiddevmike a day ago

[flagged]

  • ziddoap a day ago

    Seems like learning was done and fun was had, alongside some marketing content being produced. In turn, I got some learning done and some entertainment.

    I think those are all benefits.

    • liotier a day ago

      Also, portability is a sign of a rather sane codebase - good vibes for Tailscale !