Tom-on 1d71a4e384 [ BIG CHANGE ] Properly Implemented IDT
- New include files: idt.h, pic.h, syscall.h and exceptions.h
- Proper exception handling (still could be improved
- PIC properly initiated and irqs all masked
- BREAKS Keyboard - The keyboard IRQ is not handled anymore
- convertColor() is kinda broken :/ (More in README.md)
2024-05-05 21:03:21 +02:00
2024-03-08 19:32:18 +01:00

kern.


Idk why i called it that it was 3am and i needed sleep

About

Kern is a 32-bit OS based on the x86 architecture written in NASM Assembly and C. I'm working on a basic command line as well as a custom filesystem (filetable for now). It has a simple shell with some commands. (Use 'help' for a list of available ones)

Since there's always more to do, here are the todos.

Features

  • Filesystem (filetable)
  • Interactive Shell
  • Disk I/O
  • Font support (funky format)
  • 1920x1080 Resolution, 32bpp
  • Physical memory manager

Building & Running

If you want to try kern for some reason, you can.

Tools

Unix Like Systems

On MacOS

  • A cross compiler: $ brew tap nativeos/i386-elf-toolchain && brew install i386-elf-binutils i386-elf-gcc

Commands

$ make # Or 'make os'
$ make run # Run QEMU

I personally wouldn't recommend running this on real hardware, because it's untested and will just probably break you pc, but if you really want to, you can try it, but don't blame me if something goes wrong.

Some images

Interactive Shell:
Example shell output

Filesystem:
Ls command output and some file reading

Disk R/W:
Disk command reading and writing

These images may be outdated, Idk

Known issues

  • If you run kernel.bin from shell, it will clear the memory map so when you load anything it will override the kernel code
  • fillCircle() in graphics.h is broken. No idea why, so no filled circles for you (i commented out the boundaryFill call in the function)
  • convertColor() doesn't work right, because i should be using floating point, but -mgeneral-regs-only doesn't let me :(

Old Version

S
Description
No description provided
Readme GPL-3.0
1.4 MiB
Languages
C 93.9%
Makefile 3.1%
Assembly 2%
Linker Script 1%