#=----------------------------------------------------------------------------=#
# GNU GPL OS/K #
# #
# Desc: Project ChangeLog #
# #
# #
# Copyright © 2018-2019 The OS/K Team #
# #
# This file is part of OS/K. #
# #
# OS/K is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
# the Free Software Foundation, either version 3 of the License, or #
# any later version. #
# #
# OS/K is distributed in the hope that it will be useful, #
# but WITHOUT ANY WARRANTY# without even the implied warranty of #
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
# GNU General Public License for more details. #
# #
# You should have received a copy of the GNU General Public License #
# along with OS/K. If not, see . #
#=----------------------------------------------------------------------------=#
2018-10-00 @os-k-team
Started talking about making our own OS
2018-11-00 @os-k-team
Name decided & creation of os-k.eu
2018-12-06 @os-k-team
Actually started project, began MBR, decided directories organization, created
this file and others
2018-12-08 @os-k-team
* MBR : actually supports Long Mode Compatibility Verification
* A20 line Enabling : added
2018-12-21 @os-k-team
Boot in two stages
* First stage : 512B MBR code that loads second stage loader from FAT16
* Second stage : enables A20, switches into lm and write colored text =D
[...] Time Skip
2019-03-17 @os-k-team
Migration to GRUB
* Kernel : boots, prepared by the loader. Both are loaded by GRUB
* Multiboot : chose to use v1 because the v2 lacks on documentation
* Architecture Support : x86_64 ONLY
2019-03-25 @os-k-team
Memory and terminal
* Memory map and basic malloc function : functionnal
* Buffer library : implemented for terminal
* Stack : 8MB long and isn't anymore in conflict with the kernel space
* sprintf functions : created
2019-04-09 @os-k-team
* Terminal : now buffered (static)
* Whole Project Tree : big reorganization
* Makefile : suffered a lot, so we improved it
* (KeStartPanic) : doesn't need to lock the terminal
* Basic heap and memory allocator : created
2019-04-24 @os-k-team
Interrupts and I/O
* IDT, ISR exception handler : created
* RTC time based ticks : created but buggy
* Keyboard IRQ handling (TODO buffer BStdIn) : functionnal
2019-04-27 @os-k-team
IDT Overhaul
* IDT : can now register new IRQ handlers at runtime
* Exception handler : crashdumps with registers
* RTC time based ticks : functionnal
2019-05-06 @os-k-team
IDT Overhaul
* IDT : can now register new IRQ and Exception handlers at runtime
* Exception handler : now called early
2019-05-07 @os-k-team
* Exception handler : actual crashdumps register when panic
* PC Speaker : we can emit a little beep, and we have some music
* RTC : basic timer wait()
2019-05-08 @os-k-team
* Shell : basic shell with some commands built-in (8)
* Power management : implementation of shutdown on qemu, virtualbox etc
* Terminal : actual scroll up and down
2019-05-14 @os-k-team
* Whole Project Tree : big reorganization
* Makefile : dependencies automated
2019-05-21 @os-k-team
* VGA and Shell and bprintf: Color support
* GDT : CS and TSS works
* IDT : Double Fault and Stack Segment Fault have a separate stack
* Stack : guard pages are now fully functionnal
[...] Time Skip
2019-11-08 @os-k-team
* Compilation process : beginning the modernization
2019-11-11 @os-k-team
* Compilation process : "unrooting" and enhancing the compilation process scripts, multi-threading
* ProjectTree : better tree, without useless stuff
2019-11-18 @os-k-team
* PIT time based ticks : functionnal, with a sleep function
* IDT : KeUnsmaskIRQ() function
* RTC time based ticks : deprecated, but a delay function still exists
* CPUID : the CPU frequency is detected without errors. SSE supported
2019-11-18 @os-k-team
* FPU : floating point numbers are supported (todo in printf)
2019-12-00 @os-k-team
* MakeFile : Better compilation process (esp. build of the img file)
* Paging : Working on protection of .data, .rodata, .text segments
* TSS : Special stack for ESR and ISR
2019-01-00 @os-k-team
* Dynamic paging : Total rewriting of the paging functions, to adapt it to physical memory
Also, base API to map and unmap pages
* Page allocator : Possibility to allocate and map pages block (contiguous or not)
* Keyboard : Total rewriting of the keyboard layout system, and new functionnalities
* Shell : Command history, new keyboard system implemented
* Acpi : just a beginning