- speaking now: @mindypreston (@yomimono on github)
- we released version 3.0 in February
- tl;dr: supports KVM via the solo5 project
- better errors
- better logs
I figured out some of the wiring for this script to clear out and add firewall rules. Change `ocamldev` to the dev VM you'll launch, and `fetchmotron` to the VM which is a client of the firewall under test if necessary (you should only need to do this in update-firewall). | |
In dom0: | |
make a file in /etc/qubes-rpc called yomimono.updateFirewall: | |
``` | |
sudo bash |
Hello all, | |
We are happy to announce the release of version 3.1.0 of MirageOS. Full release notes are available at https://github.com/mirage/mirage/releases/tag/3.1.0. Thanks to hannes for handling this release, and to mato for documentation updates! | |
3.1.0 is compatible with the recently-released version 0.3.0 of the solo5 execution environment. solo5 (and, in 3.1.0, therefore MirageOS) now includes experimental support for several new environments: | |
* the Muen Separation Kernel[1] (with `mirage configure -t muen`) | |
* FreeBSD vmm (with `mirage configure -t ukvm`) | |
* OpenBSD vmm (with `mirage configure -t ukvm`) | |
* ARM64 hosts[2] (with `mirage configure -t ukvm`) |
user@whale:~/minim$ cat Dockerfile | |
FROM ocaml/opam:alpine-3.5_ocaml-4.04.0 as ocaml | |
FROM scratch | |
COPY --from=ocaml /bin/sh / | |
CMD ["/sh"] | |
user@whale:~/minim$ docker build -t minim . | |
Sending build context to Docker daemon 53.76kB | |
Step 1/4 : FROM ocaml/opam:alpine-3.5_ocaml-4.04.0 as ocaml |
Less Code, Less Magic, More Results | |
## Major Changes | |
* The solo5 targets `ukvm` and `virtio` (see [https://mirage.io/blog/introducing-solo5]), which allow unikernels to run on KVM hypervisors and on FreeBSD via bhyve, are now available in the mainline `mirage` package. These targets use a newly refactored freestanding OCaml runtime (see [https://github.com/mirage/ocaml-freestanding]). | |
* The `V1` and `V1_LWT` modules, which contained module type definitions agreed upon by implementations used in `mirage`, have been renamed to `Mirage_types` and `Mirage_types_lwt`. The module type definitions themselves are no longer contained in this repository, but have been moved to their own independently-versioned repositories and are merely referenced from `Mirage_types` and `Mirage_types_lwt`. | |
* Across the universe of module type definitions, errors in computation are now signalled by a `result` type and a set of polymorphic variants representing common errors that might occur. Individual implementations may extend |
#!/bin/bash | |
#set -e | |
#set -x | |
fail() { | |
echo $1 | |
[ -e ${EBS_DEVICE} ] && [ "$VOLUME_ID" != "" ] && [ $REGION != "" ] && { | |
ec2-detach-volume --region $REGION $VOLUME_ID | |
ec2-delete-volume --region $REGION $VOLUME_ID |
CFLAGS = -g -Wall | |
all : problem_7 | |
problem_7 : problem_7.c | |
$(CC) $(CFLAGS) -o $@ $< -lm |
#include <Wire.h> | |
#include <Adafruit_NeoPixel.h> | |
#include <Adafruit_Sensor.h> | |
#include <Adafruit_TSL2561.h> | |
#define PIN 6 | |
#define MINIMUM_LUX 20 | |
// Parameter 1 = number of pixels in strip | |
// Parameter 2 = pin number (most are valid) |
337 (* Compose the overall thread from the various tx/rx threads | |
338 and the main listener function *) | |
339 let tx_thread = (Tx.thread t pcb ~send_ack ~rx_ack) in | |
340 let rx_thread = (Rx.thread pcb ~rx_data) in | |
341 let wnd_thread = (Wnd.thread ~utx ~urx ~wnd ~state ~tx_wnd_update) in | |
342 let threads = [ tx_thread; rx_thread; wnd_thread ] in | |
343 let catch_and_cancel = function | |
344 | Lwt.Canceled -> () | |
345 | ex -> | |
346 (* cancel the other threads *) |
open Lwt | |
open V1_LWT | |
module Main (C: V1_LWT.CONSOLE) (CLIENT_STACK: V1_LWT.STACKV4) = struct | |
let local_webserver="8.8.8.8" | |
let port = 5162 | |
let start c client_stack = | |
let construct_request () = | |
let buf = Io_page.(to_cstruct (get 1)) in |