Skip to content
This repository has been archived by the owner on Dec 17, 2023. It is now read-only.
/ kernel Public archive

💾 🖥 A simple x86 hobby kernel written in Assembly and C

Notifications You must be signed in to change notification settings

arialos/kernel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Arial Operating System.

Notion - Figma - Github Projects

A homage to `90s User interface design, combined with modern development. Arial is centered around creating an operating system that is simple, beautiful and accessible.

Milestone 1 Todo

Whilst Milestone 1 is far away this serves a nice goal post before i tackle more complex problems like paging and threading for milestone 2.

  • Refine toolchain for compatibility on Linux.
  • Graphics rendering using VBE.
    • printf function to get better debug information.
    • Support to draw different shapes. Squares, circles, individual pixels and text.
    • Render a basic version of arial's logo using graphics library.
    • Draw a color image.
    • Create a text mode fallback.incase VBE doesn't start properly.
  • GDT, IDT and Interrupts.
    • Create and flush GDT and IDT tables
    • Get hardware interrupts.
    • Map software interrupts.
  • Simple PS/2 driver for keyboard and mouse.
    • Get interrupts 1 and 12 for activity on input devices.
    • Spawn relevant events for each device after their interrupts.
    • Get basic keyboard driver working and draw characters to screen.
    • Get basic mouse driver working and draw cursor to screen.
    • Handle clicks / modifier keys and store that information in event
    • Key stroke buffer for keyboard
  • General house keeping
    • Get a system timer created. Create a clock from interrupt 33 or something?
    • Create function to find the SMBios.
    • Use SMBios to get information about cpu, bios and manufacture of machine.

Screenshots


arial build: ebf615d running on QEMU 6.2