An open API service indexing awesome lists of open source software.

https://github.com/thepanoc95/mirix

An lazy kernel
https://github.com/thepanoc95/mirix

binary-format bsd compiler cross-platform emacs gcc gnu kernel lazykernel lisp lisp-machine microkernel msdos5 multi-arch osdev platform-agnostic posix posix-compliant unix

Last synced: 6 days ago
JSON representation

An lazy kernel

Awesome Lists containing this project

README

          

#+TITLE: The Mirix Operating System
#+AUTHOR: Miguel V. Mesquita (OakyMacintosh)

* 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:

#+begin_src emacs-lisp
;; 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)
#+end_src

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

just run:
#+begin_src bash
# 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
#+end_src

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.