Zen X Server (2011)

Zen is an implementation of a basic X Window system in a compact Common Lisp codebase. The source is available Here.

  • This server is multithreaded (in contrast with the widely-used X.Org implementation) and fully implements the X11 client-server communication protocol. It communicates with client applications via TCP/IP.
  • Extensive use of code generating techniques to implement protocol specification, with the objective of producing the simplest known implementation of the complex X11 specification.
  • Focused effort on keeping system small, maintainable and pedagogical.

Retrospective

At the time, I was working in the mobile GPU industry, influenced by my newly found understanding that the OpenGL drivers are the new graphics hardware. So, I wondered what would happened if a modern window system was built directly on OpenGL (or DirectX). This resulted in the Zen experiment.

This exercise is a very experimental, partial implementation of the X11 spec, which would be indeed quite complex to implement more completely.

Looking back, if I were to do this today, I’d probably give up entirely on compatibility, and would try to look for alternative window system designs, and/or implementation strategies (as eg Kristian Hoegsberg did with Wayland)