{"id":1871,"date":"2014-11-25T14:51:45","date_gmt":"2014-11-25T14:51:45","guid":{"rendered":"http:\/\/www.syslog.cl.cam.ac.uk\/?p=1871"},"modified":"2016-10-04T13:10:07","modified_gmt":"2016-10-04T13:10:07","slug":"new-directions-in-operating-systems","status":"publish","type":"post","link":"https:\/\/www.syslog.cl.cam.ac.uk\/2014\/11\/25\/new-directions-in-operating-systems\/","title":{"rendered":"New Directions in Operating Systems"},"content":{"rendered":"

Notes from the New Directions in Operating Systems 1 day conference at the Shoreditch Village Hall in London.<\/p>\n

Rump kernels and {why,how} we got here<\/h1>\n

Antti Kantee<\/a>, Fixup Software<\/a><\/p>\n

Writing drivers and filesystems is hard. Want to reuse this existing code, continuing to benefits from updates. A rump kernel runs on a hypervisor. A normal OS kernel with most of the code removed. Does not provide threads, scheduler, exec, VM. Can therefore run anywhere and integrates with anything. Some glue code connects to hypervisor. Application can add libc, etc, if desired. The syscall interface contains much useful logic (e.g. path resolution), so want to keep that too.<\/p>\n

Was able to compile to JavaScript and debug driver using FireBug. Fetched a web-page in the Linux kernel. Also runs on Xen (Mini-OS) and bare metal.<\/p>\n

http:\/\/rumpkernel.org\/<\/a> (BSD license)<\/p>\n

Where are they useful?<\/p>\n