avsm changed the topic of #mirage to: Good news everyone! Mirage 3.0 released!
<apache3_>
cbarrett: there have been in the past, at least. I've seen code for both raspberry pi and beaglebone, but I do not recall if the pi stuff was completed to the point where it was usable for mere mortals
apache3_ is now known as apache3
tomboy64 has joined #mirage
copy` has quit [Quit: Connection closed for inactivity]
<reynir>
I think there's also another board where you can run xen
argent_smith has quit [Quit: Leaving.]
kensan has joined #mirage
tomboy64 has joined #mirage
tomboy64 has quit [Remote host closed the connection]
<dmj`>
hannes: hey
<hannes>
dmj`: sup?
<dmj`>
does mirage link with glibc statically
<hannes>
haven't we gone through that already? there is _no_ libc involved
insitu has joined #mirage
<dmj`>
hannes: Yea, I just don’t see how most ocaml packages that use the FFI can be built then
<hannes>
dmj`: well, most can't... we have gmp, zarith, and some C code in nocrypto - which all does not depend on a full libc, but basically only on memcmp and memmv. you won't be able to use all ocaml libraries which require external C libraries
<hannes>
(I personally think this is an advantage: if you want to use C code, this is rather hard)
<dmj`>
ah, yea I see. Any referenced C code would have to be statically compiled and linked, and it’s probably not as safe as ocaml anyways. So it’s a burden on the build system, makes the unikernel larger, and isn’t as safe
<dmj`>
So if you use an ocaml library that has C, does it just fail at link time
<hannes>
dmj`: yes, and compiled with no-red-zone, etc. since run in kernel space; and all its dependencies need to be compiled statically as well
<hannes>
dmj`: and yes, there are failures about missing symbols at link time, and if you mess sth up, maybe runtime errors as well
<dmj`>
Was the decision to not support a full glibc a size concern, or was it related to static glibc’s still require some dynamic libs (dlopen())
<hannes>
size and security -- additionally glibc has the wrong license -- but other libc are huge, and contain lots of unsafe C code
<hannes>
in Mirage1 days, there used to be a dietlibc included
<dmj`>
hannes: was there any consideration for musl
<hannes>
dmj`: there was, either on the mailing list or on the bug tracker... but after discovery that we don't need a libc, we just removed it
insitu has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
haesbaer1 has quit [Quit: leaving]
haesbaert has joined #mirage
insitu has joined #mirage
insitu has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
insitu has joined #mirage
insitu has quit [Client Quit]
copumpkin has quit [Remote host closed the connection]
argent_smith has joined #mirage
argent_smith has quit [Quit: Leaving.]
agarwal1975 has joined #mirage
insitu has joined #mirage
agarwal1975_ has joined #mirage
agarwal1975 has quit [Ping timeout: 264 seconds]
agarwal1975_ is now known as agarwal1975
agarwal1975_ has joined #mirage
agarwal1975 has quit [Ping timeout: 260 seconds]
agarwal1975_ is now known as agarwal1975
agarwal1975_ has joined #mirage
insitu has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
agarwal1975 has quit [Ping timeout: 240 seconds]
agarwal1975 has joined #mirage
insitu has joined #mirage
agarwal1975_ has quit [Ping timeout: 240 seconds]
agarwal1975_ has joined #mirage
agarwal1975 has quit [Ping timeout: 240 seconds]
agarwal1975_ is now known as agarwal1975
insitu has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
insitu has joined #mirage
insitu has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
argent_smith has joined #mirage
balduin has joined #mirage
balduin has left #mirage [#mirage]
agarwal1975 has quit [Quit: agarwal1975]
insitu has joined #mirage
insitu has quit [Client Quit]
insitu has joined #mirage
insitu has quit [Client Quit]
copy` has joined #mirage
insitu has joined #mirage
insitu has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
contrapumpkin has quit [Ping timeout: 260 seconds]
argent_smith has quit [Quit: Leaving.]
insitu has joined #mirage
insitu has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
<cbarrett>
apache3: it was a joke, in greek mythology some demigods have zeus as their ancestor
<cbarrett>
thank u for the link
<cbarrett>
is there a way to have mirage make bootable images, ones that don't run under virtualization?
<dmj`>
cbarrett: it would probably have to target the linux kernel
<cbarrett>
i'm not sure i follow, sorry
<cbarrett>
does mirage not support running on bare metal? i thought it did
<dmj`>
cbarrett: that’s more contingent on your processor, and if it supports hardware virtualization, allowing you to run instructions directly on the cpu, as opposed to going through a layer of virtualiztion
<dmj`>
er, a layer of translation*
<dstolfa>
dmj`: What do you mean that it would have to target the Linux kernel?
<dstolfa>
If the unikernel was to run directly on hardware, it would run in ring0 either as a module(which is kind of pointless and renders it a kernel module, not a unikernel), or exclusively, which has absolutely nothing to do with Linux
<cbarrett>
my target is ARMv6 so no HW virtualization
<cbarrett>
i would like to avoid using linux if at all possible
<dstolfa>
cbarrett: It certainly sounds possible, and as far as I'm aware, MirageOS offers a large number of libraries that you could leverage for it. It might be best to wait for hannes to respond regarding this.
<dstolfa>
cbarrett: And no, you don't have to use Linux for anything if you were to run on bare metal
<dstolfa>
Or any other OS for that matter, at least it doesn't seem logical
<cbarrett>
all i care about is booting into my single application, which reads data from one HW interface, and writes to another. running under virtualization seems totally pointless
<dstolfa>
Anyway, off to bed. I'm sure that mato or hannes will have an answer for you. I've only had limited experimentation with mirage thus far
<dstolfa>
cbarrett: There might be a possibility of writing a simple firmware that does that?
<dmj`>
dstolf: I interpreted his question as, “How do I run w/o a hypervisor"
<dstolfa>
There's no reason you would need to run any form of an OS kernel, you could just write that in a for(;;) loop
<dmj`>
dstolfa*
<cbarrett>
right... i'd like to not write the firmware in C—i write enough C at work, this is for a hobby project
<dstolfa>
cbarrett: Well, in that case, Mirage might be an interesting approach to it :)
<cbarrett>
that is in fact, why i am here
<dstolfa>
Either way, I'd wait for mato or hannes to show up, they're the experts :)
<dstolfa>
Off to sleep now, good luck! :)
<hannes>
cbarrett: the common backends of mirage are either unix (a elf/macho binary), or xen virtual machine image, kvm image. there used to be a FreeBSD kernel module as target, and there is a prototype targeting barebones raspberry pi https://github.com/dbuenzli/rpi-boot-ocaml
<hannes>
so, yes it is possible; no, it is not integrated well atm (and unfortunately I don't see anyone actively working on it)
<hannes>
it would be nice to support e.g. raspberry pi as a tier 1 backend in mirage, though :)
tomboy64 has joined #mirage
<cbarrett>
@hannes: cool, thanks
<cbarrett>
hannes: does Mirage have modules for accessing kernel device drivers? one of the HW interfaces is USB
agarwal1975 has joined #mirage
<cbarrett>
maybe I should look at NetBSD's rump kernel, I know they can boot on my target HW