Skip to content

Commit 227c66c

Browse files
committed
document usage of development shell
1 parent bf2b7d1 commit 227c66c

File tree

1 file changed

+5
-7
lines changed

1 file changed

+5
-7
lines changed

README.md

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ int main(){
5858

5959
A full "Hello world" service with a working nix workflow is available in the [hello world repo](https://github.com/includeos/hello_world). The repository can also be used as a a starting point for developing your own IncludeOS service.
6060

61-
For more advanced service examples see the the integration tests (under ./IncludeOS/test/\*/integration).
61+
For more advanced service examples see the the integration tests (under `./IncludeOS/test/\*/integration`).
6262

6363
### <a name="develop_kernel"></a> Kernel development
6464

@@ -70,19 +70,17 @@ $ nix-build
7070

7171
This will build the toolchain and all IncludeOS kernel libraries.
7272

73-
Note that the first build will take some time to complete, as the IncludeOS toolchain is rebuilt from source code. This includes clang, llvm, libcxx, musl and so on. There is no nix binary cache available for these files at the moment. Subsequent builds will go much faster when the toolchain has been cached in the local nix-store.
73+
Note that the first build will take some time (~7 hours on our machines) to complete, as the IncludeOS toolchain is rebuilt from source code. This includes clang, llvm, libcxx, musl and so on. There is no nix binary cache available for these files at the moment. Subsequent builds will go much faster when the toolchain has been cached in the local nix-store.
7474

7575
After making changes to the kernel, run `nix-build` again to get new binaries. If you are iterating on changes in one section of the kernel you can speed up the build significantly by using ccache. All `nix-build` and `nix-shell` commands in this section support the optional parameter `--arg withCcache true`.
7676

77-
It's not always practical to rebuild the whole kernel during development. You can get a development shell with a preconfigured environment using `shell.nix`:
77+
It's not always practical to rebuild the whole kernel during development. You can get a development shell with a preconfigured environment using `develop.nix`:
7878

7979
```bash
80-
$ nix-shell
80+
$ nix-shell ./develop.nix
8181
```
8282

83-
Further instructions will be shown for optionally configuring VM networking or overriding the build path when starting the shell.
84-
85-
By default th shell will also build the unikernel from `example.nix`. The example unikernel can be booted from within the shell:
83+
Alternatively, you may want to use `nix-shell` by itself, which builds the example unikernel found in `./example/` and puts you in a convenient shell for testing out a unikernel. The example unikernel image can be booted from within the shell:
8684

8785
```bash
8886
$ nix-shell

0 commit comments

Comments
 (0)