/revolving-doors

A tutorial on the illumos Doors API

Primary LanguageCBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Get Started: Before we Begin

Revolving Doors

Learning the illumos Doors API

illumos Doors are a novel form of inter-process communication. They allow a thread in a client process to call a function in a server process, automatically spawning a handler thread in the server process if needed.

overview

This repository includes a set of annotated code examples of increasing complexity, each of which discusses a different aspect of the doors API. Though unusual, this API is not very big. The goal of this project is to help folks become comfortable with the doors API in two or three attempts.

Prerequisites

You should know a little C, and have an interest in systems programming. More specifically, this tutorial assumes you either understand or can teach yourself about the following:

  • When a process opens a file, it gets back a "file descriptor" which is an int
  • Making a "System Call" is really just asking the OS to do something for you
  • C represents arrays by a pointer to the beginning of some data, and its length
  • printf takes some funky arguments, and you have to look those up sometimes.
illumos

Of course, to play with doors, you will need access to illumos! I recommend installing OpenIndiana on a VM on your workstation. Or, if you are an AWS customer, you might find it easier to launch an OmniOS instance in your AWS account.

Sources

I am writing this because there seems to be so little about doors on the internet. Here is what I have been able to gather, in order of usefulness:

Special Thanks