From mboxrd@z Thu Jan 1 00:00:00 1970 From: Justus Winter <4winter@informatik.uni-hamburg.de> Subject: Re: [GSoC] Porting GuixSD to GNU Hurd draft Date: Thu, 24 Mar 2016 12:38:32 +0100 Message-ID: <20160324113832.4503.39639@thinkbox.jade-hamburg.de> References: <20160206113802.GA17867@thebird.nl> <56BC7496.8020409@gmail.com> <8760x5gpif.fsf@inria.fr> <20160302101227.GF2815@var.bordeaux.inria.fr> <87a8mgefcy.fsf@gnu.org> <20160302220654.GC3037@var.home> <56EFE480.6020007@gmail.com> <878u19wbvt.fsf@gnu.org> <20160323165550.2708.70954@thinkbox.jade-hamburg.de> <56F3CD01.9040602@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:35053) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aj3bX-0001SQ-6v for guix-devel@gnu.org; Thu, 24 Mar 2016 07:39:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aj3bW-0004yi-4S for guix-devel@gnu.org; Thu, 24 Mar 2016 07:39:07 -0400 In-Reply-To: <56F3CD01.9040602@gmail.com> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Manolis Ragkousis , =?utf-8?q?Ludovic_Court=C3=A8s?= Cc: guix-devel@gnu.org, bug-hurd@gnu.org, Samuel Thibault Quoting Manolis Ragkousis (2016-03-24 12:18:25) > >>> The project consists of four main stages > >>> > >>> 1. Modify Guix so it will be able to create and mount the file-system= needed to boot into a system with Hurd at its core. = > >>> 2. Modify Guix so it can produce a working image, while isolating any= cases of Linux assumptions. > >>> 3. Successfully boot into one such system using GNU Shepherd with pid= 1. > >>> 4. Modify the new Guix system to take advantage of Hurd specific mech= anisms. > > = > > For me, 4. is the most important bit, so we can build packages in > > isolation. > = > I think our priority should be to first get GuixSD working and then > concentrate to achieving isolation. From what I understand none of the > two is trivial but in the long run the ability to spawn GNU/Hurd system > vms on the fly will make it easier to work on it. Otoh if we could properly build packages, we could provide the substitutes, so people could try Guix on the Hurd without going through the 12h+ bootstrap procedure. > Currently I am working on familiarizing myself with both how Hurd and > GuixSD booting works. I am already using GuixSD as a system and I am > going though the source code so I can better understand what is going on. Here is an overview of the early server bootstrap in the Hurd. It is slightly outdated, but still the best description that I know of: http://teythoon.cryptobitch.de/posts/bootstrapping-the-hurd/ > >> For debugging purposes, it would be very helpful to say the least to > >> have a working =E2=80=98guix system vm=E2=80=99: it would allow you to= test your changes > >> very quickly, without rebooting and so on. > >> > >> This in itself requires some thought: currently (guix system vm) relies > >> on QEMU=E2=80=99s =E2=80=98-kernel=E2=80=99 option to boot the kernel = Linux. For GNU/Hurd, we > >> instead need to boot a complete image with GRUB, like =E2=80=98guix sy= stem > >> vm-image=E2=80=99 does. You=E2=80=99ll have to investigate how to por= t this. > > = > > qemu can boot multiboot operating systems. > = > Justus is correct here. I found this > https://www.gnu.org/software/hurd/hurd/running/qemu.html#index9h1 which > explains how to make qemu start with gnumach. This way guix system vm > can work, just with the proper modifications. Hmmm, so one still needs a filesystem, right? That's going to be a bit tricky too, since whatever tool you use for that purpose, it surely does not support creating hurdish passive translator records. Without passive translator records things get indeed more interesting. I have a patch for some tool for creating ext2 filesystems that could help, or we create all the passive translator records on first boot similar to how Samuels Debian/Hurd live cds deal with that. Or I finish my bootshell work that can boot from filesystems without passive translator records. Justus