Skip to content

thepanoc95/mirix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

88 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Mirix Operating System

Really, another kernel?…

Not Just a kernel my dear, its a Lazy Kernel, its not the one who commands your computer, nah ah, it pretends it does, Mirix is meant to be an portable universal and multiplatform hosted kernel which runs as a userland application on any OS and even on Emacs.

How that fringus is baked

First, get two UNIX PIDs- kiddin!! It is built in Lisp and compiled into Lisp bytecode, but not **Common Lisp** but **Emacs Lisp**, cuz y’know, so it can work in Emacs; And it has some Genera-like functions, like:

;; login as root (yes, Mirix has an root user and is UNIX-like)
(si:set-user 'root)

;; logged in (thats a shell, but also a lisp interpreter)
&root% #start
  (defun hello ()
     (si:writeln #'nolog "Hello, World!")) #end
NIL%
&root% (hello)
Hello, World!
;; also it has some built-in apis!
&root% #start
(require 'mirix/std)

(defun trylog ()
  (si:syslog #'0)
  (si:set-uid -1))
(defun logall ()
  (std:writeln #'system-msg "Hello from Mirix!")
  (trylog))
&root% (logall)
[1775088720] *0 (log) Hello from Mirix!      (nil)

Building from source

Mirix just uses **make** (**GNU Make**) as its build system.

just run:

# build release, create rootfs, prepare rootfs for prefix, and use the C <-> ELisp bridge.
$ make RELEASE=1 MAKEROOTFS=1 ROOTPREFIX=/opt/mirix C2LISP=1
# build a basic C compiler (Lisp) **not even made yet**
$ make clangl PREFIX=/opt/mirix/sys

But note that it is recommended to run `eval-buffer` on **GNU Emacs** with `kernel/build.el` open. Since that script will politely ask Emacs to compile everything.