Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 40 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
<br>PincerOS
</h1>
<p align="center">
Bare metal microkernel-based multi-core operating system written in Rust for the Raspberry Pi 4b.
Bare metal monolithic kernel multi-core operating system written in Rust for the Raspberry Pi 4B.
<br />
</p>
</p>
Expand All @@ -30,11 +30,13 @@
-->
# About The Project 🦀

PincerOS is a bare-metal microkernel-based multi-core operating system written from the ground up in Rust targeting the Raspberry Pi 4b. The project aims to be a distributed, scalable, and secure operating system for general-purpose use. We aim to support a wide range of applications such as networked video games, distributed computing, and more.
PincerOS is a bare-metal monolithic kernel multi-core operating system written from the ground up in Rust targeting the Raspberry Pi 4B. The project aims to be a distributed, scalable, and secure operating system for general-purpose use. We aim to support a wide range of applications such as networked video games, distributed computing, and more.

For more information about our kernel, its features, and its development, please visit the [PincerOS Blog](https://pinceros.github.io/)!

## Targeted Features ✨

- Microkernel Architecture
- Monolithic Kernel Architecture
- Multi-core Support
- Memory Management
- Process Scheduling
Expand All @@ -44,14 +46,21 @@ PincerOS is a bare-metal microkernel-based multi-core operating system written f
- Networking
- Security

## Architecture 📐
PincerOS follows a microkernel architecture with the following key components:
## Kernel Architecture 📐
PincerOS has the following key kernel components:

- Kernel Core: Handles basic system operations, syscalls, scheduling, and IPC
- Memory Management: Implements virtual memory and memory protection
- Device Drivers: Manages hardware interfaces
- Network Stack: Provides networking capabilities
- Security Module: Handles access control and system security
- Security: Handles access control and system security

## Userspace Features
PincerOS makes the following features and applications availabile in its userspace

- ulib - a userspace library which provides user level applications with an API to use system calls
- Display Server - Allows for multiple processes to have graphical windows which simultaneously display content on a monitor. Please view the demo on the PincerOS blog to see the display sever in action for applications such as Doom, a drawing application, and more!
- Shell - a userspace shell with common utilities

# Installation 📦
Currently, the project can be tested on QEMU version 9.0 or higher. If your package manager doesn't have it, you will have to build QEMU from source.
Expand All @@ -68,9 +77,26 @@ Currently, the project can be tested on QEMU version 9.0 or higher. If your pack
1. Clone the repository:
```git clone https://github.com/pincerOS/kernel.git```

2. Build the kernel and run:
```cd crates/kernel```
```just build-and-run``` to build and run the `main` example.
2. Build and run the kernel

This can be accomplished by navigating to the cloned kernel directory and then running the following series of shell commands:

```bash
./crates/kernel/scripts/compile-init.sh
./crates/kernel/scripts/build.sh user
./crates/kernel/scripts/run-usb.sh
```

Alternativley, you can also use Just

To build and run the main example:

```bash
cd crates/kernel
just build-and-run

```


We also provide scripts for debugging and running with ui:
```bash
Expand All @@ -92,11 +118,11 @@ Available recipes:

- [x] Basic kernel functionality
- [x] Multi-core support
- [ ] Network stack
- [ ] Application support
- [ ] File system
- [ ] Device drivers
- [ ] Security module
- [x] Network stack
- [x] Application support
- [x] File system
- [x] Device drivers
- [ ] Security
- [ ] Distributed computing support


Expand Down
Loading