You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/guides/overview.mdx
+81-13Lines changed: 81 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,12 +8,12 @@ description: |
8
8
9
9
## Set Up
10
10
11
-
We encourage you to split into teams of 2-4 people, for both the tutorials and the hackathon challenges.
11
+
You will be part of a team of 3-4 people.
12
+
Discuss on the [thread](https://discord.com/channels/762976922531528725/1385697301007433898) and create/announce your team on Discord.
13
+
Each team will be assigned a Discord channel to work together.
12
14
You can use the `#hack-team-XX-voice` channels on the [Discord server](https://bit.ly/UnikraftDiscord).
13
15
You will need a Linux environment for this session.
14
16
You can use a virtual machine, but we strongly recommend a native Linux install.
15
-
We provide you with a [virtual machine](https://drive.google.com/file/d/16oBxfjFvu5mpf6DMb4-bsnyd5n2FqReo/view?usp=sharing) that has the minimum requirements already installed.
16
-
The credentials for the virtual machine are `unikraft:unikraft`.
17
17
18
18
You will need to install the following packages:
19
19
@@ -57,20 +57,88 @@ sudo mkdir /etc/qemu/
57
57
echo "allow all" | sudo tee /etc/qemu/bridge.conf
58
58
```
59
59
60
-
## `app-helloworld` on Unikraft
60
+
## Running Applications Using Unikraft
61
61
62
-
The Unikraft `helloworld` application is located in [this repository](https://github.com/unikraft/app-helloworld), along with instructions on how to configure, build and run the application.
63
-
We will go through them without focusing that much on the details, since we will see how everything works behind the scenes in the next sessions.
64
-
Go through the repository `README.md` file and run your first Unikraft unikernel.
62
+
The applications that we will look at are located in [this repository](https://github.com/unikraft/catalog-core/tree/scripts) (we will use the `scripts` branch for now, not the `main` branch).
63
+
64
+
Before building and running applications, there are some setup steps we need to do.
65
+
First, run the [`./setup.sh` script in the root of the repository](https://github.com/unikraft/catalog-core/blob/scripts/setup.sh).
66
+
This will clone all the dependencies we need.
67
+
After that, for every application we will run, we must run the `setup.sh` script from the application directory.
68
+
69
+
All the applications have a `scripts/` subdirectory where several useful things are located:
70
+
71
+
* Building scripts, under `scripts/build/`, named `plat.architecture` (we will use `qemu.x86_64` and `qemu.arm64`).
72
+
* Running scripts, under `scripts/run/`, same naming convention as the build scripts.
73
+
* Configuration files, under `scripts/defconfig/`, we will ignore that for now, and will come back to it in a later session.
74
+
75
+
### `helloworld` on Unikraft
76
+
77
+
We will start with the `c-hello` application, which is a simple "Hello, world", written in `C`.
78
+
79
+
First, we `cd` into the `c-hello` directory and run `./setup.sh`.
80
+
This will create a new directory, `c-hello/workdir/`, with all the unikraft-related dependencies.
81
+
In order to build and run it as a `x86_64` virtual machine, we need to first run the `scripts/build/qemu.x86_64` script, then `scripts/run/qemu.x86_64`.
For applications that wait for connections (i.e. `nginx`, `*-http`, `redis`), the VM IP address is `172.44.0.2`.
137
+
You can curl `172.44.0.2` for `nginx`, `172.44.0.2:8080` for `*-http`, and you must use [`redis-cli`](https://redis.io/docs/latest/develop/tools/cli/) for the `redis` application.
0 commit comments