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]
dezzy has quit [Ping timeout: 264 seconds]
_whitelogger has joined #mirage
Guest36807 has joined #mirage
Guest36807 has quit [Quit: KVIrc 4.9.2 Aria http://www.kvirc.net/]
<cbarrett> apache3: any idea where I might find more info? family history says Zeus is one of my great grandfathers
<cbarrett> ;)
_whitelogger has joined #mirage
<apache3> what do you mean by the Zeus-thing?
<apache3> I read it as a cheeky insult, but maybe there's a language barrier. Anyway, second hit on google: https://github.com/rudenoise/qemu-solo5-mirage-rpi3
<apache3> cbarrett: ^
tomboy64 has quit [Ping timeout: 240 seconds]
argent_smith has joined #mirage
<dmj`> whos’s being cheeky?
<dmj`> s/whos’s/who's
<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
<hannes> cbarrett: there's no usb driver etc -- but there's a rumprun port (which is also not merged into mainline) https://github.com/mirage/mirage/issues/479
<cbarrett> hm
<cbarrett> I guess I'm somewhat confused then about what Mirage is? if it doesn't have drivers, and doesn't boot on HW?
<cbarrett> does it (more or less) only support running under a hypervisor?
<hannes> mirage contains drivers -- but atm only for virtio (via solo5), kvm (via solo5), xen (via mirage-xen)
<hannes> it implements the minimalistic set of drivers to work in virtualised environments...