unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Oniro or Guix on Zephyr kernel?
@ 2023-02-23 14:42 Peter Polidoro
  2023-02-23 21:43 ` Csepp
  2023-02-25 18:15 ` Ludovic Courtès
  0 siblings, 2 replies; 20+ messages in thread
From: Peter Polidoro @ 2023-02-23 14:42 UTC (permalink / raw)
  To: guix-devel

I just stumbled across Oniro[1], the Eclipse Foundation's new 
operating system.

It seems that its main goal is to be able to run a common 
operating system on multiple embedded kernels, either the Linux 
kernel for larger devices or the Zephyr kernel for smaller ones.

Since Guix System can run on both the Linux kernel and the Hurd 
kernel, could it, in theory, also run on the Zephyr kernel?

Could Guix System be an alternative to the Oniro project or is 
there something about Guix System which would make it unsuitable 
for embedded devices on an RTOS kernel?

Footnotes:
[1] 
https://blogs.eclipse.org/post/mike-milinkovich/introducing-oniro-vendor-neutral-open-source-os-next-gen-devices


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-23 14:42 Oniro or Guix on Zephyr kernel? Peter Polidoro
@ 2023-02-23 21:43 ` Csepp
  2023-02-24 12:43   ` Joshua Branson
  2023-02-25 18:15 ` Ludovic Courtès
  1 sibling, 1 reply; 20+ messages in thread
From: Csepp @ 2023-02-23 21:43 UTC (permalink / raw)
  To: Peter Polidoro; +Cc: guix-devel


Peter Polidoro <peter@polidoro.io> writes:

> I just stumbled across Oniro[1], the Eclipse Foundation's new
> operating system.
>
> It seems that its main goal is to be able to run a common operating
> system on multiple embedded kernels, either the Linux kernel for
> larger devices or the Zephyr kernel for smaller ones.
>
> Since Guix System can run on both the Linux kernel and the Hurd
> kernel, could it, in theory, also run on the Zephyr kernel?
>
> Could Guix System be an alternative to the Oniro project or is there
> something about Guix System which would make it unsuitable for
> embedded devices on an RTOS kernel?
>
> Footnotes:
> [1]
> https://blogs.eclipse.org/post/mike-milinkovich/introducing-oniro-vendor-neutral-open-source-os-next-gen-devices

This doesn't quite answer your question but it's worth noting:
You can use Guix as a build system to compile to any kernel with a Linux
based cross compile toolchain.

I'm currently working on using it to compile MirageOS unikernels.

Reading about the kinds of devices Oniro and OpenHarmony supports, it
seems unlikely that you could run the Guix build system on the lower end
of the spectrum.  Guix already barely copes with lower end ARM and older
i386 devices.  It needs at least 1GB of RAM and plenty of storage,
preferably flash based.

If your device meets those requirements then there is not much reason to
run an embedded OS and if it doesn't then your only chance is cross
compiling to it.

There is actually quite a bit to be gained from using Guix to cross
compile to embedded devices or unikernels, but a lot more work is needed
IMHO.  Help with cross-toolchains is I think always welcome. UwU


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-23 21:43 ` Csepp
@ 2023-02-24 12:43   ` Joshua Branson
  2023-02-24 15:19     ` Peter Polidoro
  2023-02-24 16:52     ` jbranso
  0 siblings, 2 replies; 20+ messages in thread
From: Joshua Branson @ 2023-02-24 12:43 UTC (permalink / raw)
  To: Csepp; +Cc: Peter Polidoro, guix-devel

Csepp <raingloom@riseup.net> writes:

> Peter Polidoro <peter@polidoro.io> writes:
>
>> I just stumbled across Oniro[1], the Eclipse Foundation's new
>> operating system.
>>
>> It seems that its main goal is to be able to run a common operating
>> system on multiple embedded kernels, either the Linux kernel for
>> larger devices or the Zephyr kernel for smaller ones.
>>
>> Since Guix System can run on both the Linux kernel and the Hurd
>> kernel, could it, in theory, also run on the Zephyr kernel?
>>
>> Could Guix System be an alternative to the Oniro project or is there
>> something about Guix System which would make it unsuitable for
>> embedded devices on an RTOS kernel?
>>
>> Footnotes:
>> [1]
>> https://blogs.eclipse.org/post/mike-milinkovich/introducing-oniro-vendor-neutral-open-source-os-next-gen-devices

Actually, my new friend Mitchell just created a blog post about using
GNU Guix for Zephyr kernels:

https://gnucode.me/building-toolchains-with-guix.html

So GNU Guix can definitely help with this endeavor.  :)

Joshua


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-24 12:43   ` Joshua Branson
@ 2023-02-24 15:19     ` Peter Polidoro
  2023-02-24 16:52     ` jbranso
  1 sibling, 0 replies; 20+ messages in thread
From: Peter Polidoro @ 2023-02-24 15:19 UTC (permalink / raw)
  To: Joshua Branson; +Cc: Csepp, guix-devel


> Actually, my new friend Mitchell just created a blog post about 
> using
> GNU Guix for Zephyr kernels:
>
> https://gnucode.me/building-toolchains-with-guix.html

Great blog post, thank you! It makes me a little hesitant about 
Zephyr if they have just given up on other people building their 
SDK, but I am very glad all of you smart people are working on a 
Guix alternative.

I am still curious if other parts of Guix System could be useful 
in embedded environments if all of the packages are 
cross-compiled.

I am not sure of the detailed plans for Oniro, but I assume that 
it will provide some sort of abstraction layer and user space on 
top of either the Linux kernel or the embedded Zephyr kernel. 
Would it be possible to make some subset of Guix System into 
something equivalent or is an entirely new operating system really 
necessary for that purpose? Are most of the resource requirements 
for Guix System, 1 Gig of ram, etc, due to the package builder and 
Guix/Nix daemon? If it was possible to declare an instance of Guix 
System that did not include those and only used cross-compiled 
packages, could some portion of Guix System function in a similar 
way as Oniro, or is that a nonsense question?


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-24 12:43   ` Joshua Branson
  2023-02-24 15:19     ` Peter Polidoro
@ 2023-02-24 16:52     ` jbranso
  2023-02-24 18:36       ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  1 sibling, 1 reply; 20+ messages in thread
From: jbranso @ 2023-02-24 16:52 UTC (permalink / raw)
  To: Peter Polidoro; +Cc: Csepp, guix-devel, Mitchell Schmeisser

February 24, 2023 10:41 AM, "Peter Polidoro" <peter@polidoro.io> wrote:

>> Actually, my new friend Mitchell just created a blog post about > using
>> GNU Guix for Zephyr kernels:
>> 
>> https://gnucode.me/building-toolchains-with-guix.html
> 
> Great blog post, thank you! It makes me a little hesitant about Zephyr if they have just given up
> on other people building their SDK, but I am very glad all of you smart people are working on a
> Guix alternative.
> 
> I am still curious if other parts of Guix System could be useful in embedded environments if all of
> the packages are cross-compiled.
> 
> I am not sure of the detailed plans for Oniro, but I assume that it will provide some sort of
> abstraction layer and user space on top of either the Linux kernel or the embedded Zephyr kernel.
> Would it be possible to make some subset of Guix System into something equivalent or is an entirely
> new operating system really necessary for that purpose? Are most of the resource requirements for
> Guix System, 1 Gig of ram, etc, due to the package builder and Guix/Nix daemon? If it was possible
> to declare an instance of Guix System that did not include those and only used cross-compiled
> packages, could some portion of Guix System function in a similar way as Oniro, or is that a
> nonsense question?

I'm probably not the best person to ask about that.  I am adding in Mitchell to the discussion.

Mitchell, what do you think?  Could we use a subset of guix system in embedded environments?

Thanks,

Joshua


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-24 16:52     ` jbranso
@ 2023-02-24 18:36       ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  2023-02-24 19:35         ` Tobias Geerinckx-Rice
                           ` (3 more replies)
  0 siblings, 4 replies; 20+ messages in thread
From: Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution. @ 2023-02-24 18:36 UTC (permalink / raw)
  To: jbranso, Peter Polidoro; +Cc: Csepp, guix-devel

jbranso@dismail.de writes:

> February 24, 2023 10:41 AM, "Peter Polidoro" <peter@polidoro.io> wrote:
>
>>> Actually, my new friend Mitchell just created a blog post about > using
>>> GNU Guix for Zephyr kernels:
>>> 
>>> https://gnucode.me/building-toolchains-with-guix.html
>> 
>> Great blog post, thank you! It makes me a little hesitant about Zephyr if they have just given up
>> on other people building their SDK, but I am very glad all of you smart people are working on a
>> Guix alternative.
>> 
>> I am still curious if other parts of Guix System could be useful in embedded environments if all of
>> the packages are cross-compiled.
>> 
>> I am not sure of the detailed plans for Oniro, but I assume that it will provide some sort of
>> abstraction layer and user space on top of either the Linux kernel or the embedded Zephyr kernel.
>> Would it be possible to make some subset of Guix System into something equivalent or is an entirely
>> new operating system really necessary for that purpose? Are most of the resource requirements for
>> Guix System, 1 Gig of ram, etc, due to the package builder and Guix/Nix daemon? If it was possible
>> to declare an instance of Guix System that did not include those and only used cross-compiled
>> packages, could some portion of Guix System function in a similar way as Oniro, or is that a
>> nonsense question?
>
> I'm probably not the best person to ask about that.  I am adding in Mitchell to the discussion.
>
> Mitchell, what do you think?  Could we use a subset of guix system in embedded environments?
>
> Thanks,
>
> Joshua

>> It makes me a little hesitant about Zephyr if they have just
>> given up on other people building their SDK

In the embedded world this is not that uncommon. Building cross toolchains is
very difficult and many Zephyr users are developing on Windows where you
don't ever build anything yourself. 

A lot of embedded developers still pay top dollar for proprietary
toolchains.

>> I am not sure of the detailed plans for Oniro

I do not know what this is.


>> I am still curious if other parts of Guix System could be useful in embedded environments if all of
>> the packages are cross-compiled.

The short answer is Guix can run on embedded linux environments given
sufficient resources, but Guix will never run on the Zephyr kernel*.

Zephyr is targeted at extremely resource constrained devices (think
arduino or a TV remote). Many of these devices don't have an MMU and do not have such a
firm separation between kernel and user space.
It is an entirely different world from the one currently modeled by Guix.

My main reason for doing this was because Guix has already replaced
every other package manager on the system.
It felt wrong to use west's dependency management and the SDK installer
is a binary distribution. Guix already has packages for
`arm-none-eabi-toolchain` so mostly this is just copy and pasted and
adjusted to match the cmake expectations of the world.

I also thought relying on West to build production software was not the
best because it was too easy for me to accidentally modify the
environment. The only I could be sure about what I was deploying was to
do as Guix does (but worse) and clone the stuff down fresh from the
internet (all 3GB+ of it...) and "bootstrap" the environment.

Reproducibility issues pop up from time to time in the zephyr project and I
thought this work could give some sense of formality to their build
system.

>> Guix System, 1 Gig of ram, etc, due to the package builder and Guix/Nix daemon? If it was possible
>> to declare an instance of Guix System that did not include those and only used cross-compiled
>> packages, could some portion of Guix System function in a similar way as Oniro, or is that a
>> nonsense question?

What I understand your question to be is "Can we use Guix to describe an
embedded operating system which does not run Guix?" and I think the
answer is probably. I don't think the guix daemon is technically required
for the shepherd to boot (being the daemon is a shepherd process
itself).

I don't think it's a good idea because you need the daemon in order to
use `guix deploy`. Otherwise you have to make an installation image and
it can become "involved."


* Actually the zephyr kernel can drive large systems as well but if you
  want to run Guix on it you are better off using linux.
  Look at this video for some inspiration on how Guix can be used to
  manage these systems.
  https://archive.fosdem.org/2020/schedule/event/ggaaattyp/


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-24 18:36       ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
@ 2023-02-24 19:35         ` Tobias Geerinckx-Rice
  2023-02-24 19:43         ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
                           ` (2 subsequent siblings)
  3 siblings, 0 replies; 20+ messages in thread
From: Tobias Geerinckx-Rice @ 2023-02-24 19:35 UTC (permalink / raw)
  To: Mitchell Schmeisser; +Cc: jbranso, Peter Polidoro, Csepp, guix-devel

Hi,

On 2023-02-24 19:36, Mitchell Schmeisser wrote:
>                     I don't think the guix daemon is technically 
> required
> for the shepherd to boot (being the daemon is a shepherd process
> itself).

No, not at all.  I think this is a common (and not unreasonable!) 
assumption we Guixers forget exists.

The ‘Guix daemon’ is not required to run Guix software or Guix System, 
only for store operations (building, GC'ing, …).

The name ‘guix-build-daemon’ would have been closer to the truth.

Kind regards,

T G-R

Sent from a Web browser.  Excuse or enjoy my brevity.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-24 18:36       ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  2023-02-24 19:35         ` Tobias Geerinckx-Rice
@ 2023-02-24 19:43         ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
  2023-02-25 13:45           ` Peter Polidoro
  2023-02-25 17:06         ` jbranso
  2023-02-27 19:10         ` Efraim Flashner
  3 siblings, 1 reply; 20+ messages in thread
From: Felix Lechner via Development of GNU Guix and the GNU System distribution. @ 2023-02-24 19:43 UTC (permalink / raw)
  To: Mitchell Schmeisser; +Cc: jbranso, Peter Polidoro, Csepp, guix-devel

Hi Mitchell,

On Fri, Feb 24, 2023 at 10:36 AM Mitchell Schmeisser via Development
of GNU Guix and the GNU System distribution. <guix-devel@gnu.org>
wrote:
>
> My main reason for doing this was because Guix has already replaced
> every other package manager on the system.

Kudos to this. You should get a prize!

Kind regards
Felix Lechner


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-24 19:43         ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
@ 2023-02-25 13:45           ` Peter Polidoro
  2023-02-25 14:15             ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  0 siblings, 1 reply; 20+ messages in thread
From: Peter Polidoro @ 2023-02-25 13:45 UTC (permalink / raw)
  To: Mitchell Schmeisser; +Cc: guix-devel

Thank you for all of your great work on packaging the Zephyr SDK for Guix! I had the same feelings about West and its approach to handling dependencies.

PlatformIO has a similar issue where parts of it are very useful, but it would be great to be able use Guix to manage firmware libraries instead of the platformio.ini files.

Are you also planning on making the firmware that you write to run on top of Zephyr into Guix packages as well? That could make it way easier to synchronize code on both a host machine and an embedded board that need to communicate with each other. 

I would love to read another blog post about using Guix to manage an entire embedded project including firmware if you are ever up for it!




^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-25 13:45           ` Peter Polidoro
@ 2023-02-25 14:15             ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  2023-02-25 14:16               ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  2023-02-25 15:19               ` Peter Polidoro
  0 siblings, 2 replies; 20+ messages in thread
From: Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution. @ 2023-02-25 14:15 UTC (permalink / raw)
  To: Peter Polidoro; +Cc: guix-devel

> Are you also planning on making the firmware that you write to run on top of Zephyr into Guix packages as well? That could make it way easier to synchronize code on both a host machine and an embedded board that need to communicate with each other. 
> 
> I would love to read another blog post about using Guix to manage an entire embedded project including firmware if you are ever up for it!


It’s already written! It will be published shortly but if you want to look at my work https://github.com/guix-zephyr

-Mitchell

> On Feb 25, 2023, at 8:45 AM, Peter Polidoro <peter@polidoro.io> wrote:
> 
> Thank you for all of your great work on packaging the Zephyr SDK for Guix! I had the same feelings about West and its approach to handling dependencies.
> 
> PlatformIO has a similar issue where parts of it are very useful, but it would be great to be able use Guix to manage firmware libraries instead of the platformio.ini files.
> 
> Are you also planning on making the firmware that you write to run on top of Zephyr into Guix packages as well? That could make it way easier to synchronize code on both a host machine and an embedded board that need to communicate with each other. 
> 
> I would love to read another blog post about using Guix to manage an entire embedded project including firmware if you are ever up for it!
> 
> 


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-25 14:15             ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
@ 2023-02-25 14:16               ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  2023-02-25 15:19               ` Peter Polidoro
  1 sibling, 0 replies; 20+ messages in thread
From: Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution. @ 2023-02-25 14:16 UTC (permalink / raw)
  To: Peter Polidoro; +Cc: guix-devel

https://github.com/paperclip4465/guix-zephyr

> On Feb 25, 2023, at 9:15 AM, Mitchell Schmeisser <mitchellschmeisser@librem.one> wrote:
> 
> 
>> 
>> Are you also planning on making the firmware that you write to run on top of Zephyr into Guix packages as well? That could make it way easier to synchronize code on both a host machine and an embedded board that need to communicate with each other. 
>> 
>> I would love to read another blog post about using Guix to manage an entire embedded project including firmware if you are ever up for it!
> 
> 
> It’s already written! It will be published shortly but if you want to look at my work https://github.com/guix-zephyr
> 
> -Mitchell
> 
>> On Feb 25, 2023, at 8:45 AM, Peter Polidoro <peter@polidoro.io> wrote:
>> 
>> Thank you for all of your great work on packaging the Zephyr SDK for Guix! I had the same feelings about West and its approach to handling dependencies.
>> 
>> PlatformIO has a similar issue where parts of it are very useful, but it would be great to be able use Guix to manage firmware libraries instead of the platformio.ini files.
>> 
>> Are you also planning on making the firmware that you write to run on top of Zephyr into Guix packages as well? That could make it way easier to synchronize code on both a host machine and an embedded board that need to communicate with each other. 
>> 
>> I would love to read another blog post about using Guix to manage an entire embedded project including firmware if you are ever up for it!
>> 
>> 


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-25 14:15             ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  2023-02-25 14:16               ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
@ 2023-02-25 15:19               ` Peter Polidoro
  2023-02-25 15:27                 ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  2023-03-01 21:55                 ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  1 sibling, 2 replies; 20+ messages in thread
From: Peter Polidoro @ 2023-02-25 15:19 UTC (permalink / raw)
  To: Mitchell Schmeisser; +Cc: guix-devel

> https://github.com/guix-zephyr

I actually reserved this organization name on GitHub a while back hoping to someday do what you already did. I am happy to add you to it or transfer it over to you entirely if you want.

I am looking forward to reading the details of what you did, thanks!

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-25 15:19               ` Peter Polidoro
@ 2023-02-25 15:27                 ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  2023-03-01 21:55                 ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  1 sibling, 0 replies; 20+ messages in thread
From: Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution. @ 2023-02-25 15:27 UTC (permalink / raw)
  To: Peter Polidoro; +Cc: guix-devel

Hopefully this work can be incorporated into Guix. Initially I did not 
have much hope as even Linux does not make the cut and the embedded 
world is way more friendly to proprietary software/blob sharing. However 
I don't think there are any blobs in the zephyr code base and while 
zephyr itself provides mechanisms for blob sharing, we do not need to 
use these.

If not then I think moving to that domain, or perhaps gitlab given the 
github controversies, would be a great idea.


On 2/25/23 10:19, Peter Polidoro wrote:
>> https://github.com/guix-zephyr
> I actually reserved this organization name on GitHub a while back hoping to someday do what you already did. I am happy to add you to it or transfer it over to you entirely if you want.
>
> I am looking forward to reading the details of what you did, thanks!


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-24 18:36       ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  2023-02-24 19:35         ` Tobias Geerinckx-Rice
  2023-02-24 19:43         ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
@ 2023-02-25 17:06         ` jbranso
  2023-02-27 19:10         ` Efraim Flashner
  3 siblings, 0 replies; 20+ messages in thread
From: jbranso @ 2023-02-25 17:06 UTC (permalink / raw)
  To: Tobias Geerinckx-Rice, Mitchell Schmeisser
  Cc: Peter Polidoro, Csepp, guix-devel

February 24, 2023 2:35 PM, "Tobias Geerinckx-Rice" <me@tobias.gr> wrote:

> Hi,
> 
> On 2023-02-24 19:36, Mitchell Schmeisser wrote:
> 
>> I don't think the guix daemon is technically > required
>> for the shepherd to boot (being the daemon is a shepherd process
>> itself).
> 
> No, not at all. I think this is a common (and not unreasonable!) assumption we Guixers forget
> exists.
> 
> The ‘Guix daemon’ is not required to run Guix software or Guix System, only for store operations
> (building, GC'ing, …).
> 
> The name ‘guix-build-daemon’ would have been closer to the truth.

Thanks for clarifying.  So, guix system requires a shepherd daemon to be running correct?

That shepherd daemon starts at boot and runs as PID 1 and starts all system services.

Does the guix-build-daemon start lazily or only when needed?  So if I booted up my guix system laptop, and only browsed
the internet, never typed in any "guix " command, would the guix-build-daemon ever run?


> 
> Kind regards,
> 
> T G-R
> 
> Sent from a Web browser. Excuse or enjoy my brevity.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-23 14:42 Oniro or Guix on Zephyr kernel? Peter Polidoro
  2023-02-23 21:43 ` Csepp
@ 2023-02-25 18:15 ` Ludovic Courtès
  1 sibling, 0 replies; 20+ messages in thread
From: Ludovic Courtès @ 2023-02-25 18:15 UTC (permalink / raw)
  To: Peter Polidoro; +Cc: guix-devel

Hi,

Peter Polidoro <peter@polidoro.io> skribis:

> Since Guix System can run on both the Linux kernel and the Hurd
> kernel, could it, in theory, also run on the Zephyr kernel?

Only if/when glibc is ported to that kernel.  :-)

As a project, I think it’s important for Guix to focus on the GNU libc.
Attempting to support multiple C libraries, like Nixpkgs does, is really
tricky: platforms with less popular C libraries unavoidably have tons of
package build failures.

Ludo’.


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-24 18:36       ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
                           ` (2 preceding siblings ...)
  2023-02-25 17:06         ` jbranso
@ 2023-02-27 19:10         ` Efraim Flashner
  2023-03-01  8:45           ` Ryan Sundberg
  3 siblings, 1 reply; 20+ messages in thread
From: Efraim Flashner @ 2023-02-27 19:10 UTC (permalink / raw)
  To: Mitchell Schmeisser; +Cc: jbranso, Peter Polidoro, Csepp, guix-devel

[-- Attachment #1: Type: text/plain, Size: 1523 bytes --]

On Fri, Feb 24, 2023 at 01:36:06PM -0500, Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution. wrote:
> jbranso@dismail.de writes:
> 
> >> Guix System, 1 Gig of ram, etc, due to the package builder and Guix/Nix daemon? If it was possible
> >> to declare an instance of Guix System that did not include those and only used cross-compiled
> >> packages, could some portion of Guix System function in a similar way as Oniro, or is that a
> >> nonsense question?
> 
> What I understand your question to be is "Can we use Guix to describe an
> embedded operating system which does not run Guix?" and I think the
> answer is probably. I don't think the guix daemon is technically required
> for the shepherd to boot (being the daemon is a shepherd process
> itself).

I can answer this. I built a one-off Guix image of gparted and it
doesn't have the guix-daemon service included.

> I don't think it's a good idea because you need the daemon in order to
> use `guix deploy`. Otherwise you have to make an installation image and
> it can become "involved."

If you were willing to forgo `guix deploy` (and guix install, and really
any package management) and just reflash it every time then the memory
constraints go down to whatever the running programs require.

-- 
Efraim Flashner   <efraim@flashner.co.il>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-27 19:10         ` Efraim Flashner
@ 2023-03-01  8:45           ` Ryan Sundberg
  2023-03-04 17:26             ` Joshua Branson
  0 siblings, 1 reply; 20+ messages in thread
From: Ryan Sundberg @ 2023-03-01  8:45 UTC (permalink / raw)
  To: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 1909 bytes --]

I have also used Guix to build a NetBSD image. You can use Guix to build
just about any operating system image imaginable with the right amount
of practice and patience :) A lot of patience in some cases as you are
sure to hit some uncharted territory building whatever it happens to be.

Getting the userspace to run is a bigger task, but you can certainly use
Guix to build for example an embedded OS image with it's default
userspace (not porting the Guix daemon or Shepherd).

--
Sincerely,
Ryan Sundberg

On 2/27/23 11:10 AM, Efraim Flashner wrote:
> On Fri, Feb 24, 2023 at 01:36:06PM -0500, Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution. wrote:
>> jbranso@dismail.de writes:
>>
>>>> Guix System, 1 Gig of ram, etc, due to the package builder and Guix/Nix daemon? If it was possible
>>>> to declare an instance of Guix System that did not include those and only used cross-compiled
>>>> packages, could some portion of Guix System function in a similar way as Oniro, or is that a
>>>> nonsense question?
>>
>> What I understand your question to be is "Can we use Guix to describe an
>> embedded operating system which does not run Guix?" and I think the
>> answer is probably. I don't think the guix daemon is technically required
>> for the shepherd to boot (being the daemon is a shepherd process
>> itself).
> 
> I can answer this. I built a one-off Guix image of gparted and it
> doesn't have the guix-daemon service included.
> 
>> I don't think it's a good idea because you need the daemon in order to
>> use `guix deploy`. Otherwise you have to make an installation image and
>> it can become "involved."
> 
> If you were willing to forgo `guix deploy` (and guix install, and really
> any package management) and just reflash it every time then the memory
> constraints go down to whatever the running programs require.
> 

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-02-25 15:19               ` Peter Polidoro
  2023-02-25 15:27                 ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
@ 2023-03-01 21:55                 ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
  1 sibling, 0 replies; 20+ messages in thread
From: Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution. @ 2023-03-01 21:55 UTC (permalink / raw)
  To: Peter Polidoro; +Cc: guix-devel

https://github.com/paperclip4465/guix-embedded-example

Here is an example project which involves a vm and an embedded device.

On 2/25/23 10:19, Peter Polidoro wrote:
>> https://github.com/guix-zephyr
> I actually reserved this organization name on GitHub a while back hoping to someday do what you already did. I am happy to add you to it or transfer it over to you entirely if you want.
>
> I am looking forward to reading the details of what you did, thanks!


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-03-01  8:45           ` Ryan Sundberg
@ 2023-03-04 17:26             ` Joshua Branson
  2023-03-05  0:42               ` Ryan Sundberg
  0 siblings, 1 reply; 20+ messages in thread
From: Joshua Branson @ 2023-03-04 17:26 UTC (permalink / raw)
  To: Ryan Sundberg; +Cc: guix-devel

Ryan Sundberg <ryan@arctype.co> writes:

> I have also used Guix to build a NetBSD image. You can use Guix to build
> just about any operating system image imaginable with the right amount
> of practice and patience :) A lot of patience in some cases as you are
> sure to hit some uncharted territory building whatever it happens to be.
>
> Getting the userspace to run is a bigger task, but you can certainly use
> Guix to build for example an embedded OS image with it's default
> userspace (not porting the Guix daemon or Shepherd).

Can you post the code or routine that you did for this?  I would love
for guix to run on the OpenBSD kernel, but if guix requires glibc for
most of the features...and porting glibc to OpenBSD might be a far off
goal...


^ permalink raw reply	[flat|nested] 20+ messages in thread

* Re: Oniro or Guix on Zephyr kernel?
  2023-03-04 17:26             ` Joshua Branson
@ 2023-03-05  0:42               ` Ryan Sundberg
  0 siblings, 0 replies; 20+ messages in thread
From: Ryan Sundberg @ 2023-03-05  0:42 UTC (permalink / raw)
  To: Joshua Branson; +Cc: guix-devel


[-- Attachment #1.1: Type: text/plain, Size: 1664 bytes --]

Hi Joshua, you can find my code to build NetBSD images published here:

https://lab.arctype.co/neobsd/netbsd-guix/

It very much just "research", so no guarantees about it being useful for
anything. But it certainly does boot NetBSD images with the standard
userspace. Work on porting Shepherd was started, but that's where I stopped.

You will also at need to use my branches of:

Netbsd: https://lab.arctype.co/neobsd/netbsd (especially the first
commit, Guix build support, which patches the build script)

Guix https://lab.arctype.co/arctype/guix (Not all my patches have been
accepted or yet been submitted upstream)

If you have any specific questions, please contact me directly
(off-list). There is also other interesting code you are free to explore
in my gitlab :)

--
Sincerely,
Ryan Sundberg

On 3/4/23 9:26 AM, Joshua Branson wrote:
> Ryan Sundberg <ryan@arctype.co> writes:
> 
>> I have also used Guix to build a NetBSD image. You can use Guix to build
>> just about any operating system image imaginable with the right amount
>> of practice and patience :) A lot of patience in some cases as you are
>> sure to hit some uncharted territory building whatever it happens to be.
>>
>> Getting the userspace to run is a bigger task, but you can certainly use
>> Guix to build for example an embedded OS image with it's default
>> userspace (not porting the Guix daemon or Shepherd).
> 
> Can you post the code or routine that you did for this?  I would love
> for guix to run on the OpenBSD kernel, but if guix requires glibc for
> most of the features...and porting glibc to OpenBSD might be a far off
> goal...

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2023-03-05  0:43 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-23 14:42 Oniro or Guix on Zephyr kernel? Peter Polidoro
2023-02-23 21:43 ` Csepp
2023-02-24 12:43   ` Joshua Branson
2023-02-24 15:19     ` Peter Polidoro
2023-02-24 16:52     ` jbranso
2023-02-24 18:36       ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
2023-02-24 19:35         ` Tobias Geerinckx-Rice
2023-02-24 19:43         ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2023-02-25 13:45           ` Peter Polidoro
2023-02-25 14:15             ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
2023-02-25 14:16               ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
2023-02-25 15:19               ` Peter Polidoro
2023-02-25 15:27                 ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
2023-03-01 21:55                 ` Mitchell Schmeisser via Development of GNU Guix and the GNU System distribution.
2023-02-25 17:06         ` jbranso
2023-02-27 19:10         ` Efraim Flashner
2023-03-01  8:45           ` Ryan Sundberg
2023-03-04 17:26             ` Joshua Branson
2023-03-05  0:42               ` Ryan Sundberg
2023-02-25 18:15 ` Ludovic Courtès

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).