aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFerass 'Vitali64' EL HAFIDI <vitali64pmemail@protonmail.com>2022-09-10 16:31:58 +0200
committerFerass 'Vitali64' EL HAFIDI <vitali64pmemail@protonmail.com>2022-09-10 16:31:58 +0200
commita53c895deb503ee17057b1eb3dd6a682b1aa18b1 (patch)
treea3e78d223e176f3eda64a5f1b7f85a3d0b26e776
downloadfases-linux-a53c895deb503ee17057b1eb3dd6a682b1aa18b1.tar.gz
fases-linux-a53c895deb503ee17057b1eb3dd6a682b1aa18b1.zip
fases+linux!
Signed-off-by: Ferass 'Vitali64' EL HAFIDI <vitali64pmemail@protonmail.com>
-rw-r--r--.gitignore1
-rw-r--r--README.md61
-rwxr-xr-xrootfs/bin/boxbin0 -> 124464 bytes
-rwxr-xr-xrootfs/bin/dashbin0 -> 1182056 bytes
-rwxr-xr-xrootfs/bin/fases-shbin0 -> 805376 bytes
-rw-r--r--rootfs/etc/os-release10
-rw-r--r--rootfs/etc/passwd1
-rwxr-xr-xrootfs/init12
-rw-r--r--rootfs/root/NOTES.txt12
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
new file mode 100755
index 0000000..302da15
--- /dev/null
+++ b/rootfs/bin/box
Binary files differ
diff --git a/rootfs/bin/dash b/rootfs/bin/dash
new file mode 100755
index 0000000..bdf1c48
--- /dev/null
+++ b/rootfs/bin/dash
Binary files differ
diff --git a/rootfs/bin/fases-sh b/rootfs/bin/fases-sh
new file mode 100755
index 0000000..758df48
--- /dev/null
+++ b/rootfs/bin/fases-sh
Binary files differ
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!