Compare commits
	
		
			No commits in common. "7c04c6f8ace938aaf48c921f28cb00327092477a" and "7aba9aeef504fb7b13cfefe2c35bc5a6236cefc7" have entirely different histories.
		
	
	
		
			7c04c6f8ac
			...
			7aba9aeef5
		
	
		
					 7 changed files with 2 additions and 26 deletions
				
			
		|  | @ -12,10 +12,6 @@ | ||||||
|         - [Filesystem](development/design/filesystem.md) |         - [Filesystem](development/design/filesystem.md) | ||||||
|     - [Configuring a Build Environment](development/environment.md) |     - [Configuring a Build Environment](development/environment.md) | ||||||
|     - [Development Workflow](development/workflow.md) |     - [Development Workflow](development/workflow.md) | ||||||
| - [Debugging](debugging/README.md) |  | ||||||
|     - [GDB]() |  | ||||||
|     - [Logging]() |  | ||||||
|     - [Performance Profiling]() |  | ||||||
| 
 | 
 | ||||||
| # User Guide | # User Guide | ||||||
| - [Using the OS](user/README.md) | - [Using the OS](user/README.md) | ||||||
|  |  | ||||||
|  | @ -1,7 +0,0 @@ | ||||||
| # Debugging |  | ||||||
| 
 |  | ||||||
| Debugging code and understanding what's going wrong is highly important, especially in a complex setup such as this. |  | ||||||
| We will try to make it as easy as possible, with tools such as [tracing](https://lib.rs/crates/tracing). |  | ||||||
| 
 |  | ||||||
| There are several external tools that can be used as well. |  | ||||||
| 
 |  | ||||||
|  | @ -1 +0,0 @@ | ||||||
| # GDB |  | ||||||
|  | @ -34,7 +34,7 @@ The source for this site, and our [website](https://mercury.the-system.eu.org) i | ||||||
| All `crates`/`libraries` are in a `no-std` environment. This means we only have access to the [libcore](https://doc.rust-lang.org/core/) functionality. | All `crates`/`libraries` are in a `no-std` environment. This means we only have access to the [libcore](https://doc.rust-lang.org/core/) functionality. | ||||||
| However, we will be using the `alloc` crate to access the heap, and`collections` to have access to data structures like `Vec`. | However, we will be using the `alloc` crate to access the heap, and`collections` to have access to data structures like `Vec`. | ||||||
| 
 | 
 | ||||||
| We should, however, have basic support for [async](https://ferrous-systems.com/blog/stable-async-on-embedded/) and [threading]() in `core::`. | We should, however, have basic support for [async](https://ferrous-systems.com/blog/stable-async-on-embedded/). | ||||||
| 
 | 
 | ||||||
| ## Learning | ## Learning | ||||||
| Before jumping in, I highly recommend learning some stuff abotu **Rust** and embedded development with it. | Before jumping in, I highly recommend learning some stuff abotu **Rust** and embedded development with it. | ||||||
|  | @ -45,7 +45,6 @@ A thorough series of steps might be: | ||||||
| 4. Take a quick look through the [Embedded Rust Book](https://docs.rust-embedded.org/book/intro/index.html) | 4. Take a quick look through the [Embedded Rust Book](https://docs.rust-embedded.org/book/intro/index.html) | ||||||
| 5. Read the [RISC-V Guide](https://github.com/mikeroyal/RISC-V-Guide)/[RISC-V Bytes](https://danielmangum.com/categories/risc-v-bytes/) to learn more about the **RISC-V** architecture | 5. Read the [RISC-V Guide](https://github.com/mikeroyal/RISC-V-Guide)/[RISC-V Bytes](https://danielmangum.com/categories/risc-v-bytes/) to learn more about the **RISC-V** architecture | ||||||
| 6. Read the OSDev Wiki entries on [Microkernels](https://wiki.osdev.org/Microkernel) and [Message Passing](https://wiki.osdev.org/Message_Passing) | 6. Read the OSDev Wiki entries on [Microkernels](https://wiki.osdev.org/Microkernel) and [Message Passing](https://wiki.osdev.org/Message_Passing) | ||||||
| 7. Read the [Async Book](https://rust-lang.github.io/async-book/01_getting_started/01_chapter.html) |  | ||||||
| 
 | 
 | ||||||
| Additionally you might want to learn about **Vulkan** if you're going to be hacking on the [GUI](/development/design/gui.md): | Additionally you might want to learn about **Vulkan** if you're going to be hacking on the [GUI](/development/design/gui.md): | ||||||
| 1. Go through the [Vulkan Tutorial (Rust)](https://kylemayes.github.io/vulkanalia/introduction.html) to learn some of the basics | 1. Go through the [Vulkan Tutorial (Rust)](https://kylemayes.github.io/vulkanalia/introduction.html) to learn some of the basics | ||||||
|  |  | ||||||
|  | @ -24,8 +24,6 @@ We may also use [Rhai](https://lib.rs/crates/rhai) for scripting, for easy user | ||||||
| It will also use a global configuration - similar to **Guix** or **NixOS**. This allows it to be easily setup. | It will also use a global configuration - similar to **Guix** or **NixOS**. This allows it to be easily setup. | ||||||
| It will likely use [RON](https://lib.rs/crates/ron) for configuration. | It will likely use [RON](https://lib.rs/crates/ron) for configuration. | ||||||
| 
 | 
 | ||||||
| **Note:** [figlet-rs](https://lib.rs/crates/figlet-rs) can be used for cool `ASCII` art! |  | ||||||
| 
 |  | ||||||
| Further design decisions are gone into detail in the next few chapters. | Further design decisions are gone into detail in the next few chapters. | ||||||
| 
 | 
 | ||||||
| ## Code Organization | ## Code Organization | ||||||
|  |  | ||||||
|  | @ -10,15 +10,6 @@ Afterwards, we can put focus towards building out various features. | ||||||
| 
 | 
 | ||||||
| Support for multiple targets will be done via `Cargo.toml` targets, cross-compilation, and [conditional compilation](https://doc.rust-lang.org/reference/conditional-compilation.html). | Support for multiple targets will be done via `Cargo.toml` targets, cross-compilation, and [conditional compilation](https://doc.rust-lang.org/reference/conditional-compilation.html). | ||||||
| 
 | 
 | ||||||
| ## Concurrency |  | ||||||
| For performance, we will be using various concurrency programming techniques. |  | ||||||
| 
 |  | ||||||
| For **IO** intensive operations, `async` will be used. |  | ||||||
| This will include the [filesystem](/development/design/filesystem.md), [actors](/development/design/actor.md), and [GUI](/development/design/gui.md). |  | ||||||
| 
 |  | ||||||
| **CPU**-bound operations are better suited to individual `threads`, however. |  | ||||||
| This might include operations like *hashing*, *encryption*, and *indexing*. |  | ||||||
| 
 |  | ||||||
| ## Boot Process | ## Boot Process | ||||||
| *To be implemented* | *To be implemented* | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -11,4 +11,4 @@ | ||||||
| ## Isolation | ## Isolation | ||||||
| *To-Do* | *To-Do* | ||||||
| 
 | 
 | ||||||
| [^hmac]: [MAC and Key Derivation](https://cryptobook.nakov.com/mac-and-key-derivation) | [^hmac]: https://cryptobook.nakov.com/mac-and-key-derivation | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue