diff --git a/README.md b/README.md
index 52db9c49..395b8944 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@
PincerOS
- 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.
@@ -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
@@ -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.
@@ -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
@@ -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