summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Minep [Fri, 24 Jun 2022 10:08:17 +0000 (11:08 +0100)]
feat: experimental tty console with scrollback buffer.
Minep [Wed, 22 Jun 2022 15:04:57 +0000 (16:04 +0100)]
update readme
Minep [Tue, 21 Jun 2022 21:18:01 +0000 (22:18 +0100)]
slides for multitasking (ep10)
Minep [Tue, 21 Jun 2022 11:23:54 +0000 (12:23 +0100)]
feat: support for SIGALRM
feat: alarm(2) syscall
refactor: better sleep(3).
chore: rename the process state for compactness.
Minep [Mon, 20 Jun 2022 23:19:49 +0000 (00:19 +0100)]
feat: kill(2) implementation
feat: support more signal (SIGKILL, SIGSTOP, SIGCONT)
fix: [interrupt.S] change to callee-save register for safety
chore: formatting, renaming things
Minep [Mon, 20 Jun 2022 16:21:01 +0000 (17:21 +0100)]
Merge branch 'master' of github.com:Minep/lunaix-os
Minep [Mon, 20 Jun 2022 16:20:02 +0000 (17:20 +0100)]
Merge branch 'signal-dev'
Minep [Mon, 20 Jun 2022 16:19:11 +0000 (17:19 +0100)]
feat: pause(2) support
Lunaixsky [Sun, 19 Jun 2022 18:51:33 +0000 (19:51 +0100)]
Update README.md
Minep [Sun, 19 Jun 2022 17:56:28 +0000 (18:56 +0100)]
feat: signal support (tested!)
feat: signal demo.
Minep [Sun, 19 Jun 2022 12:00:12 +0000 (13:00 +0100)]
edit readme
Minep [Sun, 19 Jun 2022 10:49:56 +0000 (11:49 +0100)]
feat: User mode support.
feat: All physical page allocations are now on-demand and being managed by PF handler.
fix: Remove the 'garbage' mapping due to reserve area locking when initialize ACPI.
refactor: alloc_pid now change to alloc_process.
chore: annonation on issues that should be fixed
chore: formatting some code.
Minep [Sat, 18 Jun 2022 18:20:22 +0000 (19:20 +0100)]
refactor: re-structure the kernel address space for a more integral layout.
fix: spwan_proc0 invoking APIC functionality before it's initialization.
Minep [Sat, 18 Jun 2022 16:27:38 +0000 (17:27 +0100)]
chore: make things more general
refactor: put a limit on kernel heap.
refactor: reduce overhead on kernel stack creation when we fork into our first process.
Minep [Sat, 18 Jun 2022 10:16:23 +0000 (11:16 +0100)]
refactor: vmm_set_map has option to ignore existed mapping.
chore: optimize memcpy and memset with x86 feature.
Minep [Fri, 17 Jun 2022 23:04:09 +0000 (00:04 +0100)]
refactor: simplify the vmm design, single responsibility. But using it should with great attention!
refactor: some formatting on code style.
Minep [Fri, 17 Jun 2022 15:44:15 +0000 (16:44 +0100)]
refactor: keep in mind the stack layout is crucial. Move context switching & signal handling part into asm once for all.
Minep [Thu, 16 Jun 2022 16:20:38 +0000 (17:20 +0100)]
Merge branch 'master' into signal-dev
Minep [Thu, 16 Jun 2022 10:20:32 +0000 (11:20 +0100)]
fix: passing intr_ctx to soft_iret corrupts the stack of next proccess when performing context switching.
Minep [Wed, 15 Jun 2022 20:58:30 +0000 (21:58 +0100)]
refactor: formattings
fix: avoid setpgid on group leader
Minep [Wed, 15 Jun 2022 20:55:55 +0000 (21:55 +0100)]
Merge branch 'master' into signal-dev
Minep [Tue, 14 Jun 2022 10:05:14 +0000 (11:05 +0100)]
feat: pgid support
Minep [Mon, 13 Jun 2022 14:40:28 +0000 (15:40 +0100)]
feat: add signal handling support (not tested!)
Minep [Sat, 11 Jun 2022 23:25:28 +0000 (00:25 +0100)]
fix: The timer sequence stuck in infinite loop after series of delete operation
fix: To mitigate race condition, make the system call mask interrupt by default, and unmask when and only when needed.
improve: better debugging experience when GP happened due to the buggy iret!
Minep [Sat, 11 Jun 2022 17:12:37 +0000 (18:12 +0100)]
feat: The waitpid family!
feat: Ability to switch data segment
fix: Mitigated some race conditions
feat: Better way for process to yield current time slice.
Minep [Fri, 10 Jun 2022 21:43:01 +0000 (22:43 +0100)]
Merge branch 'master' of github.com:Minep/lunaix-os
Minep [Fri, 10 Jun 2022 21:37:05 +0000 (22:37 +0100)]
refactor: Move the kernel post init stage into proc0
refactor: Add a linter config. Resolved #1
refactor: Formatted some source files.
refactor: Shrink the process table size.
Lunaixsky [Tue, 7 Jun 2022 13:27:08 +0000 (14:27 +0100)]
Create LICENSE
Minep [Mon, 6 Jun 2022 12:08:54 +0000 (13:08 +0100)]
feat: No more kernel page table switching upon interrupt.
feat: 'wait' syscall implementation
feat: use linked list for chaining children process.
feat: Now the allocated memory can be recycled upon process destroy.
feat: Interruptible syscall.
refactor: correct the sbrk and brk naming.
refactor: process initialization.
fix: TLB caching stall the PTE rewrite which cause fork() fail randomly.
fix: Add new process state: CREATE to avoid race during process creation.
chores: annotations on future improvements & fixes.
Minep [Tue, 31 May 2022 20:43:35 +0000 (21:43 +0100)]
feat: added ability to identify process vm regions
feat: page fault handler for COW policy
refactor: improved system call declaration experience.
feat: more system call (sleep, _exit and other process related)
feat: add ability to detect orphan process.
Minep [Mon, 30 May 2022 23:23:05 +0000 (00:23 +0100)]
Kernel address space isolation and make the kernel heap global to all processes.
And featuring initd!
Minep [Mon, 30 May 2022 00:46:55 +0000 (01:46 +0100)]
basic process support and some syscalls
Minep [Thu, 19 May 2022 11:20:49 +0000 (12:20 +0100)]
add some references
Minep [Thu, 19 May 2022 11:17:43 +0000 (12:17 +0100)]
fix bugs and restruct some excerpts
Minep [Thu, 19 May 2022 11:17:17 +0000 (12:17 +0100)]
update project struct & readme
Minep [Tue, 3 May 2022 22:51:48 +0000 (23:51 +0100)]
Add back the missing reserved field in FADT.
Add a FADT version check before using IAPC_BOOT_ARCH flag for 8042 existence.
Fixed the spurious IRQ#1 happens during 8042 initialization under VirtualBox environment.
Minep [Tue, 3 May 2022 15:25:45 +0000 (16:25 +0100)]
Add FADT check for presence of i8042 controller.
Minep [Tue, 3 May 2022 14:22:16 +0000 (15:22 +0100)]
Implement (half) simple semaphore & mutex lock, and ...
Use vga cursor.
Address the issue of spurious IRQ#1 which interference key hanlder when receiving the command response byte.
Refactoring and commentings.
Minep [Sun, 1 May 2022 15:47:38 +0000 (16:47 +0100)]
Restructure the interrupt vector distribution for better matching of their inherit priority, and ...
Attempts to resolve the spurious keyboard buffer full irq when after issuing the command to ps/2.
Adjust the comments and formatting.
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.
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.
Minep [Sun, 13 Mar 2022 15:47:26 +0000 (15:47 +0000)]
fix errors in slides
Minep [Sun, 13 Mar 2022 15:36:33 +0000 (15:36 +0000)]
ep8 slides
Minep [Sun, 13 Mar 2022 15:36:13 +0000 (15:36 +0000)]
minor adjustments
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.
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!
Minep [Sun, 6 Mar 2022 18:17:32 +0000 (18:17 +0000)]
dead simple rtc code for getting current datetime.
Minep [Sat, 5 Mar 2022 22:05:14 +0000 (22:05 +0000)]
add missing slides due to renamings
Minep [Sat, 5 Mar 2022 21:58:23 +0000 (21:58 +0000)]
update project structures
finalize the dmm related stuff
Minep [Thu, 3 Mar 2022 22:37:10 +0000 (22:37 +0000)]
fix bugs found in brk & add simple security checks on lx_free
Minep [Thu, 3 Mar 2022 18:36:37 +0000 (18:36 +0000)]
make dmm.c portable
implement kernel heap malloc/free
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)
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
Minep [Tue, 1 Mar 2022 16:31:12 +0000 (16:31 +0000)]
dynamic memory manager (malloc & free)
debugging experience improved
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
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.
Minep [Sat, 26 Feb 2022 18:30:09 +0000 (18:30 +0000)]
update readme
Minep [Sat, 26 Feb 2022 18:06:55 +0000 (18:06 +0000)]
fix gcc warnings & improved makefile echos
Minep [Sat, 26 Feb 2022 16:36:20 +0000 (16:36 +0000)]
ep7
Minep [Sat, 26 Feb 2022 16:34:49 +0000 (16:34 +0000)]
fixes and refinements
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.
Minep [Wed, 23 Feb 2022 22:56:44 +0000 (22:56 +0000)]
dead simple printf/sprintf implementation.
Lunaixsky [Sat, 19 Feb 2022 16:42:54 +0000 (16:42 +0000)]
Update makefile
Minep [Sat, 19 Feb 2022 16:40:39 +0000 (16:40 +0000)]
re-factored the makefile and improved qemu debug experience.
Minep [Sat, 19 Feb 2022 16:39:41 +0000 (16:39 +0000)]
formated code and fix include error in interrupts.c
Minep [Sun, 13 Feb 2022 01:08:49 +0000 (01:08 +0000)]
course 6 - interrupts
Minep [Sat, 12 Feb 2022 17:21:55 +0000 (17:21 +0000)]
remove build folder
Minep [Sat, 12 Feb 2022 17:18:57 +0000 (17:18 +0000)]
course 5 and some old slides
Minep [Mon, 7 Feb 2022 12:40:08 +0000 (12:40 +0000)]
course 4 and some usefule addendum
Minep [Sun, 6 Feb 2022 19:59:39 +0000 (19:59 +0000)]
course 3 (vga and linker config)
Minep [Sat, 5 Feb 2022 23:23:46 +0000 (23:23 +0000)]
Added readme
Minep [Sat, 5 Feb 2022 23:19:35 +0000 (23:19 +0000)]
course 1 and project setup
Minep [Mon, 31 Jan 2022 22:43:54 +0000 (22:43 +0000)]
course 0