Go to file
2020-02-09 21:53:10 -08:00
iso/boot/grub print_fb(char*) testing and working as intended for now 2019-02-03 17:03:31 -08:00
scripts commit count added to stats script 2019-11-09 14:37:54 -08:00
.gitignore vscode things 2019-11-13 18:05:12 -08:00
.gitlab-ci.yml fixed sytanx in pipeline yml 2019-11-09 14:58:34 -08:00
bochsrc.conf added kprintf and kprintp as random useful things to have 2019-11-09 17:24:41 -08:00
framebuffer.c FIRST (semi)WORKING PASS OF SERIAL DEBUGGING FINALLY!!!!! 2019-10-07 18:51:29 -07:00
framebuffer.h include guards 2019-11-29 16:53:39 -08:00
gdt_seg.s base working kernel with a gdt that doesn't restart emulator(no idea why this works yet) 2019-10-14 02:06:50 -07:00
gdt.c base working kernel with a gdt that doesn't restart emulator(no idea why this works yet) 2019-10-14 02:06:50 -07:00
gdt.h base working kernel with a gdt that doesn't restart emulator(no idea why this works yet) 2019-10-14 02:06:50 -07:00
interrupt_entry.s irq's functions registered 2019-11-09 00:31:19 -08:00
interrupts.c removing manual setup of keyboard interrupt as its not written in this patch yet 2019-11-29 13:08:01 -08:00
interrupts.h include guards for interrupt structures 2019-11-28 23:35:54 -08:00
kbd.c gcc attributes regarding unused parameters 2020-02-09 21:53:10 -08:00
kbd.h added proper timing and key assignment in key press/release handler 2019-12-05 01:31:05 -08:00
kernel.c calling main shell from kernel 2019-12-05 02:16:56 -08:00
kernel.h removed fluff from kernel.c 2019-11-29 01:55:37 -08:00
LICENSE Add LICENSE 2018-12-08 09:10:40 +00:00
link.ld first thingy 2018-11-29 20:47:13 -08:00
loader.s kmain no longer hangs on return 2019-11-09 18:19:22 -08:00
makefile adding shell to the mix 2019-12-05 02:13:35 -08:00
mem.c moving strictly memory based utils to their own module for clarity sake 2019-10-14 14:02:21 -07:00
mem.h moving strictly memory based utils to their own module for clarity sake 2019-10-14 14:02:21 -07:00
pit.c gcc attributes regarding unused parameters 2020-02-09 21:53:10 -08:00
pit.h exposing timer ticks for use as time stamp later on 2019-12-01 02:28:02 -08:00
ports.h renamed serial_read_buffer to serial_read_byte to make its intention clear 2019-11-29 13:07:24 -08:00
ports.s renamed serial_read_buffer to serial_read_byte to make its intention clear 2019-11-29 13:07:24 -08:00
readme.md updated roadmap 2019-11-29 13:12:31 -08:00
serial.c renamed serial_read_buffer to serial_read_byte to make its intention clear 2019-11-29 13:07:24 -08:00
serial.h Adding keyboard interrupt handler 2019-10-27 20:27:46 -07:00
shell.c newline in prompt 2019-12-05 10:43:14 -08:00
shell.h adding base shell implementation(but its busted atm) 2019-12-05 02:45:19 -08:00
stlio.c i mean, its not triple faulting anymore 2019-12-05 03:21:22 -08:00
stlio.h strcmp() added 2019-12-05 02:13:58 -08:00
tests.c calling main shell from kernel 2019-12-05 02:16:56 -08:00
tests.h testing read func call behavior 2019-11-30 02:06:04 -08:00
types.h adding NULL to types 2019-12-05 01:31:46 -08:00

JankOS

Download a bootable usb here

The best operating system you've ever laid eyes on. It's so good that barely does anything at all.

JankOS serves the purpose of an experiment in learning. Personally I'm unsatisfied with accepting an idea; I want to garner an intuition for the inner workings of an idea.

Done & Dusted

  • GDT Initialization - now ready to take steps to move to user mode

  • IDT Initialization

Todo/Roadmap

  • JShell - a sorta shell implementation

  • Fixing Interrupt handlers - IRQ's now need to be implemented

  • Memory allocator

  • Paging will likely come before the allocator: If segmentation isn't being done then paging will be part of the roadmap(most likely)

Bugs/TODOs

  • Oranizing this codebase: because its a giant mess flat directory type thing.Although this project is more for me than anyone else so I suppose it doesn't matter too much.

  • serial::serial_write(const char*, const u64) doesn't always write all the required data nor does it properly deal with the FIFO queue associated with the COM1 port.

  • stlio::printf still isn't feature complete

  • tests::* could always use more tests to cover as much of the code base as possible.

  • Interrupts will often refire over and over again for no discernable reason(tested with Divide by Zero so far)