lunaix-os.git
3 years agoImplement shift+<key> support, and ...
Minep [Sat, 30 Apr 2022 23:31:02 +0000 (00:31 +0100)]
Implement shift+<key> support, and ...
Modifier state are now avaliable in key event state.
Bounded buffer for upper layer polls the key event.
A simple keyboard input demo added in k_main.c
Add a mutex lock on senstive region.
Fix ps/2 io bugs, LEDs should works now.

3 years agoBasic PS/2 keyboard driver, and ...
Minep [Fri, 29 Apr 2022 23:29:02 +0000 (00:29 +0100)]
Basic PS/2 keyboard driver, and ...
A bit refactoring on timer related api;
New clock api for accessing datatime & epoch stuff;
New log level: debug, is implemented in kprintf.

3 years agofix errors in slides
Minep [Sun, 13 Mar 2022 15:47:26 +0000 (15:47 +0000)]
fix errors in slides

3 years agoep8 slides
Minep [Sun, 13 Mar 2022 15:36:33 +0000 (15:36 +0000)]
ep8 slides

3 years agominor adjustments
Minep [Sun, 13 Mar 2022 15:36:13 +0000 (15:36 +0000)]
minor adjustments

3 years agoTimer re-worked!
Minep [Sat, 12 Mar 2022 18:55:50 +0000 (18:55 +0000)]
Timer re-worked!
Renamings some header files.
A linked list implementation stolen from Linux.

3 years agoImplement APIC, RTC, basic ACPI parser and timer support
Minep [Sat, 12 Mar 2022 01:21:58 +0000 (01:21 +0000)]
Implement APIC, RTC, basic ACPI parser and timer support
more flexible interrupt handler design
rename the libc to klibc to avoid the confusion between user space and kernel space c std lib
improved logging experience, the kprintf
Some shitty workarounds on vm in order to make my ACPI parser happy
Not trust on multiboot's mem map anymore!

3 years agodead simple rtc code for getting current datetime.
Minep [Sun, 6 Mar 2022 18:17:32 +0000 (18:17 +0000)]
dead simple rtc code for getting current datetime.

3 years agoadd missing slides due to renamings
Minep [Sat, 5 Mar 2022 22:05:14 +0000 (22:05 +0000)]
add missing slides due to renamings

3 years agoupdate project structures
Minep [Sat, 5 Mar 2022 21:58:23 +0000 (21:58 +0000)]
update project structures
finalize the dmm related stuff

3 years agofix bugs found in brk & add simple security checks on lx_free
Minep [Thu, 3 Mar 2022 22:37:10 +0000 (22:37 +0000)]
fix bugs found in brk & add simple security checks on lx_free

3 years agomake dmm.c portable
Minep [Thu, 3 Mar 2022 18:36:37 +0000 (18:36 +0000)]
make dmm.c portable
implement kernel heap malloc/free

3 years agoComplete (almost!) printf fmt support
Minep [Thu, 3 Mar 2022 17:36:53 +0000 (17:36 +0000)]
Complete (almost!) printf fmt support
Enriched string.h
Enhance the readability of vmm.c
Better assert & panic implementation (use syscall to panic)
Some housekeeping routines (remove warnings, restructure project folders)

3 years agogrow on demand heap
Minep [Tue, 1 Mar 2022 23:34:38 +0000 (23:34 +0000)]
grow on demand heap
add simple page fault handler for debugging
correct the accidentally used sti instruction which is too early at this stage

3 years agodynamic memory manager (malloc & free)
Minep [Tue, 1 Mar 2022 16:31:12 +0000 (16:31 +0000)]
dynamic memory manager (malloc & free)
debugging experience improved

3 years agovmm - allow remapping
Minep [Sun, 27 Feb 2022 23:46:51 +0000 (23:46 +0000)]
vmm - allow remapping
vmm,page - rename some symbols that seems make more sense
boot.S - make things more predictable
hal - more abstraction on the daily-use functionalities.
dmm - a place for dynamic heap allocation

3 years agoa bit refactoring on kernel_init
Minep [Sun, 27 Feb 2022 23:39:31 +0000 (23:39 +0000)]
a bit refactoring on kernel_init
add assertions support for debugging
add ss and esp in isr_param to handling stack switch.

3 years agoupdate readme
Minep [Sat, 26 Feb 2022 18:30:09 +0000 (18:30 +0000)]
update readme

3 years agofix gcc warnings & improved makefile echos
Minep [Sat, 26 Feb 2022 18:06:55 +0000 (18:06 +0000)]
fix gcc warnings & improved makefile echos

3 years agoep7
Minep [Sat, 26 Feb 2022 16:36:20 +0000 (16:36 +0000)]
ep7

3 years agofixes and refinements
Minep [Sat, 26 Feb 2022 16:34:49 +0000 (16:34 +0000)]
fixes and refinements

3 years agoVirtual memory & paging
Minep [Fri, 25 Feb 2022 19:28:39 +0000 (19:28 +0000)]
Virtual memory & paging
 vm & pm management
 higher half kernel!
 a LOT of memory remapping
 CPUID support
 start working on HAL.

3 years agodead simple printf/sprintf implementation.
Minep [Wed, 23 Feb 2022 22:56:44 +0000 (22:56 +0000)]
dead simple printf/sprintf implementation.

3 years agoUpdate makefile
Lunaixsky [Sat, 19 Feb 2022 16:42:54 +0000 (16:42 +0000)]
Update makefile

3 years agore-factored the makefile and improved qemu debug experience.
Minep [Sat, 19 Feb 2022 16:40:39 +0000 (16:40 +0000)]
re-factored the makefile and improved qemu debug experience.

3 years agoformated code and fix include error in interrupts.c
Minep [Sat, 19 Feb 2022 16:39:41 +0000 (16:39 +0000)]
formated code and fix include error in interrupts.c

3 years agocourse 6 - interrupts
Minep [Sun, 13 Feb 2022 01:08:49 +0000 (01:08 +0000)]
course 6 - interrupts

3 years agoremove build folder
Minep [Sat, 12 Feb 2022 17:21:55 +0000 (17:21 +0000)]
remove build folder

3 years agocourse 5 and some old slides
Minep [Sat, 12 Feb 2022 17:18:57 +0000 (17:18 +0000)]
course 5 and some old slides

3 years agocourse 4 and some usefule addendum
Minep [Mon, 7 Feb 2022 12:40:08 +0000 (12:40 +0000)]
course 4 and some usefule addendum

3 years agocourse 3 (vga and linker config)
Minep [Sun, 6 Feb 2022 19:59:39 +0000 (19:59 +0000)]
course 3 (vga and linker config)

3 years agoAdded readme
Minep [Sat, 5 Feb 2022 23:23:46 +0000 (23:23 +0000)]
Added readme

3 years agocourse 1 and project setup
Minep [Sat, 5 Feb 2022 23:19:35 +0000 (23:19 +0000)]
course 1 and project setup

3 years agocourse 0
Minep [Mon, 31 Jan 2022 22:43:54 +0000 (22:43 +0000)]
course 0