Create an init process in Rust that can mount the initial file systems appropriately.
This commit is contained in:
48
README.md
Normal file
48
README.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# Introduction
|
||||
|
||||
The repository is an exploration of the question: what if we wanted to use
|
||||
the Linux kernel as a poor man's microkernel? Microkernels are cool and all,
|
||||
but figuring out how to deal with all the device drivers is a bit soul
|
||||
crushing. So here, we're going to skip over those details, and see what it'd
|
||||
look like if we just built everything else: the network stack, the file
|
||||
systems, the graphical infrastructure, virtualization, etc. And let's use
|
||||
Rust to do it, because I'm a fanboy. And let's not keep ourselves to
|
||||
POSIX and standard Linux file system organization, because why bother?
|
||||
|
||||
# To Hit Go
|
||||
|
||||
Well, you'll need [Docker](https://www.docker.com/products/docker-desktop).
|
||||
|
||||
You'll need to use a fancy Rust Docker container or two. Run this:
|
||||
|
||||
```
|
||||
% ./scripts/build-docker-envs.sh
|
||||
```
|
||||
|
||||
To build your handy-dandy Docker containers.
|
||||
|
||||
To build the linux kernel, which you'll need, you should run:
|
||||
|
||||
```
|
||||
% ./scripts/build-kernel.sh
|
||||
```
|
||||
|
||||
You'll then want to run the Rust build:
|
||||
|
||||
```
|
||||
% cargo build --release --target x86_65-unknown-linux-musl
|
||||
```
|
||||
|
||||
And then build this all up into a nice ramdisk:
|
||||
|
||||
```
|
||||
% ./scripts/build-ramfs.sh
|
||||
```
|
||||
|
||||
And run the demo:
|
||||
|
||||
```
|
||||
% ./scripts/run.sh
|
||||
```
|
||||
|
||||
Wheee!! Fun!!
|
||||
Reference in New Issue
Block a user