readme.md (2470B) download
1# DualINIT
2
3A meta-init system for Linux to 'dualboot' multiple Linux distributions in user-space sharing one Linux kernel
4
5> :warning: Work in progress!
6
7## Installation
8
9### Building the executable
10
11You are required to have:
12
13- [Git](https://git-scm.com/)
14- [GCC for your Linux-architecture](https://www.gnu.org/software/gcc/)
15- [GNU make](https://www.gnu.org/software/make/)
16
17> If you are building DualINIT for an other architecture than your host, grab a cross-compiler and set the environment-variable `CC` to your compiler-path.
18
19Now you can invoke the commands to clone this repository and compile `bin/dualinit`:
20
21```
22$ git clone https://github.com/friedelschoen/dualinit.git
23$ cd dualinit
24$ make bin/dualinit
25```
26
27Congratulations! :tada: You have a fresh built of DualINIT, you can continue to set up a running dualinit-system.
28
29If something went wrong, feel free to open an issue!
30
31### Getting Started
32
33Some dictionaries and files in the filesystem-root are required for DualINIT and Linux to work:
34
35- `/boot` - the Linux kernel and bootloader
36- `/dev` - an empty dictionary filled by the kernel with various devices
37- `/proc` - an empty dictionary filled by the kernel with process information
38- `/sys` - an empty dictionary filled by the kernel with various kernel files
39- `/sbin/init` - the dualinit executable
40- `/etc/dualinit.conf` - dualinit configuration
41- `/<section>` - a section to be loaded
42- `/<section>/{dev,sys,proc}` - pseudo-filesystems binded from root
43- `/<section>/{run,tmp}` - temporary dictionaries for services and applications
44- `/<section>/dualinit` - the filesystem-root to configure DualINIT
45- `/<section>/boot` - can be mounted to `/boot` to update the kernel, bootloader, etc.
46
47Resulting in a structure like that:
48
49```
50/
51├── boot/
52│ ├── initramfs-x.x.img
53│ ├── vmlinuz-x.x
54│ └── ...
55├── dev/
56├── etc/
57│ └── dualinit.conf
58├── proc/
59├── sbin/
60│ └── init
61├── sys/
62└── <section>/
63 ├── dev/
64 ├── sys/
65 ├── proc/
66 ├── run/
67 ├── tmp/
68 ├── dualinit/
69 └── (boot/)
70```
71
72## Configuration
73
74Move the [basic configuration-file](/docs/dualinit.conf) to `/etc/dualinit.conf` and edit it to fit your needs.
75
76A reference to all commands can be found [here](/docs/config.md).
77
78## License
79
80This whole project is licensed under the beautiful terms of the [`zlib-license`](LICENSE).