Skip to content

Ocawesome101/oc-monolith

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Monolith

Monolith is a monolithic, multitasking, multiuser, multiscreen operating system for the OpenComputers Minecraft mod. Documentation is mostly available in the DOCS.md files placed in the various directories. If any docs are missing, please raise an issue or let me know through Discord or IRC (Ocawesome101#5343 or Ocawesome101 in #oc on EsperNet).

Documentation is available online here.

Current LOC: 9681

Installation

To install Monolith to any empty hard disk, run the following commands in the OpenOS shell. You will need an internet card.

cd /home
wget https://raw.githubusercontent.com/ocawesome101/oc-monolith/master/installer.lua
./installer.lua

Note that the installation process assumes the current root filesystem is mounted as writable. The Monolith installer will refuse to install to the root filesystem.

Pre-built releases

The latest pre-built release will be downloaded through the installer. At any time, you may upgrade with mpm install ocawesome101/oc-monolith/base.

Building

To build Monolith, you'll need Lua 5.3, git, make, and probably a Linux or macOS system (alternatively, you can download the latest prebuilt release in CPIO form from release.cpio in the repo). Clone this repository (git clone https://github.com/ocawesome101/oc-monolith), cd to it, and run make. Copy all files in build to the root of your OpenComputers drive.

Project status

The following is a (hopefully up-to-date) representation of what I want to get done, and what I have gotten done, towards completing Monolith.

  • Monolith
    • Kernel
      • Base
      • Logger (kernel.logger)
      • component
      • Users (kernel.users)
      • Modules (kernel.module)
      • Filesystem management (kernel.filesystem)
      • computer
      • Userspace sandbox (kernel.sandbox)
      • Scheduler (kernel.thread)
      • Load init
    • InitMe init system
      • Base
      • package
      • io
      • Service management (initsvc)
      • Script management (scripts, not directly user-facing)
    • Services
      • getty
      • mountd
      • devfs
      • procfs
      • Minitel daemon
      • GERTi daemon
    • Libraries
      • buffer
      • class (may remove)
      • config
      • shell
      • sha3
      • serialization
      • sh
      • text
      • time
      • users
      • vt100
      • protect
      • cp.copy
      • event
      • uuid
      • internet
      • net
        • minitel
        • GERTi
      • filesystem
      • signals
      • thread
      • module
      • modules
      • kinfo
    • SH
      • Base
      • Builtins
      • Basic commands
    • MonoUI
      • Base
      • Window management
      • Apps
        • Settings
        • Terminal
    • Memory optimization - /lib/full + package.delay
    • Editors
      • Library (/lib/editor.lua)
      • Line editor (/bin/ed.lua)
      • Fullscreen editor (/bin/fled.lua)
      • Visual editor (/bin/vled.lua)

About

Monolithic kernel for OpenComputers.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published