X86 Architecture Operating System
Overview
Currently developing a basic operating system that runs within the Bochs x86 emulator.
Using The Little Book About OS Development,
I have started to impliment simple features into the OS.
project is still ongoing
Printf Function
The first feature I implemented was a custom framebuffer driver that supports screen output capabilities such as line breaks and screen clearing. This driver was designed to closely emulate the behavior of C’s printf function from the standard I/O library.
Below is the full content of the FrameBuff.c file, which is primarily responsible for implementing this functionality. Additional supporting functions—such as outb—as well as various constant definitions are provided through the FrameBuff.h header and other included files.
Serial Output
Using Bochs emulator you can monitor the actions of the emulated serial ports and read the outputs. Using this feature I made a serial port driver that configures the serial port then outputs serial transmissions. With this I can use the serial port as an error log of sorts because I can see the output in a seperate file from the operating system.
Global Descriptor Table
Currently Working on implimenting a Global Descriptor Table for my operating system, The purpose of this table is to Seperate segments in the memory to seperate data code, and give certain segments more or less permissions based on who or what is executing the code.