readme.md (2470B)
1 # DualINIT 2 3 A 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 11 You 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 19 Now 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 27 Congratulations! :tada: You have a fresh built of DualINIT, you can continue to set up a running dualinit-system. 28 29 If something went wrong, feel free to open an issue! 30 31 ### Getting Started 32 33 Some 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 47 Resulting 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 74 Move the [basic configuration-file](/docs/dualinit.conf) to `/etc/dualinit.conf` and edit it to fit your needs. 75 76 A reference to all commands can be found [here](/docs/config.md). 77 78 ## License 79 80 This whole project is licensed under the beautiful terms of the [`zlib-license`](LICENSE).