Update README.md
This commit is contained in:
committed by
GitHub
parent
b91a267fe3
commit
ae86834d4c
@@ -1,9 +1,22 @@
|
||||
# MentOS
|
||||
# MentOS (Mentoring Operating System)
|
||||
|
||||
[](https://forthebadge.com)
|
||||
[](https://forthebadge.com)
|
||||
[](https://forthebadge.com)
|
||||
|
||||
## Table of Contents
|
||||
|
||||
1. [What is MentOS](#1-what-is-mentos)
|
||||
2. [Implemented features](#2-implemented-features)
|
||||
3. [Prerequisites](#3-prerequisites)
|
||||
4. [Compiling MentOS](#4-compiling-mentos)
|
||||
5. [Generating the EXT2 filesystem](#5-generating-the-ext2-filesystem)
|
||||
6. [Running MentOS](#6-running-mentos)
|
||||
7. [Kernel logging](#7-kernel-logging)
|
||||
8. [Change the scheduling algorithm](#8-change-the-scheduling-algorithm)
|
||||
9. [Debugging the kernel](#9-debugging-the-kernel)
|
||||
10. [Contributors](#10-contributors)
|
||||
|
||||
## 1. What is MentOS
|
||||
|
||||
MentOS (Mentoring Operating System) is an open source educational operating
|
||||
@@ -26,6 +39,8 @@ Parts of MentOS are inherited or inspired by a similar educational operating
|
||||
system called [DreamOs](https://github.com/dreamos82/DreamOs) written by Ivan
|
||||
Gualandri.
|
||||
|
||||
*[Back to the Table of Contents](#table-of-contents)*
|
||||
|
||||
## 2. Implemented features
|
||||
Follows the list of implemented features:
|
||||
|
||||
@@ -63,6 +78,8 @@ Follows the list of implemented features:
|
||||
|
||||
I will try to keep it updated...
|
||||
|
||||
*[Back to the Table of Contents](#table-of-contents)*
|
||||
|
||||
## 3. Prerequisites
|
||||
|
||||
MentOS is compatible with the main **unix-based** operating systems. It has been
|
||||
@@ -121,7 +138,9 @@ brew install i386-elf-binutils i386-elf-gcc git cmake qemu nasm e2fsprogs
|
||||
brew install gdb cgdb #<- for debug only
|
||||
```
|
||||
|
||||
## 4. Compiling MentOS and generating the EXT2 filesystem
|
||||
*[Back to the Table of Contents](#table-of-contents)*
|
||||
|
||||
## 4. Compiling MentOS
|
||||
|
||||
Compile MentOS with:
|
||||
|
||||
@@ -133,14 +152,20 @@ cmake ..
|
||||
make
|
||||
```
|
||||
|
||||
Then, generate the EXT2 filesystem with:
|
||||
*[Back to the Table of Contents](#table-of-contents)*
|
||||
|
||||
## 5. Generating the EXT2 filesystem
|
||||
|
||||
Generate the EXT2 filesystem with:
|
||||
|
||||
```bash
|
||||
make filesystem
|
||||
```
|
||||
you just need to generate the filesystem once. If you change a `program` you need to re-generate the entire filesystem with `make filesystem`, but this will override any changes you made to the files inside the `rootfs.img`. In the future I will find a way to update just the `/usr/bin` directory and the programs.
|
||||
|
||||
## 5. Running MentOS
|
||||
*[Back to the Table of Contents](#table-of-contents)*
|
||||
|
||||
## 6. Running MentOS
|
||||
|
||||
Boot MentOS with qemu:
|
||||
|
||||
@@ -150,7 +175,9 @@ make qemu
|
||||
|
||||
To login, use one of the usernames listed in `files/etc/passwd`.
|
||||
|
||||
## 6. Kernel logging
|
||||
*[Back to the Table of Contents](#table-of-contents)*
|
||||
|
||||
## 7. Kernel logging
|
||||
The kernel provides ways of printing logging messages *from* inside the kernel code *to* the bash where you executed the `make qemu`.
|
||||
|
||||
These *logging* functions are:
|
||||
@@ -200,7 +227,9 @@ You can change the logging level by including the following lines at the beginni
|
||||
```
|
||||
This example sets the `__DEBUG_LEVEL__`, so that all the messages from `INFO` and below are shown. While `__DEBUG_HEADER__` is just a string that is automatically prepended to your message, helping you identifying from which code the message is coming from.
|
||||
|
||||
## 7. Change the scheduling algorithm
|
||||
*[Back to the Table of Contents](#table-of-contents)*
|
||||
|
||||
## 8. Change the scheduling algorithm
|
||||
|
||||
MentOS supports scheduling algorithms for aperiodic:
|
||||
|
||||
@@ -266,7 +295,9 @@ make
|
||||
make qemu
|
||||
```
|
||||
|
||||
## 8. Use Debugger
|
||||
*[Back to the Table of Contents](#table-of-contents)*
|
||||
|
||||
## 9. Debugging the kernel
|
||||
|
||||
If you want to use GDB to debug MentOS, first you need to compile everything:
|
||||
|
||||
@@ -317,7 +348,9 @@ Breakpoint 2, kmain (...) at .../mentos/src/kernel.c:95
|
||||
95 {
|
||||
```
|
||||
|
||||
## 9. Contributors
|
||||
*[Back to the Table of Contents](#table-of-contents)*
|
||||
|
||||
## 10. Contributors
|
||||
|
||||
Project Manager:
|
||||
|
||||
@@ -339,3 +372,5 @@ Developers:
|
||||
- Soft IRQs
|
||||
- Timer
|
||||
- Signals
|
||||
|
||||
*[Back to the Table of Contents](#table-of-contents)*
|
||||
|
||||
Reference in New Issue
Block a user