a711462ef4
Kernel: Split ext2 implementation to multiple files
2023-09-01 15:10:23 +03:00
f31c6b847f
Kernel: Start work on writable ext2 filesystem
2023-08-31 23:40:31 +03:00
195ccf4f53
Kernel: Add missing ififo() to Inode::Mode
2023-08-31 21:38:31 +03:00
073edd0b8e
Kernel: Stack trace dumping validates pointers before using them
2023-08-31 21:36:23 +03:00
250789aa20
Kernel: better handle kernel errors
2023-08-29 00:13:21 +03:00
8032824054
BuildSystem: use -a with rsync
...
This allows cmake to not rebuild whole project every time
2023-08-28 11:38:17 +03:00
80e7a89f67
BuildSystem: Base sysroot is now distributed as a tar ball
...
This allows file and directory permissions work as intended.
cmake is now filled with 'sudo' but with sudo timeout this should be
fine.
2023-08-23 10:38:21 +03:00
38e72019c7
Kernel: kill() with negative pid actually matches pgid
2023-08-22 14:54:15 +03:00
d745fca86a
Kernel: Process keeps track if forked process has called exec*()
2023-08-22 14:53:46 +03:00
60a2185ee6
Kernel/LibC: implement proper getpgid and setpgid
2023-08-22 14:53:12 +03:00
d634fec8dc
Kernel: Add function to enumerate processes in session
2023-08-22 14:52:28 +03:00
c9243f0d1e
Kernel/LibC: Add {get,set}pgrp()
2023-08-22 11:36:33 +03:00
0f6c19a1b7
Kernel: Barebones implementation sessions and process groups
2023-08-22 11:35:40 +03:00
79f3aa5419
Kernel/LibC: add dup() syscall and function
2023-08-17 12:03:29 +03:00
871c792976
Kernel: O_SEARCH doesn't require any permissions
...
Except read permissions for all directories in the path
This allows us to stat e.g. device files for which we don't have
the permissions.
2023-08-11 12:26:07 +03:00
8480ffe108
Kernel: open() now validates file access mode
2023-08-11 11:53:38 +03:00
e1400f9680
Kernel: Remove unused syscall
2023-08-11 11:43:48 +03:00
6e5bce3c57
Kernel: Zero initialize threads sse_storage
2023-08-11 00:26:43 +03:00
f75adab9d8
Kernel: Move structures in boot.S to .data section
2023-08-11 00:26:12 +03:00
5d0a6e7b08
Kernel: HPET is now used in legacy mode when PIC is forced
2023-08-10 22:01:30 +03:00
b0c8a9cdc4
Kernel: Fix slave PIC
...
we dont mask interrupt 2 in PIC since it corresponds to the
slave PIC. Also cleanup PIC code :)
2023-08-10 21:52:31 +03:00
ebe0adb3b5
Kernel: HPET doesn't use the legacy mapping anymore
2023-08-10 21:08:32 +03:00
4842d5e2b9
Kernel: APIC now uses MMIO namespace functions for mmio
2023-08-10 21:07:23 +03:00
0b8396b1a6
Kernel: IDT now sends EOI for every interrupt
...
EOI is sent before calling the interrupt handler. This should be fine
since all interrupts are processed with interrupts disabled
2023-08-09 09:57:02 +03:00
55ef793a74
Kernel: Validate HPET tick period
2023-08-09 09:50:38 +03:00
96c0ad0d3d
Kernel: Remove get_unix_timestamp from SystemTimer
...
Kernel now uses the percise real_time() and time_since_boot()
2023-08-09 08:57:50 +03:00
6fcb191ca0
Kernel: Add PageTable::Flags::CacheDisable
...
Also fix multiple places where we were using uint8_t as page table
flags instead of PageTable::flags_t which we promoted to uint16_t
while back.
2023-08-06 23:59:30 +03:00
3df97c36e6
Kerne: SystemTimer can now output the current real time
2023-08-04 16:06:47 +03:00
c732297623
Kernel: Rename TimerHandler to SystemTimer
...
I changed SystemTimer to only handle the "best" supported timer
it can initialize.
2023-08-04 16:06:47 +03:00
ca5a097ef5
Kernel: Add function to retrieve boot time as timespec
2023-08-04 16:06:47 +03:00
1f8a5f0ce5
Kernel: F11 now prints current time to debug output
...
This allows better timer percision and system freeze checks
2023-08-04 15:22:51 +03:00
1fa7a1cac4
Kernel: Add basic HPET support to replace PIT if exists
...
This works same way as the PIT implementation; calls Scheduler every
milli second.
2023-08-04 15:22:51 +03:00
ea4a70c3b3
Kernel: Move sleep() implementation to TimerHandler
2023-08-04 15:15:00 +03:00
aa0929614a
Kernel: Add more structures to ACPI
2023-08-04 15:13:47 +03:00
3c31fc9c4b
Kernel: Implement basic MMIO functions
...
This is equivalent to IO.h except for memory mapped io instead of
IO ports
2023-08-04 15:12:29 +03:00
7eb2c140fe
Kernel: Move RTC to Timer directory
...
PIT ms counter seems to be off by multiple seconds/minute. I will
be probably changing to HPET for system time
2023-08-04 11:12:16 +03:00
659adb89a6
Kernel: Start work on abstracting Timers
2023-08-04 10:29:42 +03:00
dd17124c77
Kernel: Remove unnecessary timer check from Scheduler
2023-08-04 10:29:42 +03:00
643e87a076
Kernel: Threads are deleted sooner and cleaner
...
We now delete threads when
1. it is marked as Terminated and is the current thread
2. it tries to start execution in Terminated state
This allows us to never have thread executing in Terminated state
2023-08-04 10:29:42 +03:00
20eafb4cc4
Kernel: align userspace stacks
...
I was getting #GP on sse instructions
2023-08-03 18:09:48 +03:00
3139391e06
Kernel: Change PageTable API
...
Getting free pages not reserves them, so you don't have to hold
the page table lock :)
2023-08-02 22:09:14 +03:00
64ad752e73
Kernel: PageTable now supports reserved pages
...
You can now map pages as reserved, so that they will not be given
from get_free_page() or get_free_contiguous_pages().
2023-08-01 16:35:54 +03:00
a78a7ed156
Kernel: Cleanup returns from any kind on interrupts
2023-08-01 14:23:50 +03:00
2a851b52f1
BuildSystem: Edit build flags regarding sse and warnings
2023-07-31 22:31:17 +03:00
b245a55ea0
Kernel: store/load sse/mmx/fpu state on isr/irq/syscall
...
I haven't tested this yet but should be fine. This will be optimized
to only save state from threads that are using it
2023-07-31 22:28:57 +03:00
c4f6c859c1
Kernel: Generally improve signals
2023-07-31 22:28:18 +03:00
1a6100f083
Kernel: Cleanup signal trampoline
2023-07-30 15:58:35 +03:00
de927b6b05
Kernel: Remove is_in_syscall from Thread
2023-07-30 14:49:51 +03:00
1d7795e22c
Kernel: Hardware exceptions now sends signals to userspace
2023-07-30 14:34:15 +03:00
abe8810d47
Kernel: raise() now force sends signal
2023-07-30 14:17:07 +03:00