Rewrite: documentation
This commit is contained in:
36
README.md
36
README.md
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
Reference in New Issue
Block a user