1. 39

Here there is the rendered book (I could not submit the story with this link, I’m a new user).


  2. 7

    It’s worth noting that this book is now licensed CC-BY-SA, which is one of the more permissive Creative Commons licenses considered free cultural works. This is my favorite Creative Commons license, which I use for my own work. It’s a copyleft license most reminiscent of the GPL. Good choice!

    1. 5

      Wayland has a protocol? I thought Wayland was supposed to not be like X windows … or am I missing something here?

      1. 7

        Wayland is a protocol (and a C implementation of that protocol).

        But Wayland does not have network transparency - the rendering is done directly by the client.

        1. 6

          Wayland IS a protocol. The protocol defines how clients (typically applications that have a buffer of pixels that they want to display and want to listen to input events) communicate with the server, aka the compositor, which manages the hardware (e.g. output and input devices), displays applications buffers where appropriate on the screen, and delivers events to the appropriate application.

          One difference with the X architecture is that there is no universal X server; instead, the compositor combines the role of the X server and the window manager. Reusable components for handling the low level details of the wire protocol or hardware devices exist as separate libraries (for example, libinput, xkbcommon, libwayland), on top of which different compositors can be build.

          The wikipedia page looks like a good read for more general information of that kind.

          1. 4

            To be a little more specific than just “Wayland is a protocol”, let’s quote https://git.sr.ht/~sircmpwn/wayland-book/tree/master/src/protocol-design/wire-protocol.md#transports:

            To date all known Wayland implementations work over a Unix domain socket. This is used for one reason in particular: file descriptor messages. Unix sockets are the most practical transport capable of transferring file descriptors between processes, and this is necessary for large data transfers (keymaps, pixel buffers, and clipboard contents being the main use-cases). In theory, a different transport (e.g. TCP) is possible, but someone would have to figure out an alternative way of transferring bulk data.

            1. 3

              “Protocol” as in “interface”, a set of operations, resources and rules. Not like a network protocol where the interface is designed to map to packets on the wire.

              1. 2

                It is pretty much a network protocol. For communication between a Wayland client and server, messages are sent over a UNIX domain socket (for reasons that @notriddle cited). The C API just abstracts over that.

                1. 2

                  …I actually just learned this due to /u/notriddle ’s post. Dang.