diff --git a/tiny-os/README.md b/tiny-os/README.md index dafdf351f1f9936cd2125bbabaef44142d41823c..e32fbe64f90d954e01d7a396228407c1ce960198 100644 --- a/tiny-os/README.md +++ b/tiny-os/README.md @@ -39,22 +39,25 @@ tiny-os/ --- -## **3.Features** +## **3. Features** Key features of this project include: -1. Bootloader: -- GRUB is used to load the kernel. -- The kernel starts execution at the entry point defined in loader.asm. -2. Transition to C: -- The kernel successfully calls and executes functions implemented in kernel.c. -3.Framebuffer Driver: -- Implements the following functions: - -fb_clear(): Clears the screen. - -fb_print(): Prints text at specified row and column. - -fb_move(): Moves the cursor to a specific position. -4.QEMU Testing: --The OS is tested using QEMU in graphical and curses modes. +1. **Bootloader**: + - GRUB is used to load the kernel. + - The kernel starts execution at the entry point defined in `loader.asm`. + +2. **Transition to C**: + - The kernel successfully calls and executes functions implemented in `kernel.c`. + +3. **Framebuffer Driver**: + - Implements the following functions: + - `fb_clear()`: Clears the screen. + - `fb_print()`: Prints text at specified row and column. + - `fb_move()`: Moves the cursor to a specific position. + +4. **QEMU Testing**: + - The OS is tested using QEMU in graphical and curses modes. --- @@ -96,8 +99,9 @@ void kernel_main() { while (1) {} } ``` -Framebuffer Driver (fb.c) +- Framebuffer Driver (fb.c) Implements APIs for interacting with the framebuffer: + ```c #include "fb.h" #include "io.h" @@ -136,5 +140,38 @@ void fb_move(unsigned short row, unsigned short col) { ```bash make clean ``` +2. Build the Kernel and ISO +```bash +make +``` +3. Run in QEMU +```bash +qemu-system-i386 -boot d -cdrom os.iso -m 32 +``` +4. Run in Curses Mode +```bash +qemu-system-i386 -curses -boot d -cdrom os.iso -m 32 +``` + +--- + +## **6. Testing and Outputs** +**Expected Output** +1. First Row: Sum: 6 +2. Second Row: Booting Tiny OS +3. Cursor Position: The cursor is positioned on the third row. + +## **QEMU Output** + + +## **7. Refences** +- Worksheet 2 Part1 +- The Little Boob of OS Development + +## **8. Future Enchancements** +Potential improvements include: +1. Adding text color support in fb_print. +2. Extending the framebuffer driver to support scrolling. +3. Handling keyboard input for user interaction.