helenos in the year of the pig helenos in the year of the
play

HelenOS in the Year of the Pig HelenOS in the Year of the Pig - PowerPoint PPT Presentation

HelenOS in the Year of the Pig HelenOS in the Year of the Pig http://www.helenos.org http://www.helenos.org Jakub Jerm j a k u b @ j e r m a r . e u HelenOS in a nutshell HelenOS in a nutshell Portable microkernel-based


  1. HelenOS in the Year of the Pig HelenOS in the Year of the Pig http://www.helenos.org http://www.helenos.org Jakub Jermář j a k u b @ j e r m a r . e u

  2. HelenOS in a nutshell HelenOS in a nutshell ● Portable microkernel-based multiserver OS ● Designed and implemented from scratch ● Not a clone of any existing OS / API ● Virtually no third-party code ● Fine-grained userspace components Jakub Jermář , FOSDEM 2020, February 2 nd 2 HelenOS in the Year of the Pig

  3. Since last FOSDEM... Since last FOSDEM... May HelenOS 0.9.1 Armonia L4Re::Treat<2019> Jun / July SUSE Hack Week 19: HelenOS of the <future> August HelenOS quasi-Camp 2019 Jakub Jermář , FOSDEM 2020, February 2 nd 3 HelenOS in the Year of the Pig

  4. Master and beyond Master and beyond ● C++ <future> header (master) ● Switch to the Meson build system (master) ● IPC v2 (WiP, branch) ● HelenOS as anykernel (WiP, branch) ● Display server (WiP, branch) Jakub Jermář , FOSDEM 2020, February 2 nd 4 HelenOS in the Year of the Pig

  5. HelenOS IPC Recap HelenOS IPC Recap Phones Phones Phones ipc_call_async_fast(2, method, arg1, arg2, arg3, ...) ipc_forward_fast(callid, 5, method, arg1, arg2, ...) Answerbox Answerbox Answerbox Answerbox Answerbox Answerbox ipc_wait_for_call_timeout ipc_wait_for_call_timeout ipc_wait_for_call_timeout Task Task Task Task Task Task ipc_answer_fast(callid, retval, arg1, arg2, arg3, arg4) Jakub Jermář , FOSDEM 2020, February 2 nd 5 HelenOS in the Year of the Pig

  6. HelenOS IPC Recap HelenOS IPC Recap Call non-reusable, fixed-size, kernel allocated/managed Phone (unnecessary?) level of indirection between client and server Answerbox asynchronous, waitable (still) one-per task Where should the answer go with >1 answerboxes? How does a server wait for multiple requests? How does a client wait for multiple answers? Jakub Jermář , FOSDEM 2020, February 2 nd 6 HelenOS in the Year of the Pig

  7. IPC v2 (WiP) IPC v2 (WiP) IPC buffer preallocated, reusable, arbitrary size, waitable IPC endpoint asynchronous, waitable Caplists container for other kernel objects similar to Mach port sets / epoll waiting for multiple requests / answers Jakub Jermář , FOSDEM 2020, February 2 nd 7 HelenOS in the Year of the Pig

  8. Simple Roundtrip Simple Roundtrip b = buf_alloc(); ep = ep_create(); buf_send( b , ep); buf_receive( ep , tmp_b); buf_finish(tmp_b); buf_wait( b ); ep_destroy( ep ); buf_free( b ); Jakub Jermář , FOSDEM 2020, February 2 nd 8 HelenOS in the Year of the Pig

  9. Multiple buffers and endpoints Multiple buffers and endpoints bcl = caplist_create(); ecl = caplist_create(); b1 = buf_alloc(); ep1 = ep_create( ecl ); b2 = buf_alloc(); ep2 = ep_create( ecl ); buf_send( b1 , ep1, bcl ); buf_receive( ecl , tb); buf_send(b2, ep2, bcl ); buf_finish(tb); buf_wait( bcl ); buf_wait( bcl ); ep_destroy( ep1 ); buf_free( b1 ); ep_destroy(ep2); buf_free(b2); caplist_destroy( ecl ); caplist_destroy( bcl ); Jakub Jermář , FOSDEM 2020, February 2 nd 9 HelenOS in the Year of the Pig

  10. HelenOS as Anykernel (WiP) HelenOS as Anykernel (WiP) Jakub Jermář , FOSDEM 2020, February 2 nd 10 HelenOS in the Year of the Pig

  11. HelenOS as Anykernel HelenOS as Anykernel user space kernel space syscall direct call VFS upcall server client client server IPC IPC kernel kernel Jakub Jermář , FOSDEM 2020, February 2 nd 11 HelenOS in the Year of the Pig

  12. HelenOS as Anykernel HelenOS as Anykernel user space kernel space syscall direct call upcall client VFS IPC server kernel kernel Jakub Jermář , FOSDEM 2020, February 2 nd 12 HelenOS in the Year of the Pig

  13. Display server (WiP) Display server (WiP) ● Eventually to replace the current compositor ● More modular structure than compositor ● Compositor needs memory for all windows ● Better control of rendering and buffering policies ● HelenOS IPC is just a transport ● Different pixel formats, text mode ● And more, see ticket #816 Jakub Jermář , FOSDEM 2020, February 2 nd 13 HelenOS in the Year of the Pig

  14. Links Links ● http://www.helenos.org/wiki/ReleaseNotes/0.9.1 ● https://blog.kernkonzept.com/retreat/social/201 9/06/06/l4re_treat.html ● https://hackweek.suse.com/19/projects/helenos -of-the ● https://github.com/jxsvoboda/helenos/tree/gfx ● http://www.helenos.org/ticket/816 ● https://github.com/jermar/helenos/tree/ipc Jakub Jermář , FOSDEM 2020, February 2 nd 14 HelenOS in the Year of the Pig

  15. Q&A Q&A http://www.helenos.org https://github.com/HelenOS/helenos @HelenOSOrg @jjermar Thank you! Jakub Jermář , FOSDEM 2020, February 2 nd 15 HelenOS in the Year of the Pig

Recommend


More recommend