ShyanJMC

BlackOSBlackOS

BlackOS

BlackOS is operating system designed to be executed in Aarch64 SOCs (ARMv8 and newest) and be as minimalist is possible.

Architecture

BlackOS' architecture is this;

  • Kernel, initramFS and firmware: BlackOS is released without kernel, initramFS and firmware. It is because you can copy them into “/boot” and “/var/lib/modules” partitions to work in your specific single-board computer or ARM SOC without recompiling the complete system.

  • System Init: BlackOS uses “OpenRC” as “sysinit”.

  • Shell: BlackOS uses “bash” as shell.

  • Utilities and commands: BlackOS uses “coreutils”and “findutils” suites, “grep” and “send” as utilities.

  • Networking; BlackOS uses “netplugd” (as ethernet administrator) and “dhcpcd” (as DHCP client).

Manifest

Today operativing systems are not simple. They are very complex, obscure and inefficient. Nowadays, no developer tries to enhance and optimize the code, however they just code it and and suggests adding more CPU and RAM in [Put any Cloud Provider] when resources are scarce.

In the past, developers unsed to enhance the code to fix complex issues with limited resources (see “Apollo Guidance Computer” used in Apollo missions). Today you are lucky enoguh if Google Chrome or Electron Framework (a minimal version of Chromium’s JavaScript Engine) does not consume your RAM and 6 cores of your CPU (Mozilla Firefox is not much better in that way).

In Linux OS we have a serious optimization problem; SystemD. In the first versions of Unix, BSD and Linux distributions have “SysVInit” (in reference of the firsts inits of Unix). Many years later,SystemD came up with a one monolithic idea; including hardware management, process management and user session environment management in one binary daemon.

There are lots of arguments around the Net against SystemD. Of course, SystemD has some pros, such the replacement of the “start”, “restart” and “stop” scripts of process for “Units”. However, it is neither modular nor simple to hack it, enhance it and in some cases to customize it, and it takes even more functions as time goes by.

  • Unix philosophy is “One program, one function”

  • KISS philosophy is “Keep it simple, stupid” (Here the word “stupid” does not mean an insult, but an admonition about the common human habit of overthinking a problem. )

  • BlackOS philosophy is “KISS to build, Unix to work, and the user to decide”

Of course, there are a few developers who try to come back to the roots; Gentoo Linux. They have developed “OpenRC”, a simple and very powerful sysinit.

Today most popular CPU architecture is ARM (if we consider desktop, notebook, smartphone, single-board computers and IoT - Internet of Things). ARM is the present and the future of computation. In 2021 Apple released their first ARM device; Mac book AIR ARM and some time ago Qualcomm have their 7c,8c and 8cx SOCs.

Why ARM is the future? Because

  1. It is highly efficient.
  2. It is highly optimized and designed for specific proposes.
  3. It consume less than x86 (in this days in which we are fighting against climate change, this is very important).

We need optimized and minimalist operating systems which can run application in an isolated space (“containers”), and we let the user decide the features which contains her/his system. Having said that, BlackOS try to be a combination between Alpine, Arch and Fedora IOT but all applications inside containers.

Source Code

BlackOS use “LinuxFromScratch-Sources” to get the code, and also the script “create_base_system.sh” to build the system on an existing Arch Linux. LinuxFromScratch-Source https://github.com/ShyanJMC/LinuxFromScratch-Sources BlackOS https://github.com/ShyanJMC/BlackOS

Release

State at 05-2021: Right now, BlackOS is in alpha state , as I work on it in my free time. Currently, BlackOS development will focus in replacing BusyBox with;

  • Coreutils
  • Findutils
  • Grep
  • Bash
  • OpenRC
  • EUdev
  • Netplugd
  • IPRoute2
  • DHCPCD Once all the above is ready, future development will focus in PODMAN and AppArmor MAC.