Introduction

The Development Journal is a continuous documentation where the developer will write about the tasks they have done. more like a checklist.

The developer can attach links to reports explaining how the task was done or if there was any problem encountered

The Supervisor can comment on the progress or the tasks that were done using the comment section. To comment, you have to use your github account. Your github account will NOT get associated with the repository.

This journal covers the period from Fri 10th February 2023 upto May 10th 2023

Write comments here :

How to Navigate this Documentation

Reading Books

This chapter gives an introduction on how to interact with this Documentation book. This assumes you are reading an HTML book in a browser. The options and formatting will be different for other output formats such as PDF.

A book is organized into chapters. Each chapter is a separate page. Chapters can be nested into a hierarchy of sub-chapters. Typically, each chapter will be organized into a series of headings to subdivide a chapter.

There are several methods for navigating through the chapters of a book.

The sidebar on the left provides a list of all chapters. Clicking on any of the chapter titles will load that page.

The sidebar may not automatically appear if the window is too narrow, particularly on mobile displays. In that situation, the menu icon (three horizontal bars) at the top-left of the page can be pressed to open and close the sidebar.

The arrow buttons at the bottom of the page can be used to navigate to the previous or the next chapter.

The left and right arrow keys on the keyboard can be used to navigate to the previous or the next chapter.

Top menu bar

The menu bar at the top of the page provides some icons for interacting with the book. The icons displayed will depend on the settings of how the book was generated.

IconDescription
Opens and closes the chapter listing sidebar.
Opens a picker to choose a different color theme.
Opens a search bar for searching within the book.
Instructs the web browser to print the entire book.
Opens a link to the website that hosts the source code of the book.
Opens a page to directly edit the source of the page you are currently reading.

Tapping the menu bar will scroll the page to the top.

Each book has a built-in search system. Pressing the search icon () in the menu bar, or pressing the S key on the keyboard will open an input box for entering search terms. Typing some terms will show matching chapters and sections in real time.

Clicking any of the results will jump to that section. The up and down arrow keys can be used to navigate the results, and enter will open the highlighted section.

After loading a search result, the matching search terms will be highlighted in the text. Clicking a highlighted word or pressing the Esc key will remove the highlighting.

Code blocks

mdBook books are often used for programming projects, and thus support highlighting code blocks and samples. Code blocks may contain several different icons for interacting with them:

IconDescription
Copies the code block into your local clipboard, to allow pasting into another application.
For Rust code examples, this will execute the sample code and display the compiler output just below the example (see playground).
For Rust code examples, this will toggle visibility of "hidden" lines. Sometimes, larger examples will hide lines which are not particularly relevant to what is being illustrated (see hiding code lines).
For editable code examples, this will undo any changes you have made.

Here's an example:

#![allow(unused)]
fn main() {
println!("Hello, World!");
}

February

The tasks that are expected to be completed by the end of February are :

  • I should have set up a website for the project.
  • I should have prepared the documentation software and the documentation plan for the project.
  • I should have set up the commenting system within the documen
  • I should have clearly explained the problem and solution in the documentation. (using cartoons like Clark)
  • I should have the schematic designs for the whole project ready
Write comments here :

Week 1

General Objectives :

  • Set up WASM OS website with documentation framework
  • Define the problem I am trying to solve.
  • Update the Documentation concerning the theory behind the OS
  • Come up with a full architecture of the OS
  • For the sake of having a Minimal Viable Product, create a WASI compliant program that runs in a No-std environment
  • Contact Supervisor ; Monday as deadline

10th Feb

11th Feb

  • Revisit Lin Clarks papers on Wasm and WASI 1, 2
  • Try to re-define the problem I am trying to solve... really. ---> Half-done

12th Feb

  • Go through Hoffmans Book on WASM, Create a no-std WASM program. --> UNFINISHED
Write comments here :

Week 3

Feb 24th

  • Read up on Software Interrupts --> CPU Exceptions1 and Double Faults2

Feb 25th

Feb 26th

  • Read up on how to setup paging

Feb 27th

Now I have finished the Philip-OS blog ... time to venture into RISC-v bit.

  • Understand "Why RISC-v will be the target architecture for the OS and not x86 cpus"

Feb 28th

Write comments here :

March

The tasks for march :

  • Setup a RISC-V environment on Qemu
  • Mess around with a little RISCV code
  • Get the OS designs on the documentation
  • Get a full OS prototype that does not implement a WASM interface
    • File system
    • Limited system calls

Week 1

1st Mar

  • Skim through the rcore tutorial, and determine if we can use it to build for riscv CPU. (It is not, the translated version is hard to understand. The tutorial is too detailed, it will take too much time)

2nd Mar

  • Start reading on how to compile a rust program to run on bare metal riscv CPU (the CPU will be emulated by Qemu)

5th Mar

  • Start reading on how to compile a rust program to run on bare metal riscv CPU (the CPU will be emulated by Qemu)

6th Mar

7th Mar

  • Set up Qemu and Rust(no_std) for riscv
  • Learn basic riscv Assembly {code structure, common directives}

8th Mar

  • Learn Rust Metaprogramming from here
  • Learn how to write the UART driver in Rust for the RISCV (emulated by Qemu)

April

May