From 0ddbe3a93358c5707bfb7e120e3cef755ed80467 Mon Sep 17 00:00:00 2001 From: "Hazal2.Veziroglu@live.uwe.ac.uk" <hazal2.veziroglu@live.uwe.ac.uk> Date: Fri, 6 Dec 2024 23:59:33 +0000 Subject: [PATCH] Update file README.md --- tiny-os/README.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 tiny-os/README.md diff --git a/tiny-os/README.md b/tiny-os/README.md new file mode 100644 index 0000000..623a23c --- /dev/null +++ b/tiny-os/README.md @@ -0,0 +1,49 @@ +# **Tiny OS Development Project** + +This project focuses on creating a minimal operating system that can boot, execute simple C functions, and display text using a framebuffer driver. It follows **Worksheet 2 Part 1** and references **The Little Book of OS Development**. + +--- + +## **1. Project Overview** + +The project's primary objectives are: +1. Develop a bootloader to load the kernel. +2. Transition from assembly to C for kernel functionality. +3. Implement a framebuffer driver for text output, cursor positioning, and screen clearing. +4. Test the operating system in QEMU and document the outcomes. + +--- + +## **2. Directory Structure** + +The directory structure is organized as follows: + +```plaintext +tiny-os/ +├── source/ +│ ├── loader.asm # Bootloader in assembly +│ ├── kernel.c # Main kernel logic +│ ├── fb.c # Framebuffer driver +│ ├── io.c # Low-level I/O functions +│ └── link.ld # Linker script +├── include/ +│ ├── fb.h # Framebuffer driver header +│ └── io.h # I/O functions header +├── iso/ +│ └── boot/ +│ └── grub/ +│ ├── stage2_eltorito # GRUB bootloader file +│ └── menu.lst # GRUB configuration +├── Makefile # Automates build processes +└── README.md # Project documentation + +--- + +## **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. + -- GitLab