aboutsummaryrefslogtreecommitdiff
path: root/readme.md
blob: 286b73e2821b7e8bf58cd3c8f65147aaa26f2ffe (plain) (blame)
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# *MIN*imum system

A small set of scripts to build an absolutely minimalist system using
the `musl` `libc`, `mksh`, the "one true awk", and other tools.

~~I'm purposely trying to avoid large or complex projects such as Busybox.
Not that they don't have their place, or that there's anything wrong with
them, but IMO they take the fun out of it because they have absolutely
everything you need.  The Linux Kernel will be the glaring exception here.~~

```bash
# passwd
Enter new password:
Segmentation fault
```

The above was wishful thinking. I may debug the `suckless` tools in the future
but they're nowhere near complete enough to build a distro around. Although
the `ed` implementation works rather well.

Currently it's just building a minimal set of tools into `pfx/` eventually
the scripts will encompass building a virtual machine image with a boot
loader and all the bells and whistles. ( if I get around to it ha ha )

## Will your system include a compiler?

Probably not, but I've thought about this one, it'd be cool to make it
"self-hosting" in a sense.

## What Linux distribution are you building this on?

Gentoo at the moment, it should work on any Linux distribution.

## Why?

I want to learn more about how operating systems are built and doing something
that someone else has already laid out for you ( such as the LFS project ) is
just too tedious and boring for me, I'd rather do something different.


## The process so far:

Run `scripts/get_sources.sh` and then `scripts/build.sh` It's rather important
to run them from the `min` directory so the paths and imports will be correct.


## Todo:

Build `busybox` with `musl` libc
Build `ibressl` with `musl` libc