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
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.
Navigation
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.
Icon | Description |
---|---|
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.
Search
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:
Icon | Description |
---|---|
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
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
- Set up the WASM OS website. : Here is the website
- Create the documentation framework for the project using mdbook software.
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
Week 3
Feb 24th
Feb 25th
- Read up on how to setup hardware interrupts using crate pic8259 and the 8259 Programmable Interrupt Controller --> here
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
- Overview the rcore tutorial and stephens tutorial. Make concrete decisions
- Set up the commenting section in the software documentation using giscuss
-
Learn how to draw schematic diagrams in markdown ---> use mermaid plugin or this and maybe this medium guide
- build a complete flow diagram with markdown
- build a sequence diagram
- build a state diagram with markdown
- Start writing documentation for good. Little by little kid... we are in this for the long game, getting a degree is out of the picture.
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
- Read up on the Qemu Risc V Emulator; Specifically the Risc v virtual board.
- Wrap my head around all this completely unnecessary and backwards Makefiles jargon. By following this blog's tutorial
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)