{"id":15697957,"url":"https://github.com/hannesm/mirageos-bobkonf2019-tutorial","last_synced_at":"2025-05-09T00:58:44.107Z","repository":{"id":137390691,"uuid":"177024342","full_name":"hannesm/mirageos-bobkonf2019-tutorial","owner":"hannesm","description":"MirageOS unikernels used for bobkonf 2019 tutorial","archived":false,"fork":false,"pushed_at":"2019-05-03T16:38:34.000Z","size":17,"stargazers_count":6,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-09T00:58:37.316Z","etag":null,"topics":["example","functional-programming","mirageos","ocaml","tutorial","unikernel"],"latest_commit_sha":null,"homepage":null,"language":"OCaml","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hannesm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-03-21T21:10:42.000Z","updated_at":"2022-05-02T14:40:46.000Z","dependencies_parsed_at":null,"dependency_job_id":"930f9f6e-dec6-4689-afa7-715600f57b59","html_url":"https://github.com/hannesm/mirageos-bobkonf2019-tutorial","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hannesm%2Fmirageos-bobkonf2019-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hannesm%2Fmirageos-bobkonf2019-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hannesm%2Fmirageos-bobkonf2019-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hannesm%2Fmirageos-bobkonf2019-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hannesm","download_url":"https://codeload.github.com/hannesm/mirageos-bobkonf2019-tutorial/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253171250,"owners_count":21865290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["example","functional-programming","mirageos","ocaml","tutorial","unikernel"],"created_at":"2024-10-03T19:22:23.954Z","updated_at":"2025-05-09T00:58:44.057Z","avatar_url":"https://github.com/hannesm.png","language":"OCaml","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MirageOS tutorial at bobkonf 2019\n\n[![Build Status](https://travis-ci.org/hannesm/mirageos-bobkonf2019-tutorial.svg?branch=master)](https://travis-ci.org/hannesm/mirageos-bobkonf2019-tutorial)\n\nIn this repository are some example unikernels, used as tutorial introduction\nat Bobkonf 2019.\n\nThe only real prerequisite is [opam](https://opam.ocaml.org) \u003e= 2.0.0. Any macOS\nor Linux/BSD system should be fine.\n\nTo get started, install first some OCaml tools:\n\n```bash\n$ opam version\n2.0.0 (or higher)\n$ opam init\n$ opam update\n$ opam switch create 4.07.1\n..takes some time, compiles OCaml..\n$ eval `opam env` # set's environment variables, need to be repeated in every new shell (.shrc is your friend)!\n$ opam install merlin ocp-indent mirage utop\nmerlin instructions (setting up emacs, vim, etc.)\n$ mirage --version\n3.5.0 (at least)\n```\n\nNow, we're ready to get started with the first example in 00-hello! :)\n\n```bash\n$ mirage configure --help #outputs configure man page\n$ mirage configure #configures the unikernel for unix\n$ make depend #installs opam dependencies\n$ mirage build #or make, compiles the unikernel\n$ ./main.native\n```\n\nFor the hypervisor\n\n```bash\n$ mirage configure -t hvt \u0026\u0026 make depend \u0026\u0026 mirage build\n#configures the same unikernel for hvt (kvm)\n#compiles the unikernel. providing solo5-hvt and hello.hvt\n$ ./solo5-hvt hello.hvt #executes the unikernel as virtual machine\n```\n\nCommand-line arguments\n\n```bash\n$ ./solo5-hvt hello.hvt -l \\*:debug\n$ ./solo5-hvt --net=tap0 dns_client.hvt --ipv4=10.0.42.5/24 --ipv4-gateway=10.0.42.1 -l debug\n$ ./solo5-hvt --mem=16 --net=tap0 dns_client.hvt --help\n$ ./solo5-hvt --mem=16 --net=tap0 dns_client.hvt --ipv4=10.0.42.5/24 --ipv4-gateway=10.0.42.1 --hostname=example.com\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhannesm%2Fmirageos-bobkonf2019-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhannesm%2Fmirageos-bobkonf2019-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhannesm%2Fmirageos-bobkonf2019-tutorial/lists"}