Need help with pebble?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

IsaacWoods
191 Stars 5 Forks Mozilla Public License 2.0 1.1K Commits 18 Opened issues

Description

Microkernel and userspace written in Rust exploring modern ideas

Services available

!
?

Need anything else?

Contributors list

# 388,680
Rust
osdev
HTML
Shell
1131 commits
# 56,544
Rust
Vue.js
repl
elm
1 commit
# 210,719
Rust
microke...
C
Unity
1 commit

Pebble

License: MPL-2.0 Gitter chat

Pebble is still early in development.

Pebble is a microkernel and userspace written in Rust, with a focus on safety and simplicity. It is designed to be simple to understand, extend, and develop for. Pebble does not aim for POSIX compliance. The best way to learn about Pebble is to read the book. The website also hosts some other useful resources.

Building and running

Operating systems tend to be complex to build and run. We've tried to make this as simple as we can, but if you encounter problems or have suggestions to make it easier, feel free to file an issue :)

Getting the source

Firstly, clone the repository and fetch the submodules:

git clone https://github.com/IsaacWoods/pebble.git
git submodule update --init --recursive

Things you'll need

  • A nightly Rust toolchain
  • The
    rust-src
    component (install with
    rustup component add rust-src
    )
  • A working QEMU installation (one that provides
    qemu-system-{arch}
    )

To compile userspace programs, you'll need to build a custom Rust toolchain (hopefully just for now): - Clone

IsaacWoods/rust
and checkout the

pebble
branch - (Optional) rebase against
rust-lang/rust
to get the latest chages - Copy
isaacs_config.toml
to
config.toml
(or use your own) - Run
./x.py build -i library/std
to build a stage-1 compiler and
libstd
- Create a toolchain with
rustup toolchain link pebble build/{host triple}/stage1
(e.g.
rustup toolchain link pebble build/x86_64-unknown-linux-gnu/stage1
)

Using
butler
to build and run projects

This repository includes a build tool,

butler
, to simplify building and running Pebble. It is configured as a Cargo alias,
cargo bu
, to make it easy to access.

Running

cargo bu
will build a standard Pebble distribution and run it in QEMU. See
cargo bu -- --help
for how to do more elaborate things with it, including a list of projects.

Contributing

You are very welcome to contribute to Pebble! Have a look at the issue tracker, or come hang out in the Gitter room to find something to work on.

Any contribution submitted for inclusion in Pebble by you shall be licensed according to the MPL-2.0, without additional terms or conditions.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.