blob: 7f1d803c26af240d33a186c74750de7dc736d945 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# camellia
an experimental, work-in-progress, microkernel based on some of my ideas for privilege separation.
## third party code used
* `src/user/lib/elf.h` from [adachristine](https://github.com/adachristine/sophia/tree/main/api/elf)
* `src/user/lib/vendor/getopt` from [skeeto](https://github.com/skeeto/getopt)
* `src/user/lib/vendor/dlmalloc` from [Doug Lea](https://gee.cs.oswego.edu/dl/html/malloc.html)
* `src/kernel/arch/amd64/3rdparty/multiboot2.h` from the FSF
## build dependencies
```sh
# on debian
# TODO not yet verified on a clean install
apt-get install gcc git sparse # basics
apt-get install grub-pc-bin xorriso mtools # for the .iso
apt-get install g++ libgmp-dev lbmpfr-dev libmpc-dev # for the toolchain
apt-get install qemu-system-x86
```
## repo organization
```
src/
bootstrap/ first userland program ran by the kernel; embeds the initrd
cmd/ userland programs
kernel/
arch/amd64/
sysroot/
dummy sysroot to get gcc to behave
libc/
libk/ libc functions used by the kernel
cache/ download cache
```
|