Plan 9 Theory and Practice; Intro to 9P Requests 7.2

Поділитися
Вставка
  • Опубліковано 11 січ 2025

КОМЕНТАРІ • 32

  • @blu35cr3w
    @blu35cr3w Місяць тому +4

    This series is exactly what Plan9/9front needed to get more attention. As soon as the Christmas hol(l)ydays arrive, I will set up some stuff (Harvester VMs, div. Raspberry Pis and a Raspberry Pi Laptop). Really good stuff.

  • @somacruz8272
    @somacruz8272 17 днів тому +1

    Thank you for making these videos. I organized them into a playlist known as "9" and will tag it with something more appropriate so as to make watching these easier

  • @Jalae
    @Jalae Місяць тому +6

    very useful. I understood that conceptually that this kind of thing is possible in 9front, but digging through source and reading man pages it's hard to get a holistic view of how it actually works in a generic sense. This lays it out beautifly with simple examples covering a wide set of use cases.
    Now I'm tempted to rewrite my static site generator to run as a 9p service, as it would allow for various dynamic-like behaviors which would be difficult otherwise.

    • @adventuresin9
      @adventuresin9  Місяць тому +2

      I've thought a web page generator would be a good one. But my html knowledge is very rusty and out of date, so I won't be doing one myself anytime soon. I can image how it could pull from other files to fill stuff in, and also have the benefit of been explicitly cached in ram.

  • @karlmatthias2698
    @karlmatthias2698 Місяць тому +3

    This series is great!

  • @dergrauemann
    @dergrauemann Місяць тому +1

    Thank for your Videos and enjoy a coffee :)

  • @yuriyyermilov7808
    @yuriyyermilov7808 19 днів тому +1

    Great work, thank you for adding this.
    Will you be planning on looking into making a video on the 'acid' debugger?

    • @adventuresin9
      @adventuresin9  19 днів тому

      I barely understand the acid debugger, and the documentation is sparse. It is truly a wizards tool. One of things I use it for the most has been spun out into a shell script that comes standard in 9front now. /rc/bin/lstk will look for the last Broken process and print out the stack for it. So when a program straight dies, you can run lstk and quickly get an idea of where exactly it crashed.

  • @spicycoldnoodles4585
    @spicycoldnoodles4585 Місяць тому +3

    this is cool, attaching custom behaviors to file-like objects makes me think of translators in GNU Hurd. It's pretty neat how this can all be done without root. Speaking of translators, I've been experimenting with pipefiles to further attach behaviors to individual files on plan9, though it's a little disappointing to me that it only really seems to work for files that act as streams (cons, kbd, etc) and not static files. i wanted to make a pipefile that adds line numbers to a file on read and removes them on write so i could transparently get line numbers in acme without modifying acme (ik this can be done inside acme, but i want it to be transparent to the editor). Any chance you'll be demoing pipefiles at some point? They seem really cool but I see very little mention/discussion of them, so I'm not sure if they're less useful than they appear to me or what.

    • @adventuresin9
      @adventuresin9  Місяць тому +3

      I will be doing pipes, along with import and srv stuff with section 6. Line numbers is an interesting problem. I would lean more towards having it be a feature of the display. Part of the Plan 9 design philosophy was to make all "text" mutable. Like how you can go to any where in console, edit the text, and cut it out to paste it elsewhere. But editing a line number doesn't fit it, so should it be considered "text" or more of a display feature? Something added on, like the scroll bar.

    • @spicycoldnoodles4585
      @spicycoldnoodles4585 Місяць тому

      @@adventuresin9 sage advice, ill thinkg about tweaking acme instead, ty! unrelated, but did you manage to get 9front to listen for ssh connections? the sshd/sshsession options ive looked around for and found dont seem to work, so im not sure if listening for ssh connections is supported anymore or if I just havent figured it out. drawterm -G is fine if it was just me using the terminal interactively but i have this intense curiosity to see if i can get emacs/vscode to edit files on 9front from my host over ssh

    • @adventuresin9
      @adventuresin9  Місяць тому +1

      I've asked around, but no one seems motivated to finish up a sshd for 9Front. If you could mount 9Front file server into Linux, you could use Linux text editors to edit files. Not many people want to be the ones to maintain Linux code for mounting Plan 9 file servers.

  • @maxinehayes90
    @maxinehayes90 Місяць тому +1

    How difficult would it be to stream video through a file? I've attempted it before using go9p, but was only partially successful. ffmpeg wasnt particularly happy when processing, so it worked some of the time with glitchy frames. More success was had with polling a virtual jpg every second to mimic video, but it was somewhat slow.

    • @adventuresin9
      @adventuresin9  Місяць тому +2

      A lot of 9P stuff uses IOUNIT for buffer sizes, and that is set to 32kB. I ran into a similar issue pulling the jpeg from the web site. So that was website to my computer via http, the webfs to fakefs via 9p, and fakefs to page via 9p. I set fakefs to do reads of 1kB, but haven't done testing to find the exact point performance declines. And it might not be a 1 to 1 thing of matching byte to byte size. if I'm pulling at 32kB every second, but the programming I'm pulling from can only load 32Kb every 2 seconds, I'll still run it to problems where my read blocks while waiting

    • @smorrow
      @smorrow 5 днів тому

      What if you pipefiled pump(1) over it?

  • @kesim
    @kesim Місяць тому

    I think the early exit when the old image is returned should also close the file descriptors, no?

    • @adventuresin9
      @adventuresin9  Місяць тому

      Good catch! I should fix that. This is what happens when I rush to get a video done before going to work :P

    • @adventuresin9
      @adventuresin9  Місяць тому +1

      I should just do the early exit before opening any files.

  • @wgr4329
    @wgr4329 Місяць тому

    If possible, make an overview on the on the draw device or graphics overall, because plan9 graphics over the network always felt like magic to me, specially compared to something like X over ssh, which is insanely slow, in contranst plan9 feels like client rendering locally even on remote connections. Also is it possible to make visible rio state over the network? Effectively what I'm thinking is "sharing the screen" with someone case.

    • @adventuresin9
      @adventuresin9  Місяць тому +1

      It is rendering locally. At least when it is using the regular draw functions. Some graphical thing do boil down to shoving bitmaps across the connection. Drawing is handled by the draw device 'man 3 draw' and it is exposed as a set of files that commands can be written into.

    • @wgr4329
      @wgr4329 Місяць тому

      @@adventuresin9 I imagine when you were executing rio+doom from a remote cpu (in another video) would shove at least the doom window bitmap over the connection, correct? Othweise I can't understand how that can possible work, I'll need to take a time to debug/read the code, the man pages didn't worked.

    • @adventuresin9
      @adventuresin9  Місяць тому +2

      In that case yes. I'm not sure on the exact internal workings of doom on 9front, but I'm sure it is just dump bitmaps into a frame buffer, and those frame are being sent across. You can look into the various programs under games, or something like page to see code for putting bitmaped images into a window. Look into 'man 2 draw' for the various draw functions.

    • @smorrow
      @smorrow 20 днів тому +1

      Sigrid wrote stuff to stream the screen to Twitch, if that's the type of sharing the screen you mean.

  • @belstar1128
    @belstar1128 Місяць тому

    What does the snarf option at the top of some of these programs between paste and sort do ?

    • @untangledco
      @untangledco Місяць тому +1

      Snarf is the same as “copy” in copy and paste; just a different name

    • @adventuresin9
      @adventuresin9  Місяць тому

      Yup, "snarf" is just "copy". Plan9 was made for engineers by engineers, and they have a lot of silly names and inside jokes sprinkled around in it.

    • @belstar1128
      @belstar1128 Місяць тому

      @@adventuresin9 ok so they have 3 copy buttons assuming Xerox means what I think it means lol

    • @adventuresin9
      @adventuresin9  Місяць тому +1

      xerox will make a copy of one of the open windows