diff options
author | Ferass 'Vitali64' EL HAFIDI <vitali64pmemail@protonmail.com> | 2022-09-10 16:31:58 +0200 |
---|---|---|
committer | Ferass 'Vitali64' EL HAFIDI <vitali64pmemail@protonmail.com> | 2022-09-10 16:31:58 +0200 |
commit | a53c895deb503ee17057b1eb3dd6a682b1aa18b1 (patch) | |
tree | a3e78d223e176f3eda64a5f1b7f85a3d0b26e776 | |
download | fases-linux-a53c895deb503ee17057b1eb3dd6a682b1aa18b1.tar.gz fases-linux-a53c895deb503ee17057b1eb3dd6a682b1aa18b1.zip |
fases+linux!
Signed-off-by: Ferass 'Vitali64' EL HAFIDI <vitali64pmemail@protonmail.com>
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | README.md | 61 | ||||
-rwxr-xr-x | rootfs/bin/box | bin | 0 -> 124464 bytes | |||
-rwxr-xr-x | rootfs/bin/dash | bin | 0 -> 1182056 bytes | |||
-rwxr-xr-x | rootfs/bin/fases-sh | bin | 0 -> 805376 bytes | |||
-rw-r--r-- | rootfs/etc/os-release | 10 | ||||
-rw-r--r-- | rootfs/etc/passwd | 1 | ||||
-rwxr-xr-x | rootfs/init | 12 | ||||
-rw-r--r-- | rootfs/root/NOTES.txt | 12 |
9 files changed, 97 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..191fa88 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +./linux/* diff --git a/README.md b/README.md new file mode 100644 index 0000000..68d40e5 --- /dev/null +++ b/README.md @@ -0,0 +1,61 @@ +# fases+linux + +*A proof-of-concept software distribution using the fases coreutils and shell.* + +## How to compile + +1. Acquire the linux or linux-libre kernel ; + +2. Configure the kernel, you have to do at least the following selections ; + +``` +[*] 64-bit kernel +General Setup ---> + Default init path + /bin/sh + [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support + Initramfs source file(s) + ../rootfs/ +Executable file formats ---> + [*] Kernel support for ELF binaries + [*] Kernel supports for scripts starting with #! + +``` + +3. Configure permissions ; + +``` +$ chmod +x rootfs/bin/* +``` + +4. Build it ; + +``` +# Be sure that you're in the kernel directory. +$ make +``` + +5. The image is located at `arch/x86/boot/bzImage`. + +Note: The image is **not** a disk image, you can't boot it directly. Use +a bootloader to load it. You can also use the following command to boot +it in a QEMU Virtual Machine: + +``` +$ qemu-system-x86_64 -kernel arch/x86/boot/bzImage <QEMU arguments> +``` + +## Size + +As of Saturday 10th of September 2022: + +``` +-rw-r--r-- 1 thelinuxmacbook thelinuxmacbook 1717488 Sep 10 15:45 linux/arch/x86/boot/bzImage +``` + +## Do not use this as your main OS! + +This software distribution is a **proof-of-concept**, it isn't made to be +usable as an Operating System but rather as a testing environnement. + +Anyways, why would you use this as your main OS? Networking doesn't even work! diff --git a/rootfs/bin/box b/rootfs/bin/box Binary files differnew file mode 100755 index 0000000..302da15 --- /dev/null +++ b/rootfs/bin/box diff --git a/rootfs/bin/dash b/rootfs/bin/dash Binary files differnew file mode 100755 index 0000000..bdf1c48 --- /dev/null +++ b/rootfs/bin/dash diff --git a/rootfs/bin/fases-sh b/rootfs/bin/fases-sh Binary files differnew file mode 100755 index 0000000..758df48 --- /dev/null +++ b/rootfs/bin/fases-sh diff --git a/rootfs/etc/os-release b/rootfs/etc/os-release new file mode 100644 index 0000000..80304a8 --- /dev/null +++ b/rootfs/etc/os-release @@ -0,0 +1,10 @@ +NAME="fases+linux" +PRETTY_NAME="fases+linux" +ID=faseslinux +BUILD_ID=rolling +ANSI_COLOR="0;36" +HOME_URL="https://git.vitali64.duckdns.org/utils/fases.git" +DOCUMENTATION_URL="https://git.vitali64.duckdns.org/utils/fases.git" +SUPPORT_URL="https://git.vitali64.duckdns.org/utils/fases.git" +BUG_REPORT_URL="https://git.vitali64.duckdns.org/utils/fases.git" +LOGO=fases diff --git a/rootfs/etc/passwd b/rootfs/etc/passwd new file mode 100644 index 0000000..beff71a --- /dev/null +++ b/rootfs/etc/passwd @@ -0,0 +1 @@ +root::0:0::/root:/bin/dash diff --git a/rootfs/init b/rootfs/init new file mode 100755 index 0000000..e5711d3 --- /dev/null +++ b/rootfs/init @@ -0,0 +1,12 @@ +#!/bin/dash + +box sleep 4 + +for u in basename cat chmod chown date dirname echo false head link ln ls \ + mkdir more mv printf rm sleep tail test true uname unlink +do + box ln -s "/bin/box" "/bin/$u" +done + +box cat /root/NOTES.txt +exec dash diff --git a/rootfs/root/NOTES.txt b/rootfs/root/NOTES.txt new file mode 100644 index 0000000..791b9ba --- /dev/null +++ b/rootfs/root/NOTES.txt @@ -0,0 +1,12 @@ +Hello! Welcome to fases+linux +============================= + +This is a small Operating System using the Linux kernel and +the fases core utilities! + +Get started by typing `box` and pressing <ENTER> to see which +commands are available. + +Please note that all core utilites are in the `box` binary. + +Have fun! |