MollenOS/Vali is a modern operating system that is built with focus on abstraction and a modular design, allowing anyone to port it to any architecture. It currently targets the x86-32 and x86-64 platform.
This PR will fix the aftermath after all the changes to VFS and the implemented served service.
Bugfixes:
TLS issue where it switched tls once __tls_initialize was called
Issue where consequtive symlinks/mounts were not resolved
Make sure certain parts of the VFS api is only accessible to certain handle types
Fixed invalid creation of files inside directories in osbuilder
Fixed invalid data placement in osbuilder
Fixes to MFS in terms of directory handling and bucket allocations
Fix issue in freeing physical memory pages
Fix locking issue in libc with _flsbuf/_flswbuf
Fix implementation of GetWallClock
Don't use the TSC if it's not invariant
Disable the PIT if HPET is available
Disable interrupts while programming the RTC
Use HPET as the primary clock source if present
Improvements:
Refactored cmake files for libc/libk, still more cleanup that can be done
Renamed OS error codes
Synchronize the wall clock with the system clock to provide sub-second measurements
Support deadline for NotificationQueueWait
Support deadline for Futex*
Support deadline for OSSleep
Kernel Timer Subsystem refactored to be able to better handle a variety of timers
Features:
New and improved dir interface in io.h
Ability to run asynchronous system calls
Filesystem drivers are now complete modules
New filesystem protocol, also needed for third-party supplied drivers
This PR will land the moment Vioarr is able to run as a chef package. So this PR should almost wrap up the 0.8 release.
Hopefully this won't be another 10k code lines added and 200 files changed.
Unfortunately it was neccessary to implement asynchronous system calls for some system calls, as we ran into the need for file manager to call itself. This was needed due to how filesystem modules are implemented right now, and is only an issue because modules are loaded dynamically and not run as seperate services. (Which may change in the future, but not now).
Implementing this also allows us to fully support green threads in the userspace, as we then have no need to ever block in the kernel, and instead can 'queue' up system calls. This is implemented using kernel thread forking.
This PR will fix the aftermath after all the changes to VFS and the implemented served service.
Bugfixes:
Improvements:
Features:
This PR will land the moment Vioarr is able to run as a chef package. So this PR should almost wrap up the 0.8 release.
Hopefully this won't be another 10k code lines added and 200 files changed.
Unfortunately it was neccessary to implement asynchronous system calls for some system calls, as we ran into the need for file manager to call itself. This was needed due to how filesystem modules are implemented right now, and is only an issue because modules are loaded dynamically and not run as seperate services. (Which may change in the future, but not now).
Implementing this also allows us to fully support green threads in the userspace, as we then have no need to ever block in the kernel, and instead can 'queue' up system calls. This is implemented using kernel thread forking.