Rewrite: documentation

This commit is contained in:
xamidev
2024-08-24 19:02:42 +02:00
parent d10e00835c
commit 75d120efcd
3 changed files with 35 additions and 33 deletions

View File

@@ -2,26 +2,9 @@
# BlankOS # BlankOS
Rewritten monolithic, ring 0, lower-half, singletasking kernel for the x86 processor architecture, using GRUB (eltorito) as bootloader. Emulation was tested on QEMU using Arch Linux 6.9.7-arch1-1, and on real hardware too. Rewritten monolithic, ring 0, lower-half, singletasking kernel for the x86 processor architecture, using GRUB 2 as bootloader. Emulation was tested on QEMU using Arch Linux 6.9.7-arch1-1, and on real hardware too.
The long-term goal of this OS is to be capable of running user programs and having its own complete kernel C library so that users can write their own C programs and expand the system! The long-term goal of this OS is to be capable of running user programs and having its own complete kernel C library so that users can write their own C programs and expand the system!
## Features
- Serial port driver (output & debug)
- Framebuffer driver (output)
- PS/2 Keyboard and PIC driver (input)
- PIT (system clock/timer) driver
- Working IDT, GDT, ISRs, and IRQs
- Kernel panicking (exception handling)
- A kernel-space shell
- Cool color output!!
- Some small working kernel-space programs, such as...
- A brainfuck interpreter
- An arithmetic calculator
- ROT13 and Morse cipher programs
- Conway's Game of Life
- And some more...
## Usage ## Usage
Download the latest BlankOS disk image from the "Releases" tab, and start it using the QEMU emulator: Download the latest BlankOS disk image from the "Releases" tab, and start it using the QEMU emulator:
@@ -54,19 +37,6 @@ sudo dd bs=4M if=blankos.iso of=/dev/sdX status=progress oflag=sync
Replace `sdX` with your USB drive name (you can find it by doing `sudo fdisk -l`). Replace `sdX` with your USB drive name (you can find it by doing `sudo fdisk -l`).
Tada! You now have a working BlankOS USB stick. Go ahead and try it out! Tada! You now have a working BlankOS USB stick. Go ahead and try it out!
## Debugging (QEMU w/ GDB)
```
make debug
```
In another shell:
```
gdb kernel.elf
(gdb) target remote localhost:1234
```
## Documentation ## Documentation
Two other documents are available to help you understand the project better. One is the User's Manual, labelled [USERS.md](docs/USERS.md), and the other one is the Developer's Manual, labelled [DEVELOPERS.md](docs/DEVELOPERS.md). They are full of useful resources around Blank OS. You'll learn how to use the system and how to contribute to it. *(The docs might not always be up-to-date)* Two other documents are available to help you understand the project better. One is the User's Manual, labelled [USERS.md](docs/USERS.md), and the other one is the Developer's Manual, labelled [DEVELOPERS.md](docs/DEVELOPERS.md). They are full of useful resources around Blank OS. You'll learn how to use the system and how to contribute to it. *(The docs might not always be up-to-date)*
@@ -82,7 +52,7 @@ Two other documents are available to help you understand the project better. One
- Ralf Brown's Interrupt List - Ralf Brown's Interrupt List
- the [little book about OS development](https://littleosbook.github.io/) by Erik Helin and Adam Renberg - the [little book about OS development](https://littleosbook.github.io/) by Erik Helin and Adam Renberg
### Roadmap ### Features / Roadmap
- [X] Booting with GRUB - [X] Booting with GRUB
- [X] Common basic structures (IDT, GDT, ISRs, IRQs) - [X] Common basic structures (IDT, GDT, ISRs, IRQs)
@@ -95,7 +65,7 @@ Two other documents are available to help you understand the project better. One
- [ ] Getting to Ring-3 (userspace) - [ ] Getting to Ring-3 (userspace)
- [ ] Multitasking (via round robin scheduling) - [ ] Multitasking (via round robin scheduling)
- [ ] Advanced/other drivers (video, SB16, RTC, Ethernet) - [ ] Advanced/other drivers (video, SB16, RTC, Ethernet)
- [ ] UEFI support - [X] UEFI support
- [ ] ELF parsing - [ ] ELF parsing
- [ ] System calls - [ ] System calls
- [ ] GUI - [ ] GUI

View File

@@ -14,6 +14,19 @@ The source code is available in folder `src`. You will find subfolders correspon
No system calls are available, as the OS runs in kernel-space. No system calls are available, as the OS runs in kernel-space.
## Debugging the kernel (QEMU w/ GDB)
```
make debug
```
In another shell:
```
gdb kernel.elf
(gdb) target remote localhost:1234
```
## Making programs for the OS ## Making programs for the OS
### Step 1 - Making the program and the entry point ### Step 1 - Making the program and the entry point

View File

@@ -2,6 +2,25 @@
## Getting started ## Getting started
First, let me introduce you some features of this project.
## Features
- Serial port driver (output & debug)
- Framebuffer driver (output)
- PS/2 Keyboard and PIC driver (input)
- PIT (system clock/timer) driver
- Working IDT, GDT, ISRs, and IRQs
- Kernel panicking (exception handling)
- A kernel-space shell
- Cool color output!!
- Some small working kernel-space programs, such as...
- A brainfuck interpreter
- An arithmetic calculator
- ROT13 and Morse cipher programs
- Conway's Game of Life
- And some more...
### Installation and emulation/execution ### Installation and emulation/execution
Please refer to the relevant sections in the project `README.md` available in the root folder. Please refer to the relevant sections in the project `README.md` available in the root folder.