MILOTIX
MILOTIX | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Created by | Alexander Nicholi | ||||||||||
Written in | C, C*, x86 assembly | ||||||||||
ISAs | Intel 64 |
MILOTIX is a Unix-like operating system designed for scalable network-oriented computing purposes complementary to A* on Anodyne. The name is an acronym which stands for Massively Internetworked Large Ordered Textual Information Computing System, with the CS replaced with X in the style of "UNIX".
Motivations
As is done with many other systems under the Xion–Aquefir–Anodyne initiative, architectural design changes are a huge point of appeal which would necessitate at least a hard fork from existing projects such as Linux. Additionally, Linux in particular poses undesirable structural downsides as the source of a hard fork, particularly due to its intent to leverage GCPL in kernel modules, which comprise the lifeblood of the kernel. It is undecided whether MILOTIX will be a new project entirely or a hard fork of some other Unix-like system such as a BSD. Additionally, the GPL licencing requirements of Linux may not prove workable in light of the potential business interests of XAA.
Architectural design decisions
High-level philosophy
As a general rule, MILOTIX strives to disabuse third-party programmers of all kinds from needing to write C* or C code. Instead, application developers are directed to use ♮Python and embeddable strict subsets with i6. A strict, minimal POSIX shell scripting language is also provided, of course. Ideally, all low-level code would be confined to the operating system; in all practicality, however, it will be minimised to a set of device drivers and existing Unix-friendly programs with safeguards like pledging to mitigate damage potential.
File systems
In pursuit of constraining complexity, MILOTIX only supports three file systems: FAT32 for UEFI /boot
loaders, XFS for rootfs, and ZFS for storage at scale. Daemons speaking NFS, CIFS and AFS will network data backed by these filesystems.
Users, processes, pledging and veiling
MILOTIX shall adopt the pledge()
and unveil()
system calls from OpenBSD to enact privilege separation. In addition to this, MILOTIX refactors the concept of users away from the multi-user approach used by Linux and other Unices, instead replacing it with a concept called "units". Administrators can enact unit-wide pledge()
s and path veil()
s that will be enforced in addition to the proactive pledge()
and veil()
s of a program, placing such security measures in the purview of the sysadmin as well. In this context, the root-level /bin
and /lib
directories provision tools that need to be available even when the unit paradigm of privilege separation is not in play.