The ABI, the layer that joins the kernel and userspace is quite a mess. Various different interfaces, lacking documentation, and constant changes make it hard for anyone who uses the kernel to know that they can expect from the kernel when their userspace application makes a request. The purpose of the ABI specification project is to fully document the ABI interface in both a human readable and a machine readable form; this will allow verification that both the userspace application and the kernel behave as agreed in the “contract”. This would also allow for more research into subsets of the kernel’s ABI, and how to limit certain functions of the kernel by either allowing or blocking parts of the ABI.

Sasha Levin