From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Boddie Subject: Re: Guix and sel4 Date: Mon, 15 Jan 2018 00:26:27 +0100 Message-ID: <201801150026.28057.paul@boddie.org.uk> References: Mime-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:48613) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1earfi-0006B7-UQ for help-guix@gnu.org; Sun, 14 Jan 2018 18:26:40 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1earff-0004Qg-Mz for help-guix@gnu.org; Sun, 14 Jan 2018 18:26:38 -0500 Received: from mail6.webfaction.com ([31.170.123.134]:39036 helo=smtp.webfaction.com) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1earff-0004Md-GV for help-guix@gnu.org; Sun, 14 Jan 2018 18:26:35 -0500 Received: from jeremy.localnet (host-37-191-186-243.lynet.no [37.191.186.243]) by smtp.webfaction.com (Postfix) with ESMTPSA id 4090E60647EA8 for ; Sun, 14 Jan 2018 23:26:32 +0000 (UTC) In-Reply-To: List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: help-guix@gnu.org On Sunday 14. January 2018 22.16.39 radoslaw@chmielarz.xyz wrote: > > In 2016 David Craven has sent an email about his attempt in using sel4 > (genode with sel4 to be exact) with guix > (https://lists.gnu.org/archive/html/help-guix/2016-12/msg00058.html). Do > You know if he succeeded or not? And if not where there any substantial > blockers or just lack of time? He referenced some work done to use Nix with Genode, since abandoned, but the Genode documentation provides more details about this: "The design of Genode's package-management concept is largely influenced by Git as well as the Nix package manager. In particular the latter opened our eyes to discover the potential that lies beyond the package management employed in state-of-the art commodity systems. Even though we considered adapting Nix for Genode and actually conducted intensive experiments in this direction (thanks to Emery Hemingway who pushed forward this line of work), we settled on a custom solution that leverages Genode's holistic view on all levels of the operating system including the build system and tooling, source structure, ABI design, framework API, system configuration, inter-component interaction, and the components itself. Whereby Nix is designed for being used on top of Linux, Genode's whole-systems view led us to simplifications that eliminated the needs for Nix' powerful features like its custom description language." http://genode.org/documentation/developer-resources/package_management (This is actually quite typical of Genode's online documentation, which seems to have a "white paper" feel at times (and a "manifest" feel, just summarising details, at others), so digesting it all can be time-consuming work.) Personally, I have spent some time looking at L4Re rather than Genode, mostly because I have been wanting to deploy Fiasco.OC and it would appear that these two things (L4Re and Fiasco.OC) are developed more closely together. Genode seems to bundle specific versions of Fiasco.OC, but I have been needing to get updates and make fixes in a more convenient relationship with Fiasco.OC's upstream. There was a remark about the Hurd in the previous thread. The one difference I tend to perceive between the Hurd and systems like L4Re and Genode is that the latter things tend to be demonstrated almost like embedded solutions - you build a specific payload and that is your system - whereas the Hurd behaves like the open-ended system we are familiar with from our desktop computers. That said, Genode is supposed to be usable as a desktop operating system, and will apparently introduce "a minimalistic generic live system that can be interactively shaped into a desktop scenario by the user without any reboot": https://genode.org/documentation/release-notes/17.11 Another difference, this time between Genode and L4Re, is the way the components seem to be wired up. Genode appears to use some kind of XML syntax for this: http://genode.org/documentation/developer-resources/init Whereas L4Re employs Lua for the same job. I cannot comment on Genode, but the L4Re framework seems to be something of a work in progress. A vague goal of mine is to try and bring Fiasco.OC or something similar within the realm of the Hurd again. There was once a project to port the Hurd to a L4 microkernel, but that stalled in various ways and also didn't involve the more modern L4 variants that are around today and are supported by Genode. Sorry if this was something of a digression from the topic! Paul