GitXplorerGitXplorer
V

tovos

public
2 stars
0 forks
0 issues

Commits

List of commits on branch master.
Verified
04e281dde89a89f60fd47d085585ecd54b327e4a

Update README.md

VVladThodo committed 2 years ago
Verified
760dddec251a48230af28c1ac76c107ac6b10beb

Update README.md

VVladThodo committed 2 years ago
Verified
0ac42703c98eeaa331adf5912671450863141072

Update README.md

VVladThodo committed 2 years ago
Verified
bbce816c143870539692951a82f212f7ef0417d5

Update README.md

VVladThodo committed 2 years ago
Verified
4e7cd79d799fd1c0c18ded481307babe4da7de21

Update README.md

VVladThodo committed 2 years ago
Verified
5408e693eead4c9df38ac130e0fb5f8146a427f3

Update README.md

VVladThodo committed 2 years ago

README

The README file for this repository.

TovOS

Simple operating system developed in my YouTube series. The documentation is still being developed.

The boot process

TovOS only works on legacy systems that support BIOS boot. It could probably be adapted for a UEFI system aswell, although that could be quite a difficult process. More info on how x86 computers start up cand be found in the links provided below.

In short, the system "boots" in three stages:

  • BIOS loads the bootloader at physical address 0x7C00

  • Bootloader uses BIOS interrupts to select a video mode and load the rest of the kernel and then switches to protected mode

  • The first stage kernel (although a better name for it would be a second stage bootloader) configures the system and the switches to a second stage kernel written in C

  • The C kernel handles simple functions susch as print and keyboard input

The build system

TovOS is built using NASM and GCC (with NASM being used for assembling the assembly code and GCC used for compiling the C code). Make is used in order to simplify the build flow and allow for easier and quicker builds.

The make file assembles and compiles the code, links it and then bundles it in a disk image that is then ran by QEMU. If all the required build and simulation tools are installed, make run is the single command needed to build and the run the system.

Required build tools:

  • NASM
  • GCC
  • QEMU (for running the OS)

Availabile make commands:

  • make kernel only builds the kernel
  • make all builds the bootloader, kernel and then bundles them in a disk image
  • make run similar to make all but also starts QEMU

Additional make commands will be added as the system is being developed and the builds become more sophysticated.

TovOS I/O

The system is currently only capable of reading keyboard scan codes from port 0x60. A better keyboard driver is currently being implemented.

Useful links