Coder Social home page Coder Social logo

jspngh / mnemos Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tosc-rs/mnemos

0.0 0.0 0.0 32.8 MB

An Operating System for Building Small Computers

License: Apache License 2.0

Shell 0.23% JavaScript 0.66% Rust 97.09% CSS 0.56% HTML 0.17% RPC 0.05% Just 0.73% Nix 0.24% Python 0.26%

mnemos's Introduction

MnemOS

MnemOS (mnɛːmos) is a hobby-grade, experimental operating system for small computers (and bigger ones, too). The MnemOS kernel and userspace use a design based on asynchronous message passing, inspired by Erlang and microkernels, although MnemOS is not a true microkernel.

This repository contains the cross-platform core of the MnemOS kernel, which is implemented as a Rust library crate, platform-specific implementation for supported hardware and simulator targets, development tools for working on MnemOS, and reusable libraries which the kernel, tools, and platform implementations depend on.

Folder Layout

The project layout contains the following folders:

  • assets/ - images and files used for READMEs and other documentation
  • book/ - This is the source of "the mnemOS book"
  • hardware/ - Hardware designs for MnemOS systems, including CAD files and documentation
  • source/ - This folder contains the source code of the cross-platform kernel, userspace, and related libraries
  • platforms/ - This folder contains code specific to each targeted hardware and simulation platform
  • rfcs/ - MnemOS design RFCs
  • tools/ - This folder contains desktop tools used for working with MnemOS

Getting Started

Currently, the primary supported hardware platform for MnemOS is the Allwinner D1, a RISC-V system-on-chip (SOC). Instructions for running MnemOS on D1 single-board computer can be found in platforms/allwinner-d1/README.md.

If you don't have access to a supported D1 board, or want a quicker development workflow for testing cross-platform changes, MnemOS also has a software simulator, called Melpomene. Melpomene runs as a userspace application binary on a development machine, and runs the MnemOS kernel with simulated hardware. Melpomene can be run using the just melpomene just recipe, or using cargo run --bin melpomene.

Pomelo is a web-based simulator, which runs the MnemOS kernel in the browser using WebAssembly. A hosted version of Pomelo can be found at https://anatol.versteht.es/mlem/.

Note

Some just recipes in the Justfile have additional build-time dependencies which must be installed on the user's system in order to run those recipes.

In order to automate installing (most of) these dependencies, the manganese tool provides a wrapper for just recipes that depends on all Rust build dependencies from crates.io as normal cargo deps. To run a just recipe using manganese, run:

cargo mn $RECIPE

rather than

just $RECIPE

where $RECIPE is the name of the desired just recipe.

Learn More

Development and API Docs

rustdoc output for the current main branch can be built locally with cargo doc --open.

Development Blogs

We've written a series of development blogs following the story of MnemOS' implementation. You can find them here:

Getting Involved

Join us on Matrix: #mnemos-dev:beeper.com

License

MIT + Apache 2.0.

Code of Conduct

The MnemOS project follows the Contributor Covenant Code of Conduct.

mnemos's People

Contributors

jamesmunns avatar hawkw avatar spookyvision avatar jspngh avatar amit-l avatar arunvijayshankar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.